#windows #video #ffmpeg #screen #video-capture
Вопрос:
Я создал не очень простую команду ffmpeg со сложным фильтром для добавления открывающих/закрывающих титров к видео. В том же процессе видео изменяется и перекодируется. Это отлично работает у всех игроков, которых я тестировал.
Когда я исключаю входы-filter_complex arg и изображения, результирующий файл воспроизводится, как и ожидалось, в VLC, но содержит только аудио (без видео) в проигрывателе Windows Media.
Все это делается в Windows 10 с использованием стандартного пакетного файла Windows.
Есть у кого-нибудь идеи, что здесь происходит? Мой ffmpeg foo очень ограничен.
ffmpeg.exe ^
-i "..videosfilm.mov" ^
-y ^
-codec:a aac ^
-s:v 1280x720 ^
-codec:v libx264 -preset slower -tune animation -crf 22 ..videosfilm.mov.m4v"
ffmpeg.exe ^
-i "..videosfilm.mov" ^
-i OpeningCredits.de.png -i ClosingCredits.de.png ^
-filter_complex "[0:v][1:v] overlay=0:0:enable='between(t,0,3.5)',drawtext=enable='between(t,0,3.5)':fontfile=fonts/Roboto-Bold.ttf:text=Test:fontcolor=white:fontsize=104:x=(w-text_w)/2:y=(h-text_h)/2 45,drawtext=enable='between(t,0,3.5)':fontfile=fonts/Roboto-Bold.ttf:text=:fontcolor=white:fontsize=104:x=(w-text_w)/2:y=(h-text_h)/2 45 text_h 20 [tmp]; [tmp][2:v] overlay=0:0:enable='between(t,39-5.2,39)'" ^
-y ^
-codec:a aac ^
-s:v 1280x720 ^
-codec:v libx264 -preset slower -tune animation -crf 22 "..videosfilm.mov.m4v"
Ответ №1:
Фильтр наложения по умолчанию выводится на YUV420P, который поддерживается всеми игроками. Поэтому, когда он используется, это преобразование формата является неявным побочным эффектом.
В этом случае, похоже, что ваш ввод не является YUV420P. Таким образом, когда filter_complex опущен, преобразование в 4:2:0 не происходит, и в WMP, по-видимому, нет фильтров для декодирования форматов, отличных от 4:2:0 YUV.
Добавьте -pix_fmt yuv420p
, чтобы принудительно выполнить преобразование.
Комментарии:
1. На самом деле, это была именно моя проблема. Решено, сделано, спасибо.