我正在使用OpenCV进行一些视频处理,并要求输出文件在MP4容器中进行H264编码。这是在Docker容器中的Ubuntu 16.04上运行,但我也在Debian 9(Stretch)中进行了测试并发现了同样的问题。当视频编写器开始写入文件时,会发生以下错误:
[h264_nvenc @ 0x7fd3c0468b60] Cannot load libcuda.so.1
Could not open codec ‘h264_nvenc’: Unspecified error
这似乎意味着nVidia cuda和nvenc正用于编码输出视频。这需要安装nVidia驱动程序,现在不能选择。
VideoWriter的创建方式如下:
self.out = cv2.VideoWriter("test.mp4", cv2.VideoWriter_fourcc(*'X264'), 30, (1280, 720))
据我了解,OpenCV使用FFmpeg进行视频读取和写入视频。我的FFmpeg安装启用了libx264 - 是否有办法强制OpenCV使用FFmpeg& libx264用于视频写入而不是的libcuda和nvenc?
感谢。