【问题标题】:Write video in Python at 60 frames per second以每秒 60 帧的速度用 Python 编写视频
【发布时间】:2022-01-03 17:46:13
【问题描述】:

我想用 Python 创建一个每秒 60 帧的视频文件。

我尝试如下制作两分钟的视频 (DURATION_SECONDS = 120),但我得到的视频持续时间为 4 分 48 秒,而不是 2 分钟。所以帧速率似乎是 25,即使我将 60 传递给 FFmpegWriter。我做错了什么?

FRAMES_PER_SECOND = 60
DURATION_SECONDS = 120

import skvideo
skvideo.setFFmpegPath('C:\\ffmpeg\\x64')
import skvideo.io
import numpy as np

video_writer = skvideo.io.FFmpegWriter("test.mp4", outputdict={'-r':str(FRAMES_PER_SECOND)})

for i in range(DURATION_SECONDS*FRAMES_PER_SECOND):
    video_writer.writeFrame(np.zeros((100,100)))
    
video_writer.close()

我也得到相同的结果 outputdict={'-vf':f"fps={FRAMES_PER_SECOND}"}

【问题讨论】:

    标签: python video ffmpeg scikits


    【解决方案1】:

    解决方案是将inputdict={'-framerate':str(FRAMES_PER_SECOND)} 传递给FFmpegWriter,而不是outputdict-r

    inputdictoutputdict 都没有记录在 skvideo 中(没有提到 ffmpeg 文档,没有示例),-framerate 也没有正确记录在 the ffmpeg documentation 中(它谈到的是抓取而不是保存,并声称默认是30000/1001,即使它是25),也没有在调用ffmpeg --help时提到-framerate

    感谢 @Goury 没有删除 this thread(这对这里很有帮助),尽管在该线程中从 StackOverflow 社区收到了 -3 的负分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多