swe*_*web 2 ffmpeg multiplexing video-editing
我想添加一个 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
Run Code Online (Sandbox Code Playgroud)
......但它给了我一个错误:
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!
Run Code Online (Sandbox Code Playgroud)
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1"
Run Code Online (Sandbox Code Playgroud)
..has[out]
在错误的地方,这使得 filtergraph 毫无意义。它应该是:
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2, scale=480:-1[out]"
Run Code Online (Sandbox Code Playgroud)
我个人不喜欢电影过滤器,纯粹出于审美原因(我认为它使命令行看起来不那么清晰)。我会使用 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
Run Code Online (Sandbox Code Playgroud)
请注意, filter_complex 与 不兼容[in]
,因为它本质上需要多个输入。
我已删除-ar 44100
and -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]'
Run Code Online (Sandbox Code Playgroud)
我实际上不确定这是否可行;就个人而言,我会使用 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8269 次 |
最近记录: |