[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1"
... находится [out]
в неправильном месте, что делает фильтр-фильтр бессмысленным. Так должно быть:
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2, scale=480:-1[out]"
Лично мне не нравится кинофильтр по чисто эстетическим причинам (я думаю, что это делает командную строку менее понятной). Я бы сделал это, используя filter_complex вместо:
ffmpeg -i Wildlife.wmv -i /tmp/icon.png \
-filter_complex '[0:v][1]overlay=W/2-w/2:H/2-h/2,scale=480:-1[outv]' \
-map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm
Обратите внимание, что filter_complex несовместимо с [in]
, так как по своей природе он принимает несколько входных данных.
Я удалил -ar 44100
и -r 25
, поскольку они, вероятно, вам не нужны - если ваш входной источник имеет частоту кадров 25 кадров в секунду и скорость звука 44100, выходные данные будут наследовать эти настройки по умолчанию. А если этого не произойдет, вы, вероятно, ничего не получите, изменив их.
Чтобы сначала масштабировать видео, а затем добавить водяной знак, вы можете использовать что-то вроде этого:
-vf 'movie=/tmp/icon.png[wm];[in]scale=480:-1[int];[int][wm]overlay=W/2-w/2:H/2-h/2[out]'
Я на самом деле не уверен, сработает ли это; лично я бы использовал filter_complex, как указано выше:
ffmpeg -i Wildlife.wmv -i /tmp/icon.png \
-filter_complex '[0:v]scale=480:-1[int];[int][1]overlay=W/2-w/2:H/2-h/2[outv]' \
-map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm