Як я зшиваю 2 відеофайли за допомогою ffmpeg?


3

Я створив кілька фотографій, що проміжок часу, із фотографій за допомогою цієї команди:

ffmpeg -i IMG_%03d.JPG -s 1440x1080 -sameq video.MP4

І це спрацювало чудово. Тепер я хочу приєднатись до декількох цих відеозаписів, що протікають з часом, щоб зробити єдине, довше відео (усі вхідні відео мають точно такий же формат). Я вже спробував використовувати:

cat video1.MP4 video2.MP4 > stitch.MP4

але вихід в кінцевому підсумку дорівнює video1.MP4

Я не хочу перекодувати і не змінювати жоден параметр відео, я просто хочу встромне зшивання, як би ці відео були в списку відтворення.

Дякую!

Відповіді:


3

З останньою версією ffmpeg ви можете використовувати concat demuxer. Створіть файл, який називається inputs.txt, що містить рядки, такі як:

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
file 'input4.mp4'

За допомогою оболонки bash ви можете використовувати цикл for, щоб створити файл так:

rm inputs.txt
for f in input{1..4}.mp4; do echo "file '$f'" >> inputs.txt; done

Потім,

ffmpeg -f concat -i inputs.txt -c copy output.mp4

Оскільки він використовує -c copy, це буде повністю без втрат.


1

Вихід не дорівнюватиме video1.mp4, але заголовки / колонтитули для відео запускаються та закінчуються навколо video1.mp4, тому ваш плеєр не перейде на video2.mp4. Припустимо, що відео однакові бітрейт / кодек тощо:

cat video1.MP4 video2.MP4 | ffmpeg -y -i - -genpts -vcodec copy -acodec copy stitch.MP4

Майте на увазі, що це не обов'язково найкращий метод (було б краще, щоб весь час пропадав одночасно в одному відео), як якщо кодек є втратним, ви спричините втрату покоління .


Це не працює. У ньому сказано, що "не вдалося виявити параметри кодека"
tomm89

1

Я знаю, ви сказали з ffmpeg, але мені пощастило використовувати mp4box для простого зшивання файлів. Завантажити його можна тут.

http://gpac.wp.mines-telecom.fr/mp4box/

Ось приклад командного рядка:

mp4box -cat <file> -cat <file> dest.mp4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.