【问题标题】:FFMPEG overlay two video and add textFFMPEG 覆盖两个视频并添加文本
【发布时间】:2019-07-13 20:04:12
【问题描述】:

我想叠加两个视频并在视频上添加时间。

当我合并两个视频时

ffmpeg \
-y \
-i video1.mp4 -i video2.mp4 \
-filter_complex " \
    [0:v]setpts=PTS-STARTPTS,scale=720x720[top]; \
    [1:v]setpts=PTS-STARTPTS,scale=240x240[bottom]; \
    [top][bottom]overlay=x=10:y=10:eof_action=pass" \
-acodec aac -vcodec libx264 merge.mp4

而且它有效。

但是当我尝试在上面添加文字时

ffmpeg \
-y \
-i video1.mp4 -i video2.mp4 \
-filter_complex " \
    [0:v]setpts=PTS-STARTPTS,scale=720x720[top]; \
    [1:v]setpts=PTS-STARTPTS,scale=240x240[bottom]; \
    [top][bottom]overlay=x=10:y=10:eof_action=pass; \
    drawtext=fontfile=Arial.ttf:text=yo" \
-acodec aac -vcodec libx264 merge.mp4

我有错误

在过滤器 Parsed_drawtext_5 上找不到未标记输入垫 0 的匹配流

我应该如何修改我的命令

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:

    对链中另一个过滤器的输出进行操作的过滤器应该用逗号分隔。所以,

    [top][bottom]overlay=x=10:y=10:eof_action=pass, \
        drawtext=fontfile=Arial.ttf:text=yo"
    

    【讨论】:

    • 谢谢,它有效。我可以再问一个问题,如果我想将文本更改为时间并从我插入的时间开始?
    • 这样,drawtext=fontfile=Arial.ttf:text=yo:enable='between(t,10,15)'
    • 对不起,我不清楚。我的意思是将文本更改为时间,例如视频为 10 秒。并从 00:12:10 开始,因此文本从 00:12:10 开始,每秒更改一次,最终以 00:12:20 结束
    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 2018-11-17
    • 2018-08-11
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多