Протокол ffmpeg с функция concat не объединять видео файлы



Поэтому я попытался использовать следующую команду для объединения 2 видеофайлов с одним и тем же кодеком:



ffmpeg -i "concat:/home/mike/downloads/a1.mp4|/home/mike/downloads/a2.mp4" -c copy "/home/mike/downloads/output.mp4"


Результат: output.mp4 содержит только видео из a1.mp4. Я также попробовал 2 или более файла, но результат тот же. Какова же может быть возможная причина этого? Пожалуйста, помогите



Майк

638   1  

1 ответ:

Вы не можете объединить файлы mp4 непосредственно с файлом concat protocol, так как формат не поддерживает его. Это предназначено для mpg или mpeg-ts и им подобных.

Это можно сделать, если пройти мимо одного из следующих форматов:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Альтернативой является использование concat demuxer, который является более гибким (вам все еще нужны те же кодеки для входных файлов, но он может использовать различные контейнеры):

ffmpeg -f concat -i mylist.txt -c copy output

Где mylist.txt - это что-то вроде:

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Документация

Comments

    Ничего не найдено.