web-dev-qa-db-fra.com

Comment fusionner deux fichiers avi en utilisant ffmpeg?

Je ne parviens pas à fusionner deux vidéos avi. google est plein d'exemples ci-dessous:

cat file1.avi file2.avi file3.avi > video_draft.avi
after appending the data together using cat above, you need to re-index the draft movie like this:

mencoder video_draft.avi -o video_final.avi -forceidx -ovc copy -oac copy
Now you're video_final.avi file will be right to go.

mais ça ne marche pas pour moi, la première vidéo est convertie et c'est tout.

19
teslasimus

Vous devriez regarder dans concat demux et concat protocol qui a été ajouté dans ffmpeg 1.1. En supposant que les codecs soient les mêmes, vous créez un fichier (exemple mylist.txt):

file '/path/here/file1.avi'
file '/path/here/file2.avi'
file '/path/here/file3.avi'

Puis passez ce fichier à ffmpeg

ffmpeg -f concat -i mylist.txt -c copy video_draft.avi

Vous pouvez utiliser cette commande pour faire la liste:

ls *.avi | while read each; do echo "file '$each'" >> mylist.txt; done

La page liée contient des exemples plus avancés pour traiter des problèmes tels que différents codecs/formats.

54
cwgem

vous devez ajouter -safe 0 pour les versions récentes de ffmpeg, et cela doit figurer avant la liste des fichiers.

ffmpeg -f concat -safe 0 -I mylist.txt ...
0
lbutlr