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