Как вы можете проверить видео с альфа-каналом, прежде чем объединить его с другим видео?

Я работаю над видео с альфа-каналом, который будет объединен с фоновым видео в заданной позиции (например, [100,100]) . Вы можете сделать это с помощью:

ffmpeg -i НАЗАД -i OVER -filter_complex [0][1] оверлей =100:100 ВЫХОД

Но я хотел бы проверить результат без необходимости генерировать все видео, а затем воспроизводить его.

Я пробовал VLC, но его единственный вариант наложения - поместить изображение (даже не анимированное) поверх видео. Я не знаю, есть ли в MPC-HC шейдер, который бы мне подошел, но я его не нашел (а шейдеры, даже самые простые, обычно требуют процессора) . То же самое происходит и с Avisynth: игра резкая и выглядит еще хуже (я полагаю, это потому, что Avisynth работает с и выводит несжатое видео) .

Есть ли способ смотреть получившееся видео на лету, имея возможность перепрыгнуть на любую его точку и использовать разумное количество процессорного времени?

2 ответа

Решение

Я отвечаю себе:

Я нашел связанный с этим вопрос, и я подумал, что могу передать ffmpeg в ffplay . Он работает частично (вы можете смотреть объединенное видео), но вы не можете искать (и он душит процессор).

ffmpeg -i BACKGROUND -i OVERLAY -filter_complex [0][1]overlay=100:100 -f matroska - | ffplay -

Но я даже не думал, что ffplay можно использовать, и, хотя ffplay принимает только один -i вариант, пересматривая фильтры ffmpeg , я наткнулся на movie фильтр (почти не используется с ffmpeg, потому что вы можете добавить несколько -i параметры), который предоставляет способ добавить больше входов. После некоторых тестов я смог сделать то, что хотел:

ffplay -i BACKGROUND -vf "movie=OVERLAY[ov]; [in][ov]overlay=100:100"

(Если вы используете Windows и OVERLAY это имя с пробелами, вы можете окружить его '' .)

С помощью этой командной строки вы можете искать полученное видео, не используя заметных дополнительных процессоров (просто щелкните правой кнопкой мыши на изображении - вы перейдете к проценту в файле, соответствующему доле ширины).

Плюсом является то, что если вам нужны некоторые дополнительные параметры в окончательном кодировании с помощью ffmpeg , они могут быть обнаружены с помощью ffplay .

Если вы генерируете фрагментированный MP4, вы можете просматривать видео во время его кодирования. Вы можете искать только те точки, которые уже были закодированы во время загрузки файла. Итак, если вы хотите искать дальше, перезагрузите его позже.

Основной синтаксис

ffmpeg -i input -<encoding parameters> -movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov out.mp4
Другие вопросы по тегам