时间流逝电影组装
项目描述
时间流逝组装
此存储库包含用于使用ffmpeg编译时间流逝电影的工具。ffmpeg实用程序通过ffmpeg-python包装器进行控制。
此包的示例用法可以在时间流逝脚本存储库中找到。
安装
此包需要安装ffmpeg
工具。
brew install ffmpeg
然后安装此包
pip install time-lapse
此外,当使用详细输出选项时,将使用graphviz
渲染图形,这需要Graphviz库和相关Python包
brew install graphviz
pip install time-lapse[graph]
编解码器
为了实现近通用兼容性,使用了H.264编解码器。以下部分描述了某些特定配置选项的选择。
有关更多信息,请参阅ffmpeg维基百科:https://trac.ffmpeg.org/wiki/Encode/H.264
恒定速率因子
此使用-crf 20
来设置恒定速率因子,这意味着电影的整体质量应该是恒定的。因此,比特率会变化以确保这一点。较高的值意味着较低的质量。此值的质量和比特率似乎合理。
预设
-preset slower
用于在不花费太多时间的情况下提高所选质量(crf)的压缩比。
快速启动
-movflags +faststart
用于允许电影在加载或缓冲的同时快速开始播放。
Quicktime支持
编解码器默认为YUV 444,这不支持Quicktime。因此,添加pix_fmt yuv420p
以修复Quicktime支持。
输入
选择输入帧
通过提供匹配所需图像的全局模式来使用框架作为输入。通常这些将是tif图像,因此使用-pattern_type glob -i "*.tiff"
。
帧率
当使用图像序列作为输入时,应使用-framerate 30
指定所需输出的帧率。
过滤器
常用过滤器
- 去抖动 https://ffmpeg.cpp.org.cn/ffmpeg-filters.html#toc-deflicker
- 缩放 https://ffmpeg.cpp.org.cn/ffmpeg-filters.html#scale
- 裁剪 https://ffmpeg.cpp.org.cn/ffmpeg-filters.html#crop
- Drawtext https://ffmpeg.cpp.org.cn/ffmpeg-filters.html#drawtext-1
- 视频尺寸 https://ffmpeg.cpp.org.cn/ffmpeg-utils.html#video-size-syntax
步骤
- 首先去抖动视频,以确保所有输出都均匀去抖动。
- 然后缩放和裁剪视频以适应所需的最终分辨率。
- 然后添加水印(不应该去抖动)。
缩放视频
添加缩放以确保它适合给定的维度。宽度或高度的负值使编码器自行确定大小,保持源的比例。负值的整数,例如-4中的4,表示大小应该是该值的倍数。待办事项:它只是缩放/挤压视频还是裁剪?
-vf scale=1920:-2
-vf scale=960:540:aspect..
转换电影
使用时间流逝查找tif文件,并创建一个名为'test_movie'的电影,帧率为24fps,并去抖动。
from time_lapse import output, source
source_input = source.get_input(['*.tif'], fps=24, deflicker=10, filters=None)
output.create_outputs(source_input, 'test_movie', verbose=False)
检查
通过将verbose=True
传递给创建输出,将执行以下ffmpeg-python检查方法。
显示ffmpeg-python将使用的ffmpeg命令选项
.get_args()
通过使用graphviz,可以使用以下方式显示从输入到输出的图形:
.view()
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。