我正在尝试用 Python 在 Win10 上处理一些 FHD 视频。我在 BIOS 中启用了集成 GPU,通过 Intel 驱动程序支持安装了最新的驱动程序,成功安装了 Intel Media SDK 并重新启动。然后我从这里下载了带有所有硬件编解码器的 OpenCV 4.5并添加到一个虚拟项目中(确保不存在其他 OpenCV)。当我尝试使用它进行解码/编码时,出现以下错误。
在解码中,我得到了类似的错误
decoder = cv.VideoCapture('myfile.hevc', cv.CAP_INTEL_MFX)
# MFX: LoadPlugin failed for codec: 1129727304
但使用 cv.CAP_FFMPEG 工作正常。
在编码中,我得到了类似的错误
writer = cv.VideoWriter('output.hevc', apiPreference = cv.CAP_INTEL_MFX, fourcc = cv.VideoWriter_fourcc('h','v','c','1'), fps = 20.0, frameSize = (640,480))
# MFX: Unsupported FourCC: hvc1 (0x31637668)
# 'hevc' or 'h265' give same error code
# write to 'output.mp4' with 'mp4v' yield a different error code 0x7634706d
在使用 ffmpeg 写作时
writer = cv.VideoWriter('C:/testData/output.mp4', apiPreference = cv.CAP_FFMPEG , fourcc = cv.VideoWriter_fourcc('m','p','4','v'), fps = 20.0, frameSize = (640,480))
# success
非常感激。
[编辑01]
是运行 mediasdk_system_analayzer_64.exe 的截图。
[编辑02]
即使硬件解码器没有显示在分析器中,它在我禁用所有监视器后工作,但 1 如此处建议。
.\sample_multi_transcode.exe -i::h265 myfile.hevc -o::h265 output.hevc -hw
# session 0 [0000023D33FCA130] PASSED (MFX_ERR_NONE) 8.34417 sec, 226 frames, 27.085 fps
带有 cv.CAP_INTEL_MFX 的 VideoCapture 现在可以工作了。然而 VideoWriter 给出了同样的错误。