FFmpeg'da çoklu video filtreleri


2

Bir PNG filigranı eklemek ve videomu ölçeklendirmek istiyorum. Daha fazla filtre ekleyebilirim. Bu benim FFmpeg komutum.

sweb@sweb-laptop:/tmp$ ffmpeg -i Wildlife.wmv -sn -acodec libvorbis -vcodec libvpx -b:a 128k -ar 44100 -b:v 384k -r 25 -vf "movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1" video.webm

… Ama bana bir hata verdi:

Simple filtergraph 'movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1' does not have exactly one input and output.
Error opening filters!

Yanıtlar:


5
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1"

..vardır [out] Yanlış yerde, bu süzgeç anlamsız hale getirir. Olmalı:

[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2, scale=480:-1[out]"

Şahsen film filtresinden hoşlanmıyorum, tamamen estetik nedenlerden dolayı (komut satırının daha az net görünmesini sağlıyor). Bunun yerine filter_complex kullanarak bunu yapardım:

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 ile uyumlu olmadığını unutmayın [in]Çünkü doğası gereği çoklu girdi almaktadır.

Kaldırdım -ar 44100 ve -r 25, muhtemelen onlara ihtiyacınız olmadığından - giriş kaynağınız 25fps kare hızına ve 44100 ses hızına sahipse, çıkış bu ayarları varsayılan olarak devralır. Olmazsa, muhtemelen onları değiştirerek hiçbir şey kazanamayacaksınız.


Önce videoyu ölçeklemek ve sonra bir filigran eklemek için, şunun gibi bir şey kullanabilirsiniz:

-vf 'movie=/tmp/icon.png[wm];[in]scale=480:-1[int];[int][wm]overlay=W/2-w/2:H/2-h/2[out]'

Bunun işe yarayacağından emin değilim; Şahsen, yukarıdaki gibi filter_complex kullanırım:

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

ilk ölçek ve sonra su işareti eklemek istersem ne yapmalıyım? [in][watermark] scale=480:-1,overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2[out] işe yaramadı.
sweb

Bunu çözmeme yardım eder misin?
sweb

1
@sweb Bunun cevabına nasıl yapılacağına dair talimatlar ekledim
evilsoup

Büyük yardım için tekrar ty.
sweb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.