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

975
cdlvcdlv

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

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

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

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

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

1

2 ответа на вопрос

1
Gyan

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

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

ffmpeg -i input -<encoding parameters> -movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov out.mp4 
Я ценю усилия, но не то, что я искал. Я хотел бы проверить, возможно, 4 или 5 случайных точек (например, одну из них в конце) с плавным воспроизведением, и я старался избегать кодирования и создания файла, пока я не буду уверен в результате , Но +1 за идею, которая мне кажется интересной для других целей (я загляну в эти загадочные флаги более подробно). cdlvcdlv 7 лет назад 0
Затем вы можете просто кодировать небольшие сегменты: `` ffmpeg -ss 34 -t 10 -i back -i over ... test-output` и check. Если вы хотите иметь возможность делать выборочные выборочные проверки, лучше всего подойдет видеоредактор. [Openshot] (http://www.openshot.org/) является бесплатным. Gyan 7 лет назад 0
1
cdlvcdlv

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

Я нашел вопрос, связанный, и я думал, что я мог бы труба 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 .

Похожие вопросы