我正在尝试合并3个视频文件,并使用ffmpeg将文本添加到输出中。 每个部分长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秒,但在第1部分(10秒)后挂起。当我删除drawtext过滤器部分(只是concat)时,视频很好,但是没有文本... 有人可以帮忙吗?
答案 0 :(得分:0)
使用
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过滤器生成的视频。