首页 > 解决方案 > 连接视频文件和drawtext输出后视频文件挂起

问题描述

我正在尝试使用 ffmpeg 连接 3 个视频文件并在输出中添加文本。每个部分为 10 秒长。

我最终得到了这段代码:

ffmpeg -i output3.mp4 -i output2.mp4 -i output1.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[v][a]; [0:v:0]drawtext=fontfile=tahoma.ttf:text=Sample text:fontcolor=white:fontsize=40:box=1:boxcolor=black@0.7:boxborderw=5:x=100:y=100" -map "[v]" -map "[a]" output.mp4

结果视频有 30 秒,但在第一部分(10 秒)后挂起。当我删除drawtext过滤器部分(只是连接)时,视频很好,但没有文字......任何人都可以帮忙吗?

标签: ffmpegvideo-processing

解决方案


利用

ffmpeg -i output3.mp4 -i output2.mp4 -i output1.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[v][a]; [v]drawtext=fontfile=tahoma.ttf:text=Sample text:fontcolor=white:fontsize=40:box=1:boxcolor=black@0.7:boxborderw=5:x=100:y=100[v]" -map "[v]" -map "[a]" output.mp4

您现有的语法将文本应用在第一个输入文件的视频流之上,而不是来自 concat 过滤器的结果视频。


推荐阅读