IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Images Discussion :

Coupez une vidéo


Sujet :

Images

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Coupez une vidéo
    Bonjour je souhaite couper une vidéo puis la lire.

    En gros au lieu de lire de 0 à 300 s, la lire de 15s à 40 s par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    file, dir] = uigetfile('*.avi');
    pfile = fopen( [ dir file ] , 'r' );
    if (pfile == -1)
        error('Enable to open %s file ',[ dir file ]);
    end
     
    % vid = VideoReader(file);
    % sz = [vid.Height vid.Width];
    % mov = read(vid, [1 vid.NumberOfFrames]);
    % 
    % %# prepare GUI
    % p = get(0,'DefaultFigurePosition');
    % hFig = figure('Menubar','none', 'Resize','off', ...
    %     'Position',[p(1:2) sz(2) sz(1)]);
    % 
    % %# play movie
    % movv = struct('cdata',squeeze(num2cell(mov,[1 2 3])), 'colormap',[]);
    % movie(hFig, movv, 1, vid.FrameRate);
    xyloObj = VideoReader([dir file]);
     
    nFrames = xyloObj.NumberOfFrames;
    vidHeight = xyloObj.Height;
    vidWidth = xyloObj.Width;
    r=b;
    g=c;
     
    if (r==0)
        debut=1;
        fin = g*16;
     
    debut=floor(debut);
    fin=floor(fin);
    end
     
    if (r>0)
    debut=r*15;
    fin = g*16;
     
    debut=floor(debut);
    fin=floor(fin);
    end
    h=debut;
    xyloObj.NumberOfFrames,
    % Preallocate movie structure.
    mov(1:fin) = ...
        struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
               'colormap', []);
     
    % Read one frame at a time.
     
    if ( nFrames<fin)
    else
    for k = 1: (fin-debut)
        h=h+1;
        mov(h).cdata = read(xyloObj, h);
     
    end
     
     
    % Size a figure based on the video's width and height.
    hf = figure;
    set(hf, 'position', [150 150 vidWidth vidHeight])
     
    % Play back the movie once at the video's frame rate.
    movie(hf, mov, 1, v);
    end
    J'arrive à fixer le début par exemple = 15 s et la fin = 45 s

    mais quand je fais lire, j'ai un écran noire de 0à 15 s.

    J'ai essayé de lire directement en prenant k =15 : 45 , mais il me met : unitilized frames.

    Merci

    EDIT: debut et fin correspondent auxsecondes que je retranscris en frame
    v est une donnée pourfixer la vitesse de lecture

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    [filename, pathname] = uigetfile('*.avi');
     
    if ~filename
        return
    end
     
    obj = VideoReader(fullfile(pathname,filename));
     
    nFrames = obj.NumberOfFrames;
    vidHeight = obj.Height;
    vidWidth = obj.Width;
    frameRate = obj.FrameRate;
     
    startTime = 15;
    endTime = 45;
     
    startFrame = startTime*frameRate;
    endFrame = endTime*frameRate;
     
    video = read(obj, [startFrame endFrame]);
     
    nFrames2disp = endFrame-startFrame+1;
     
    mov(1:nFrames2disp) = ...
        struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
        'colormap', []);
     
    for n = 1:nFrames2disp
        mov(n).cdata = video(:,:,:,n);
    end
     
    hf = figure('position', [150 150 vidWidth vidHeight]);
     
    movie(hf, mov, 1, frameRate);
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ca marche merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une vidéo d'une scène OpenGL
    Par tit_henry dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/04/2005, 11h39
  2. Mettre du texte sur une vidéo(ou par dessus un tmediaplayer)
    Par souch dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/07/2004, 13h30
  3. Enregistrer une vidéo...
    Par Ptibibi dans le forum DirectX
    Réponses: 3
    Dernier message: 09/06/2004, 18h06
  4. extraire une portion audio d'une vidéo
    Par Brunoo dans le forum DirectX
    Réponses: 2
    Dernier message: 16/06/2003, 10h29
  5. [Composants][Animation] Lire une vidéo compressée
    Par femtosa dans le forum Composants VCL
    Réponses: 6
    Dernier message: 03/09/2002, 08h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo