千家信息网

如何利用OpenCV进行H264视频编码

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关如何利用OpenCV进行H264视频编码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Python下,利用pip安装预编译的opencv库,并实
千家信息网最后更新 2026年11月01日如何利用OpenCV进行H264视频编码

这篇文章给大家分享的是有关如何利用OpenCV进行H264视频编码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在Python下,利用pip安装预编译的opencv库,并实现h364格式的视频编码。

1. 安装OpenCV

$ pip install opencv-python

建议在python虚拟环境下安装,不容易产生相互影响。

2. 代码示例

读取笔记本自带摄像头,并保存为视频的最简实现。

import cv2def main():    output_path = './output.avi'    vc = cv2.VideoCapture(0)    ret, frame = vc.read()    w = int(vc.get(cv2.CAP_PROP_FRAME_WIDTH))    h = int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT))    fps = vc.get(cv2.CAP_PROP_FPS)        fourcc = cv2.VideoWriter_fourcc('H', '2', '6', '4')    # fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')    # fourcc = cv2.VideoWriter_fourcc('H', 'E', 'V', 'C')    vw = cv2.VideoWriter(output_path, fourcc, fps, (w, h), True)    while ret:        vw.write(frame)        ret, frame = vc.read()        cv2.imshow('frame', frame)        if cv2.waitKey(5) & 0xFF == ord('q'):            cv2.destroyAllWindows()            return -1if __name__ == '__main__':    main()

2.1 默认编码

预编译的opencv,默认支持XVID格式的编码,但是不支持H264。

如果将# fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')注释取消,程序可以正常运行并保存视频。

2.2 H264支持

按示例代码配置为H264编码,会显示如下错误提示。摄像头可以采集到图像,但是不能正常保存为视频。

Failed to load OpenH264 library: openh364-1.8.0-win64.dllPlease check environment and/or download library: https://github.com/cisco/openh364/releases[libopenh364 @ 000001e7a96ddec0] Incorrect library version loadedCould not open codec 'libopenh364': Unspecified error

根据提示,到Github库中搜索对应的动态库。

注意选取对应的版本。我安装的OpenCV版本为4.4.0.42,提示需要的动态库为openh364-1.8.0-win64.dll,在Release页中找到对应的版本,将下载获得的dll文件解压并放在与py文件同级的工程目录下。

不同OpenCV版本可能需要的支持库版本也不同,没有测试,注意看提示就行。

如果考虑通用性也可以将dll所在的路径加入环境变量Path中。

本示例实现是在Windows平台下,Linux下应该也是类似的操作,下载对应的h364支持库文件,并加入到PATH能够搜索到的地址。

重新运行程序,可以正常显示图像,并保存为视频文件。

用Potplayer之类的播放器打开,可以在属性中看到,编码格式的相关信息:

 视频编码: H264 - Native D3D9 DXVA Decoder(VLD)

2.3 H265支持

想着用同样的方法尝试一下H265编码。

将# fourcc = cv2.VideoWriter_fourcc('H', 'E', 'V', 'C')注释取消,发现如下错误提示:

OpenCV: FFMPEG: tag 0x43564548/'HEVC' is not found (format 'avi / AVI (Audio Video Interleaved)')'

看起来目前预编译版本的OpenCV是不支持H265编码的。如果要用H265编码,需要从源码编译,并在编译过程中添加对应的支持库。

感谢各位的阅读!关于"如何利用OpenCV进行H264视频编码"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

编码 视频 支持 版本 提示 编译 文件 格式 示例 不同 代码 内容 动态 图像 摄像头 更多 注释 环境 程序 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技赋能下的互联网金融 深圳互联网络科技有限公司 互联网科技集团 科技创新互联网企业 亿账通互联网科技 上游互联网科技 山东吉时兔互联网科技有限公司 蓝色互联网科技 互联网企业和科技型企业 呼和浩特新华互联网科技学院 银川新华互联网科技学校联系电话 高科技互联网发展前景如何 银行科技岗属于互联网吗 工业互联网科技成果转化 广州有谷有贝互联网科技有限公司 九思连强互联网电子科技有限公司 江苏互联网智能科技产品出厂价 恒生互联网科技趋势 六子台科技互联网展会 中国主要互联网科技公司 蓝思科技飞鸽互联网 科技互联网创业计划书 银川新华互联网科技学校地址 互联网科技产品 宁夏科技产业互联网案例 互联网为啥属于高科技 互联网科技公司实习生 洛阳昕诺飞互联网科技有限公司 互联网保险科技创业 北京天晋互联网科技有限公司
0