【问题标题】:ffmpeg multiple text/logo elementsffmpeg 多个文本/徽标元素
【发布时间】:2018-09-17 16:39:06
【问题描述】:

我正在尝试将多个项目添加到 ffmpeg 命令并且卡住了。

到目前为止,我在命令中自动更新了一张我用作视频的图像,我还想添加一个徽标和两行文本。

我一直成功到最后一项,也就是logo覆盖。

这是代码的相关部分:

ffmpeg \
    -f image2 -loop 1 \
    -y \
    -i "/var/www/html/image_rotate.png" \
    -re \
    -i audio.mp3 \
    -vf "movie=/var/www/html/overlay_logo.png [watermark]; [in][watermark] overlay=0:0 [out], drawtext=fontsize=10:fontfile=/var/www/html/OpenSans-Regular.ttf:textfile=/var/www/html/text1.txt:box=1:boxcolor=#000000:fontcolor=#FFFFFF:x=0:y=(h-text_h-20):reload=1, drawtext=fontsize=10:fontfile=/var/www/html/OpenSans-Regular.ttf:textfile=/var/www/htmltext2.txt:box=1:boxcolor=#000000:fontcolor=#FFFFFF:x=0:y=(h-text_h-30)" \

这给了我以下错误:

Simple filtergraph ... was expected to have exactly 1 input and 1 output. However, it had >1 input(s) and >1 output(s). Please adjust, or use a complex filtergraph (-filter_complex) instead.

如果我删除我添加的最后一部分(覆盖徽标),我不会收到错误消息。 如果我添加多个 -vf 它只处理一个(文本或徽标)。

我不知道如何做到这一点。

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    当您需要在过滤时处理多个流时,推荐的方法是使用 filter_complex。

    ffmpeg \
        -loop 1 \
        -i "/var/www/html/image_rotate.png" \
        -i "/var/www/html/overlay_logo.png" \
        -i audio.mp3 \
        -filter_complex "[0][1]overlay=0:0,drawtext=fontsize=10:fontfile=/var/www/html/OpenSans-Regular.ttf:textfile=/var/www/html/text1.txt:box=1:boxcolor=#000000:fontcolor=#FFFFFF:x=0:y=(h-text_h-20):reload=1, drawtext=fontsize=10:fontfile=/var/www/html/OpenSans-Regular.ttf:textfile=/var/www/htmltext2.txt:box=1:boxcolor=#000000:fontcolor=#FFFFFF:x=0:y=(h-text_h-30)" \
        -y \
        -shortest \
    

    徽标现在作为常规输入提供。

    【讨论】:

    • 感谢您按预期工作,非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2013-04-11
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多