Я пытаюсь объединить несколько файлов webm , добавив черный интервал между файлами.

Большинство файлов обрабатывается нормально, но потом я столкнулся с проблемой. В какой-то момент на выходе:

Входной поток # 1:1 кадр изменен с размера:640x480 fmt:yuv420p на размер:480x360 fmt:yuv420p frame = 8173 кадров в секунду = 109 q = 0.0 размер = 29580kB время = 00:15:44,88 битрейт = 256,5 кбит / с скорость = 12,6 Икс
кадр = 8173 кадров в секунду = 108 q = 0,0 размер = 29580 кБ время = 00:15:скорость передачи 44,88 = 256,5 кбит / с, скорость = 12,5x
кадр = 8173 кадров / с = 107 q = 0,0 размер = 29580 кБ время = 00:15:скорость передачи 44,88 = 256,5 кбит / с, скорость = 12,4x

..и это повторяется в течение нескольких часов, пока я не убью ffmpeg. Полный журнал https://pastebin.com/e8URCSec.

Команда

/home/vagrant/bin/ffmpeg -y -i file1.webm
-i file2.webm -f lavfi 
-i "color=c=black:s=640x480:r=25" 
-f lavfi -i anullsrc 
-filter_complex "[0:v]scale=640:480[scaled0]; [1:v]scale=640:480[scaled1]; 
[2]trim=duration=68.579[g0]; [3]atrim=duration=68.579[ga0]; 
[scaled0][0:a][g0][ga0][scaled1][1:a]concat=n=3:v=1:a=1" 
-cpu-used -5 -deadline realtime -threads 4 
output.webm 2> output.log

Да, я вижу сообщение " кадр изменен с размера ", но именно поэтому я добавил scale фильтр. Без этого фильтра возникли ошибки и произошел сбой ffmpeg.

Версия Ffmpeg является стандартной из репозитория Ubuntu 16.04.

Пожалуйста, добавьте комментарий, если я должен предоставить входные файлы.

1 ответ1

0

Ну, я думаю, что нашел обходной путь. Я уверен, что проблема заключается в том, что исходные файлы имеют несинхронизированный звук и видео. Я не знаю причин, мы получили файлы с медиа-сервера.

Но есть обходной путь. Сначала мы используем scale фильтр для каждого файла. И только после этого мы используем concat . Тогда ffmpeg работает нормально.

У нас все еще есть несинхронизированное аудио / видео, но это не проблема ffmpeg.

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