FFMPEG Объединить mp4 в mp4 пакет
Привет, извините, если об этом уже спрашивали, но у меня есть intro.mp4 и более 1000 mp4 в другой папке. Мне нужно добавить intro.mp4 к каждому mp4 в папке, используя ubuntu, что является лучшим способом сделать это.
все mp4 имеют одинаковую кодировку
ffmpeg -i intro.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i 1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy output.mp4
эта команда слова для одного за раз это моя попытка партии, но переменная не работает
for f in *.mp4; do ffmpeg -i "$f" -c copy -bsf:v h264_mp4toannexb -f mpegts "$f.ts"; done
этот код работает нормально
for i in *.mp4;
do
test="concat:intro.mp4.ts|"${i%.*}".mp4.ts";
ffmpeg -i "$test" -c copy anime2/"${i%.mp4}.mp4"; done
Получил работу с этими 2 командами сделал весь пакет в одном скрипте
for f in *.mp4; do ffmpeg -i "$f" -c copy -bsf:v h264_mp4toannexb -f mpegts "$f.ts"; done
for i in *.mp4;
do
test="concat:intro.mp4.ts|"${i%.*}".mp4.ts";
ffmpeg -i "$test" -c copy anime2/"${i%.mp4}.mp4"; done
благодарю вас
1 ответ
Параметры должны совпадать, поэтому сначала вы должны согласовать вступление с другими видео (или наоборот).
использование ffprobe
чтобы увидеть различия:
ffprove -loglevel error -show_streams intro.mp4
ffprove -loglevel error -show_streams 1.mp4
Переколировки intro.mp4
соответствовать 1.mp4
:
ffmpeg -i intro.mp4 -filter_complex "[0:v]fps=500/21,scale=848:480:force_original_aspect_ratio=increase,crop=848:480,setsar=171/170[v]" -map "[v]" -map 0:a -c:v libx264 -profile:v main -c:a aac -ar 44100 intro_b.mp4
Теперь используйте демоверсию concat. Сделайте текстовый файл, содержащий входные данные для объединения:
file 'intro_b.mp4'
file '1.mp4'
Затем объединить:
ffmpeg -f concat -i input.txt -c copy output.mp4