- opencv 4.0 ~ opencv4.4版本,使用环境变量调用ffmpeg后端加速的代码是:
os.environ['OPENCV_FFMPEG_WRITER_OPTIONS'] = 'video_codec;h264_nvenc'
os.environ['OPENCV_FFMPEG_CAPTURE_OPTIONS'] = 'video_codec;h264_cuvid'
这里是使用h264编码器进行解码和编码的代码,对应cpp文件调用时:
VideoCapture video(video_filename, cv::CAP_FFMPEG);
- opencv 4.6 ~ opencv 4.7版本,使用环境变量调用ffmpeg后端加速的代码是:
os.environ['OPENCV_FFMPEG_WRITER_OPTIONS'] = 'hw_encoders_any;cuda'
os.environ['OPENCV_FFMPEG_CAPTURE_OPTIONS'] = 'hw_decoders_any;cuda,vaapi,vdpau'
对应cpp文件调用时:
VideoCapture video(video_filename, cv::CAP_FFMPEG, {
cv::CAP_PROP_HW_ACCELERATION, (int)1, // cv::VIDEO_ACCELERATION_ANY,
// cv::CAP_PROP_HW_DEVICE, 1
});