2

Я пытаюсь пометить видео другим видео, помещенным в другую папку.

Исходное видео [video.mov] размещается в папке типа

x:\test1\

Наложение видео [overlay.mov] находится в

x:\test2\

Я использую эту команду:

ffmpeg.exe -y -i x:\test1\video.mov -vf "movie=x:\test2\overlay.mov [watermark]; [in][watermark] overlay=0:0 [out]" x:\test3\video_overlay.mov

Но я получаю сообщение об ошибке

Missing key or no key/value separator found after key 'test2overlay.mov'

При размещении всех файлов в одной папке и использовании этого:

ffmpeg.exe -y -i video.mov -vf "movie=overlay.mov [watermark]; [in][watermark] overlay=0:0 [out]" video_overlay.mov

все отлично работает

Так как же получить видеофильтр для загрузки оверлейного файла из другой папки в Windows?

3 ответа3

2

Избавьтесь от фильтра исходного movie и используйте -filter_complex (используется для фильтрации с несколькими входами) вместо -vf (используется для фильтрации с одним входом). Теперь вы можете просто перечислить ваши входные данные как обычно, а затем указать каждому из ваших фильтров, с какими входами вы хотите, чтобы они работали.

Поскольку у вас есть только два входа, вы можете просто сделать:

ffmpeg.exe -i x:\test1\video.mov -i x:\test2\overlay.mov -filter_complex overlay x:\test3\video_overlay.mov

Это будет так же, как:

ffmpeg.exe -i x:\test1\video.mov -i x:\test2\overlay.mov -filter_complex "[0:0][1:0]overlay[out]" x:\test3\video_overlay.mov

Получите последнюю сборку ffmpeg, если ваша не поддерживает -filter_complex в сборках Zeranoe FFmpeg, и обратитесь к документации по фильтрам FFmpeg для получения дополнительной информации.

0

Как упомянуто в билете № 2166, вам нужно дважды выйти из двоеточия:

movie=x\\:/test1/video.mov
-1

В то время как решение @ LordNeckbeard является тем, которое я лично использовал бы (потому что я нахожу его более читабельным), проблема вполне может быть связана с этими обратными косыми чертами. Попробуйте вместо этого использовать movie=x:/test2/overlay.mov .

FFmpeg в первую очередь разработан для систем * nix, где \ используется в качестве escape-символа, а не разделителя; и, кроме того, цепочки фильтров ffmpeg /filtergraphs являются особым случаем, поэтому их необходимо заключать в кавычки.

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