ffmpeg - 连接视频文件和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过滤器部分(只是连接)时,视频很好,但没有文字......任何人都可以帮忙吗?
解决方案
利用
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 过滤器的结果视频。
推荐阅读
- angular - Angular - ngFor 如何工作?
- java - Robot.mouseMove 在 Mac OS X 中根本不起作用
- opencl - OpenCL 一个平台中只有一个设备
- reactjs - 如何在样式化组件中向主题提供程序添加自定义字体?
- javascript - 用js函数将价格乘以数量的问题
- php - PHP Session Var 不跨页面传输
- javascript - 在 Firebase admin sdk 上应用实时数据库规则
- android - 如何使用几个按钮,它们之间有依赖关系?安卓工作室
- google-cloud-platform - 将目录上传的文件类型设置到 Google 存储
- angular - 如何使用 Angular 6 更新图像