我正在编辑视频,但无法将格式转换avi为mkv. 为了解决这个问题,我使用了库opencv,但没有一个编解码器可以在mkv.
fourcc = cv2.VideoWriter_fourcc(*'DIB ')
out = cv2.VideoWriter('output.mkv', fourcc, 20.0, (frames[0].shape[1], frames[0].shape[0]))
for frame in frames:
out.write(frame)
out.release()
在 mkv 中录制的选项之一
之后,我找到了ffmpy库,它可以从任何格式转换为任何格式。我决定将我的处理结果保存为 avi 格式,然后使用此代码将其转换为 mkv
def convertVideo():
ff = ffmpy.FFmpeg(
inputs={'output.avi': None},
outputs={'output.mkv': None}
)
ff.run()
这个片段确实将avi转换为mkv,但是如果avi文件是使用opencv创建的,那么转换失败。如何使用opencv和python在windows上编写mkv格式的文件?如何使用ffmpy将opencv接收到的avi格式的文件转换为mkv格式?
解决方案非常简单,就是使用编解码器
MJPG类型。此代码允许您将文件写入
mkv.