【发布时间】:2016-07-31 04:53:11
【问题描述】:
有很多关于 opencv + H.264 的问题,但是
他们都没有给出详细的解释。
我在visual studio中使用openh264(openh264-1.4.0-win32msvc.dll)和opencv 3.1(使用启用ffmpeg的cmake自定义构建),我想用H.264压缩将来自网络摄像头的视频保存为mp4格式
VideoWriter write = VideoWriter("D:/movie.mp4", CV_FOURCC('H', '2', '6', '4'), 10.0, cv::Size(192, 144), true);
在使用 openh264 之前,在控制台窗口中我看到了一条警告消息 “无法加载 openh264 库:openh264-1.4.0-win32msvc.dll 请检查您的环境和/或从此处下载: https://github.com/cisco/openh264/releases" (也没有保存视频)
所以我下载了 dll 并与我的程序文件 (exe) 一起保存在一个文件夹中 现在当我运行程序时,我看到了不同的错误 “[OpenH264] this = 0x0DE312C0,警告:bEnabledFrameSkip=0,如果不启用跳帧,则无法控制 RC_QUALITY_MODE 和 RC_TIMESTAMP_MODE 的比特率” (现在视频保存了,但是尺寸非常大!比特率在 1200 Kbps 左右)
对我来说,使用 h264 的唯一目的是减小文件大小。我想我可能必须自己构建 openh264 并进行一些更改才能消除此错误,有人可以指导我如何操作吗?或者告诉我是否有办法通过代码以某种方式降低比特率?
PS:我尝试给出 -1 而不是 CV_FOURCC(),系统中的“已安装编解码器”窗口出现了,即使我从 @ 安装了各种编解码器包和 h264,我也找不到 h264 或 x264 或 h264vfw 987654322@
感谢和问候
【问题讨论】:
标签: c++ opencv codec opencv3.1 openh264