FFmpegの複数のビデオフィルター


2

PNG透かしを追加してから、ビデオを拡大したい。さらにフィルターを追加できます。これは私のFFmpegコマンドです。

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

…しかし、それは私にエラーを与えました:

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!

回答:


5
[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、おそらく必要ないので、入力ソースのフレームレートが25fps、オーディオレートが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

最初にスケールしてからウォーターマークを追加したい場合はどうすればよいですか?[in][watermark] scale=480:-1,overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2[out]動作しませんでした。
sweb

それを解決するために私を助けることができますか?
sweb

1
@sweb答えにそれを行う方法に関する指示を追加しました
-evilsoup

偉大な援助者のために再びタイ。
sweb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.