2015-09-16 6 views
1

Так что я попытался использовать следующую команду, чтобы объединить 2 видео файлов с тем же кодеком:FFMPEG Concat протокол не объединить видео файлов

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 или более файлов, но результат тот же. Что может быть причиной этого? Пожалуйста, помогите

Майк

ответ

6

Вы не можете сцепить 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' 

Documentation

+0

Спасибо за ввод. –

Смежные вопросы