использование
ffmpeg -i random.mp4 -f lavfi -i color=s=640x480:d=5 -filter_complex [0:v][1]concat -af [0]apad -shortest out.mp4
Я хочу объединить 5 секунд чистого / черного видео в конец разных видео, загружаемых из сети. Процесс, который у меня есть для этого, не работает.
Сначала я использую ffprobe
размеры видео (скажем, 640x480). Затем я создаю свое пустое видео следующим образом:
ffmpeg -f lavfi -i color=color=black -t 5 -s 640x480 blank.mp4
Результирующее видео, blank.mp4
воспроизводится как 5-секундное пустое видео, как и ожидалось.
Затем я объединяю видео так:
ffmpeg -i random.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts a.ts ffmpeg -i blank.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts b.ts ffmpeg -i concat:a.ts|b.ts -c copy -bsf:a aac_adtstoasc final.mp4
Теперь стоит отметить: я взломал это вместе с фрагментами со всего Интернета / stackoverflow, и я почти уверен, что это неправильно. На самом деле, я знаю, что это неправильно, потому что ...
Результирующее видео final.mp4
, кажется, почти правильно. Но во время воспроизведения, когда точка воспроизведения вводит конец видео в 5 секунд черного цвета, видео больше не может успешно искать ранее в видео. Вместо этого видео остается черным (хотя я могу слышать звук).
Предложения? Я ищу общее решение, которое будет работать с различными файлами mp4, которые я нахожу в сети. Спасибо!
полезно, но требует создания большого пустого видео с большей длительностью, чем у исходного видео ... https://stackoverflow.com/a/36786271/62255
использование
ffmpeg -i random.mp4 -f lavfi -i color=s=640x480:d=5 -filter_complex [0:v][1]concat -af [0]apad -shortest out.mp4