【问题标题】:h.264 encoding directly from numpy直接从 numpy 进行 h.264 编码
【发布时间】:2019-11-21 02:10:24
【问题描述】:

我想直接对来自 numpy 视频帧数组的视频进行编码。 Open-cv 通过cv2.VideoWriter 提供这样的功能,但是我需要不可用的 h.264 编解码器。到目前为止,我最好的方法是使用 open-cv 编写视频,然后通过以下方式重新编码:

# write video from numpy arrays via cv2
out = cv2.VideoWriter("/tmp/video.mp4", cv2.VideoWriter_fourcc(*"mp4v"), fps, size)
for frame in frames:
    out.write(frame)
out.release()
# reencode video with ffmpeg
os.system("ffmpeg -y -i /tmp/video.mp4 -vcodec libx264 /tmp/video2.mp4")

但是,我认为第一次编码并没有减少损失,所以我转而寻找一种可以直接从 python 编码视频的解决方案。

感谢您的帮助!

【问题讨论】:

    标签: python opencv video ffmpeg h.264


    【解决方案1】:

    scikit-video 提供的功能:

    import skvideo.io
    
    outputfile = "/tmp/video.mp4"
    writer = skvideo.io.FFmpegWriter(outputfile, outputdict={'-vcodec': 'libx264'})
    for frame in frames:
        writer.writeFrame(frame)
    writer.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 2011-04-02
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 2013-04-14
      相关资源
      最近更新 更多