numpy - FFmpeg 正在减慢输出视频的速度,我不知道为什么
问题描述
我正在制作一个使用 FFmpeg 进行 I/O 的 python 程序。现在我遇到的问题是输入视频是 3s 但输出是 9s。如果我在 Premiere Pro 中手动拉伸它们,两者都会排列,但我想用 ffmpeg 解决这个问题。我知道我的数组是 223 帧,我只给 FFmpeg 参数“-r 60”,但是当命令运行并制作视频时,它每帧重复大约 3 次,使生成的视频更长。我不能只添加命令以使其播放视频的速度提高 3 倍,因为它不完全是 3(我不知道差异的确切乘数是多少)。我能做些什么让它不重复帧吗?
编辑:我正在使用 skvideo.vwrite,所以我不太确定 FFmpeg 发生了什么,但这是我拥有的代码:
skvideo.io.vwrite("out.mp4", arr, outputdict = {'-r': '60'})
其中 arr 具有形状 (854, 256, 256, 3)
解决方案
固定的。问题出在 skvideo,而不是 FFmpeg。将输出命令放入 skvideo 没有任何作用,因为问题在于它将您输入的数组解释为 25 fps 并以此为基础工作。解决方案是在 vwrite 中添加“inputdict = {'-r' : FPS}”,其中 FPS 是您想要的 fps(即 '60' 或 '30')的字符串。
推荐阅读
- chatbot - Lex 无法识别 AMAZON.EmailAddress 的语音输入
- java - 是否有 JSR-330 等效于 Spring 的 @Bean 或 Guice 的 @Provides 注释?
- python - 在 Python 中关注时跳过 Instagram 私人用户
- python - Python 3 gzip 会关闭 fileobj 吗?
- java - 确定一个字符串在 Java 中是否包含 *exactly* 3 个单词和 *exactly* 2 个空格
- postgresql - 重置服务器后如何恢复 postgresql 数据库
- solr - SOLR Cassandra 查询是否预计会详尽无遗?
- r - 基于 R 中的另一列对列的所有组合求和
- python - 在将字段名称与现有列连接时转置/堆栈/取消堆栈熊猫数据帧
- android - 如何使用 NotifyItemInsert() 和 NotifyItemDataChanged() 方法在 RecyclerViewAdapter 上处理更新数组