1

Я хочу объединить 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

1 ответ1

2

использование

ffmpeg -i random.mp4 -f lavfi -i color=s=640x480:d=5 -filter_complex [0:v][1]concat -af [0]apad -shortest out.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .