FFMpeg не будет кодировать в Webm при добавлении водяного знака с помощью -vf

Я успешно добавляю оверлей с x264 и -vf этой командой:

РАБОЧАЯ КОДА x264 С ВОДЯНЫМ ЗНАКОМ:

ffmpeg -i /private/youtube/$i -acodec aac -ac 2 -strict experimental -vf 'movie=/user_ftp/1037/watermarks/w640X360.png [logo];[in][logo] overlay=0:0 [out]' -crf 24 -ab 160k -s 640x360 -vcodec libx264 -preset faster -profile:v baseline -level 30 -maxrate 1500k -bufsize 2200k -b:v 1200k -f mp4 -threads 0 -y  /user_ftp/1037/$i.mp4

Однако при моем двухпроходном кодировании webm и том же коде видео кодируется, но водяные знаки не помещаются. - Vf не работает при кодировании в webm?

НЕ РАБОТАЕТ - ВИДЕО КОДЕТЫ БЕЗ ВОДОПАРКА:

Webm Pass 1

ffmpeg -i /youtube/$mediaboxid/$i -codec:v libvpx -quality good -vf 'movie=/media/raid2/uploads/user_ftp/1037/watermarks/w400X224.png [logo];[in][logo] overlay=0:0 [out]' -filter:v scale=400:224 -cpu-used 0 -b:v 500k -qmin 10 -qmax 42 -maxrate:v 500k -bufsize:v 1000k -threads 0  -an -pass 1 -f webm -y /dev/null

Webm Pass 2

ffmpeg -i /youtube/$mediaboxid/$i -codec:v libvpx -quality good -vf 'movie=/user_ftp/1037/watermarks/w640X360.png [logo];[in][logo] overlay=0:0 [out]' -filter:v scale=640x360 -cpu-used 0 -b:v 500k -qmin 10 -qmax 42 -maxrate:v 500k -bufsize:v 1000k -threads 0 -an -pass 2 -f webm -y /user_ftp/1037/$i.webm

Есть ли какие-либо известные здесь проблемы с WebM?

1 ответ

Не должно быть особых проблем с кодировкой WebM. Как уже упоминалось LordNeckbeard, ваши командные строки WebM имеют -vf вариант и -filter:v вариант, но это одно и то же (два разных способа указать набор фильтров для применения к видео). Вы можете использовать несколько видеофильтров, но указать их с помощью одного -vf или же -filter:v вариант.

Вы должны использовать -filter_complex вместо -vf для фильтрации, включающей несколько входов: это разница между простым и сложным фильтром. Это также легче понять, потому что вы можете избежать movie исходный фильтр.

Если бы вы хотели scale фильтр, который будет применен к результату overlay:

ffmpeg -i video.mp4 -i logo.png -filter_complex overlay,scale=640:-1 ... output

Если бы вы хотели scale применяется только к исходному вводу, а не к overlay Затем просто переключите расположение фильтров:

ffmpeg -i video.mp4 -i logo.png -filter_complex scale=640:-1,overlay ... output
Другие вопросы по тегам