Concat mp4 с пустым видео

Я хочу конкатенировать 5 секунд чистого / черного видео до конца различных видео, загружаемых с сети. Процесс, который у меня есть для этого, не работает.

Сначала я использую ffprobe для размеров видео (скажем, это 640×480). Затем я создаю свое пустое видео:

 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 
Давайте будем гением компьютера.