直接从 numpy 进行 h.264 编码

2024-02-22

我想直接从视频帧的 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 编码视频的解决方案。

感谢您的帮助!


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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

直接从 numpy 进行 h.264 编码 的相关文章

随机推荐