OVH Cloud OVH Cloud

[ffmpeg] concaténer deux vidéos mp4

15 réponses
Avatar
Lulu
Salut,

D'une conférence d'Étienne Klein, j'ai produit deux extraits que je
voudrais concaténer en un seul extrait.

J'ai trouvé via google https://uniconverter.wondershare.fr/video-merger/ffmpeg-merge-videos.html

qui préconise : ffmpeg -f concat -i mylist.txt -c copy output.mp4

J'ai donc produit un mylist.txt qui contient deux lignes :

Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_1.mp4
Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_2.mp4

Problème quand je lance la commande ci-dessus, ffmpeg couine :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with <...>
[concat @ 0x56409aa006c0] Line 1: unknown keyword 'Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_1.mp4'
mylist.txt: Invalid data found when processing input
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Message d'erreur qui est incompréhensible pour moi.

Surtout que ces deux extraits de la même vidéo sont du même format...

Merci de toute aide.

5 réponses

1 2
Avatar
Nicolas George
Lulu , dans le message
, a écrit :
Je confirme que la commande 'ffmpeg -f concat -i mylist.txt -c copy output.mp4'
avec mylist.txt contenant :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
file Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_1.mp4
file Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_2.mp4
8<-----------8<---------8<----------8<----------8<----------8<----------8<
s'exécute très rapidement donc sans réencodage.
Et d'ailleurs la taille du fichier résultant (au ko près) est la somme
des deux fichiers concaténés.

Bien joué.
Tu tiens ͠ avoir du MP4 en sortie ? MP4 est vraiment un format pourri. Si tu
as le choix, préfère Matroska.
Avatar
Lulu
Le 03-03-2022, Nicolas George <nicolas$ a écrit :
Lulu , dans le message
, a écrit :
Je confirme que la commande 'ffmpeg -f concat -i mylist.txt -c copy output.mp4'
avec mylist.txt contenant :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
file Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_1.mp4
file Etienne_Klein_Einstein_ou_l_art_de_depasser_les_limites_du_monde_extrait_2.mp4
8<-----------8<---------8<----------8<----------8<----------8<----------8<
s'exécute très rapidement donc sans réencodage.
Et d'ailleurs la taille du fichier résultant (au ko près) est la somme
des deux fichiers concaténés.

Bien joué.
Tu tiens ͠ avoir du MP4 en sortie ? MP4 est vraiment un format pourri.

J'avais déjÍ  entendu ça, mais il s'agit d'une vidéo que je télécharge
avec youtube-dl et ça me donne du mp4...
Si tu as le choix, préfère Matroska.

Est-ce que 'ffmpeg -i some.mp4 -qscale 0 some.mkv' va réencoder sans
perte ?
Avatar
Lulu
Le 05-03-2022, Lulu a écrit :
Est-ce que 'ffmpeg -i some.mp4 -qscale 0 some.mkv' va réencoder sans
perte ?

Encore une commande bidon pêchée sur un site moisi :
Quelque soit la valeur de qscale, j'obtiens un fichier de même taille...
finalement un bon vieux '-b:v 1M' règle le framerate Í  1 M/s et va très
bien.
Avatar
Nicolas George
Lulu , dans le message
, a écrit :
Est-ce que 'ffmpeg -i some.mp4 -qscale 0 some.mkv' va réencoder sans
perte ?

Non.
Ce que tu veux, c'est ne pas réencoder, donc -c copy. Et tant qu'Í  faire,
fais du Matroska dès ta première copie.
Avatar
Lulu
Le 05-03-2022, Nicolas George <nicolas$ a écrit :
Lulu , dans le message
, a écrit :
Est-ce que 'ffmpeg -i some.mp4 -qscale 0 some.mkv' va réencoder sans
perte ?

Non.
Ce que tu veux, c'est ne pas réencoder, donc -c copy. Et tant qu'Í 
faire, fais du Matroska dès ta première copie.

0K, bien compris, merci pour ton aide.
1 2