J'ai récupéré sur le web un extrait du journal télévisé de TF1, pour
un reportage qu'il m'intéresse de conserver. Le découpage n'étant pas
parfaitement calé (3 secondes en trop avant, quelques secondes en trop
après), j'ai voulu le redécouper avec ffmpeg, puis avec avconv suite
à un message annonçant que sur Ubuntu le premier était remplacé par le
second.
Après avoir recherché des infos dans le man et sur la toile, J'ai
essayé la commande suivante :
Résultat : le découpage est parfait pour l'image, par contre le son
démarre avec quelques secondes de retard, ce qui est parfaitement
insupportable. J'ai essayé la même chose en remplaçant avconv par
ffmpeg, et ai obtenu le même résultat.
Des idées ?
P.-S. : voici ce que m'affiche la commande ffmpeg (les fichiers source
et destination sont respectivement bisons0.mp4 et bisons2.mp4) :
========================================================================
> ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
> built on Apr 2 2013 17:00:59 with gcc 4.6.3
> *** THIS PROGRAM IS DEPRECATED ***
> This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bisons0.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf54.32.101
> Duration: 00:02:33.60, start: 0.000000, bitrate: 745 kb/s
> Stream #0.0(und): Video: h264 (Main), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 657 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
> Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 80 kb/s
> Output #0, mp4, to 'bisons2.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf53.21.1
> Stream #0.0(und): Video: libx264, yuv420p, 640x360 [PAR 1:1 DAR 16:9], q=2-31, 657 kb/s, 25 tbn, 25 tbc
> Stream #0.1(und): Audio: libvo_aacenc, 48000 Hz, stereo, 80 kb/s
> Stream mapping:
> Stream #0.0 -> #0.0
> Stream #0.1 -> #0.1
> Press ctrl-c to stop encoding
> frame= 3100 fps= 0 q=-1.0 Lsize= 11690kB time=130.92 bitrate= 731.5kbits/s
> video:10296kB audio:1297kB global headers:0kB muxing overhead 0.836823%
========================================================================
J'essaierai aussi, mais pas maintenant car je devrais déjà être parti depuis longtemps. Merci !
tu ne pourra pas juger, alors, car on ne peut pas être juge et parti :-)
:-D
Olivier Miakinen
Le 09/04/2013 11:00, Alf92 a écrit :
j'ai chargé la video et essayé de faite le cut.
avec FFMPEG : ------------------ ffmpeg -ss 3 -t 131 -i Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.MP4 -vcodec copy -acodec copy Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4 pause ------------------ resultat : pas de désynchro mais les 3 premières secondes n'ont pas été coupées. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4
En effet. C'est curieux, car je ne vois pas la différence avec la commande que j'avais moi-même lancée. Peut-être une version de ffmpeg différente ?
avec VideoRedo : au chargement de la video VideoRedo m'indique une "erreur de positionnement à 00:00:00" et propose de corriger. si j'accepte de corriger le solt tourne en boucle. si je ne corrige pas, le soft accepte de faire le cut proprement (les 3 seconde et la fin sont bien coupés) et il n'y a pas de désynchro. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-VIDEORODO-CUT.mp4
Oui, c'est parfait ça.
autre essai avec FFMPEG : cette fois ci je passe par une étape intermédiare avec un container M2TS réputé robuste ------------------ ffmpeg -i Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.mp4 -bsf h264_mp4toannexb -vcodec copy -acodec copy Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.M2TS
pause ------------------ à noter que FFMPEG m'aréclamé les fitres -bsf h264_mp4toannexb et -absf aac_adtstoasc dont j'ignore la fonction. résultat : le cut est bien fait à la seconde 3 mais la video est noir jusqu'à la seconde 6. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG2-CUT.MP4
Chez moi, c'est même pire que ça : je ne vois rien d'autre qu'un écran noir, même passé 6 secondes.
conclusion : la video a bien un problème à son début. seul VideoRedo semble capable de le traiter sans réencoder. (je n'ai pas fait le test en réencodant la vidéo avec FFMPEG mais il est probable que cela écrase le problème).
Encore merci pour le temps passé.
Le 09/04/2013 11:00, Alf92 a écrit :
j'ai chargé la video et essayé de faite le cut.
avec FFMPEG :
------------------
ffmpeg -ss 3 -t 131 -i
Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.MP4
-vcodec copy -acodec copy
Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4
pause
------------------
resultat : pas de désynchro mais les 3 premières secondes n'ont pas été
coupées.
http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4
En effet. C'est curieux, car je ne vois pas la différence avec la
commande que j'avais moi-même lancée. Peut-être une version de
ffmpeg différente ?
avec VideoRedo :
au chargement de la video VideoRedo m'indique une "erreur de
positionnement à 00:00:00" et propose de corriger.
si j'accepte de corriger le solt tourne en boucle.
si je ne corrige pas, le soft accepte de faire le cut proprement (les 3
seconde et la fin sont bien coupés) et il n'y a pas de désynchro.
http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-VIDEORODO-CUT.mp4
Oui, c'est parfait ça.
autre essai avec FFMPEG :
cette fois ci je passe par une étape intermédiare
avec un container M2TS réputé robuste
------------------
ffmpeg -i
Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.mp4 -bsf
h264_mp4toannexb -vcodec copy -acodec copy
Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.M2TS
pause
------------------
à noter que FFMPEG m'aréclamé les fitres
-bsf h264_mp4toannexb
et -absf aac_adtstoasc
dont j'ignore la fonction.
résultat : le cut est bien fait à la seconde 3 mais la video est noir
jusqu'à la seconde 6.
http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG2-CUT.MP4
Chez moi, c'est même pire que ça : je ne vois rien d'autre qu'un écran
noir, même passé 6 secondes.
conclusion :
la video a bien un problème à son début.
seul VideoRedo semble capable de le traiter sans réencoder.
(je n'ai pas fait le test en réencodant la vidéo avec FFMPEG mais il
est probable que cela écrase le problème).
avec FFMPEG : ------------------ ffmpeg -ss 3 -t 131 -i Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.MP4 -vcodec copy -acodec copy Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4 pause ------------------ resultat : pas de désynchro mais les 3 premières secondes n'ont pas été coupées. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG-CUT.MP4
En effet. C'est curieux, car je ne vois pas la différence avec la commande que j'avais moi-même lancée. Peut-être une version de ffmpeg différente ?
avec VideoRedo : au chargement de la video VideoRedo m'indique une "erreur de positionnement à 00:00:00" et propose de corriger. si j'accepte de corriger le solt tourne en boucle. si je ne corrige pas, le soft accepte de faire le cut proprement (les 3 seconde et la fin sont bien coupés) et il n'y a pas de désynchro. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-VIDEORODO-CUT.mp4
Oui, c'est parfait ça.
autre essai avec FFMPEG : cette fois ci je passe par une étape intermédiare avec un container M2TS réputé robuste ------------------ ffmpeg -i Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.mp4 -bsf h264_mp4toannexb -vcodec copy -acodec copy Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY.M2TS
pause ------------------ à noter que FFMPEG m'aréclamé les fitres -bsf h264_mp4toannexb et -absf aac_adtstoasc dont j'ignore la fonction. résultat : le cut est bien fait à la seconde 3 mais la video est noir jusqu'à la seconde 6. http://frpn.free.fr/0divers/testvideo/Des_bisons_en_Loz_re_-_Replay_JT_Le_Journal_du_week-end_-_MY-FFMPEG2-CUT.MP4
Chez moi, c'est même pire que ça : je ne vois rien d'autre qu'un écran noir, même passé 6 secondes.
conclusion : la video a bien un problème à son début. seul VideoRedo semble capable de le traiter sans réencoder. (je n'ai pas fait le test en réencodant la vidéo avec FFMPEG mais il est probable que cela écrase le problème).
Encore merci pour le temps passé.
Olivier Miakinen
Le 09/04/2013 22:57, pehache a écrit :
Fichier d'origine : 14,3 Mo Avec -ss 0 -t 134 -acodec copy -codec copy : 12,6 Mo Avec -ss 3.8 -t 130.2 : 12.7 Mo
OK... Il faudrait maintenant mettre quelques paramètres d'encodage pour optimiser le résultat, si tant est que ça ait une importance pour ce que tu fais de cette video.
Maitenant que j'ai réussi à obtenir un résultat correct grâce à ton aide, ca n'a strictement aucune autre importance que la curiosité d'essayer de comprendre comment ça marche.
Mais je passe la main à Alf pour ça :-)
:-)
Le 09/04/2013 22:57, pehache a écrit :
Fichier d'origine :
14,3 Mo
Avec -ss 0 -t 134 -acodec copy -codec copy :
12,6 Mo
Avec -ss 3.8 -t 130.2 :
12.7 Mo
OK... Il faudrait maintenant mettre quelques paramètres d'encodage pour
optimiser le résultat, si tant est que ça ait une importance pour ce que
tu fais de cette video.
Maitenant que j'ai réussi à obtenir un résultat correct grâce à ton
aide, ca n'a strictement aucune autre importance que la curiosité
d'essayer de comprendre comment ça marche.
Fichier d'origine : 14,3 Mo Avec -ss 0 -t 134 -acodec copy -codec copy : 12,6 Mo Avec -ss 3.8 -t 130.2 : 12.7 Mo
OK... Il faudrait maintenant mettre quelques paramètres d'encodage pour optimiser le résultat, si tant est que ça ait une importance pour ce que tu fais de cette video.
Maitenant que j'ai réussi à obtenir un résultat correct grâce à ton aide, ca n'a strictement aucune autre importance que la curiosité d'essayer de comprendre comment ça marche.
Mais je passe la main à Alf pour ça :-)
:-)
jdanield
Le 09/04/2013 22:59, pehache a écrit :
Il ne veut pas se caler sur les images clefs, justement, mais couper là où il a envie de couper. Ce qui implique en principe un réencodage.
je ne suis pas sûr qu'il soit à une seconde près
jdd
Le 09/04/2013 22:59, pehache a écrit :
Il ne veut pas se caler sur les images clefs, justement, mais couper
là où il a envie de couper. Ce qui implique en principe un réencodage.
Il ne veut pas se caler sur les images clefs, justement, mais couper là où il a envie de couper. Ce qui implique en principe un réencodage.
je ne suis pas sûr qu'il soit à une seconde près
il semble que le pb ne soit pas l'arret sur une keyframe puisque VideoRedo a réussi à faire le cut proprement.
jdanield
Le 10/04/2013 12:13, Alf92 a écrit :
il semble que le pb ne soit pas l'arret sur une keyframe puisque VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur une keyframe, donc soit tu le fais sans le dire, soit tu recompile au moins le début de la video (entre le début et la première keyframe)
jdd
Le 10/04/2013 12:13, Alf92 a écrit :
il semble que le pb ne soit pas l'arret sur une keyframe puisque
VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur
une keyframe, donc soit tu le fais sans le dire, soit tu recompile au
moins le début de la video (entre le début et la première keyframe)
il semble que le pb ne soit pas l'arret sur une keyframe puisque VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur une keyframe, donc soit tu le fais sans le dire, soit tu recompile au moins le début de la video (entre le début et la première keyframe)
jdd
Alf92
jdanield a formulé :
Le 10/04/2013 12:13, Alf92 a écrit :
il semble que le pb ne soit pas l'arret sur une keyframe puisque VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur une keyframe, donc soit tu le fais sans le dire, soit tu recompile au moins le début de la video (entre le début et la première keyframe)
absolument. c'est ce qui me fait dire que ce n'est pas un pb de keyframe sur la video de notre ami.
jdanield <jdd@dodin.org> a formulé :
Le 10/04/2013 12:13, Alf92 a écrit :
il semble que le pb ne soit pas l'arret sur une keyframe puisque
VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur une
keyframe, donc soit tu le fais sans le dire, soit tu recompile au moins le
début de la video (entre le début et la première keyframe)
absolument.
c'est ce qui me fait dire que ce n'est pas un pb de keyframe sur la
video de notre ami.
il semble que le pb ne soit pas l'arret sur une keyframe puisque VideoRedo a réussi à faire le cut proprement.
si tu ne recompile pas, tu ne peux pas faire un arret ailleurs que sur une keyframe, donc soit tu le fais sans le dire, soit tu recompile au moins le début de la video (entre le début et la première keyframe)
absolument. c'est ce qui me fait dire que ce n'est pas un pb de keyframe sur la video de notre ami.