arrays - 在 pngs 上循环运行 ffmpeg 以提高效率?
问题描述
我正在使用 ffmpeg 将生产数据作为文本覆盖嵌入到保存为 png 文件的单独动画帧中。
目前它的效率非常低,因为我需要从动画场景中采样值,例如当前帧和相机焦距,所以我有一个循环对每帧的信息进行采样,运行 ffmpeg 嵌入该帧的文本,然后关闭ffmpeg 并重复直到完成。
如果我有两个给定的字符串列表数组(例如帧号和焦距),有没有办法让 ffmpeg 运行一个实例,但是对于给定列表中的每个 png,它还引用数组中的下一个项目来打印文本,因此只操作一次整个框架集?
解决方案
制作
input.txt
:file '01.png' file_packet_metadata length=50mm duration 0.04 file '02.png' file_packet_metadata length=35mm duration 0.04 file '03.png' file_packet_metadata length=18mm duration 0.04
编码,使用drawtext过滤器添加文本:
ffmpeg -f concat -i input.txt -vf "drawtext=text='%{metadata\:length}':fontsize=22:fontcolor=white:x=w-tw-10:y=h-th-10,format=yuv420p" output.mp4
有关定位,请参见如何定位 drawtext 文本。
推荐阅读
- flutter - 如何在 Hive (Flutter) 中存储列表?
- python - “PySide2.QtWidgets.QMainWindow”对象没有属性“setSizeGripEnabled”
- php - How do I "cancel" the update function in sql and php if there is an error?
- javascript - 在单个对象上使用键数组有什么好处:值对?
- reactjs - 如何将提取结果导出到另一个文件
- reactjs - 你将如何控制台登录 Gatsby js?
- c# - C# 创建一个列表并在消息框中显示一个项目
- mysql - PHP & MySQL 使用 INNER JOIN、WHERE 和 OR 子句的不同结果(过滤重复项)
- css - 如何调整嵌套 div 的宽度以等于祖先 div 的宽度?
- reactjs - SPA 组件的逆向工程是否存在风险?