windows11编译openh264源码详细过程
介绍
openh264是一个开源的H.264编解码器项目,由思科系统公司(Cisco Systems)维护并贡献给开源社区。它是基于H.264/AVC(Advanced Video Coding)标准的,该标准广泛应用于视频压缩和传输领域。
openh264项目的目标是提供一个高质量、高性能的H.264编解码器实现,同时保持对标准的兼容性。它采用了优化的算法和实现技术,以提供高效的编码和解码性能。该项目还支持多种平台和操作系统,包括Windows、Linux、macOS、Android和iOS等。
openh264的特点:
帧率、SVC、LTR在openh264上都有实现,这几个特点在x264都没有实现,但考虑主要为RTC打造,编码质量较差,码控能力较差。
Encoder Features
----------------
- Constrained Baseline Profile up to Level 5.2 (Max frame size is 36864 macro-blocks)
- Arbitrary resolution, not constrained to multiples of 16x16
- Rate control with adaptive quantization, or constant quantization
- Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice
- Multiple threads automatically used for multiple slices
- Temporal scalability up to 4 layers in a dyadic hierarchy
- Simulcast AVC up to 4 resolutions from a single input
- Spatial simulcast up to 4 resolutions from a single input
- Long Term Reference (LTR) frames
- Memory Management Control Operation (MMCO)
- Reference picture list modification
- Single reference frame for inter prediction
- Multiple reference frames when using LTR and/or 3-4 temporal layers
- Periodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertion
- Dynamic changes to bit rate, frame rate, and resolution
- Annex B byte stream output
- YUV 4:2:0 planar input
Decoder Features
----------------
- Constrained Baseline Profile up to Level 5.2 (Max frame size is 36864 macro-blocks)
- Arbitrary resolution, not constrained to multiples of 16x16
- Single thread for all slices
- Long Term Reference (LTR) frames
- Memory Management Control Operation (MMCO)
- Reference picture list modification
- Multiple reference frames when specified in Sequence Parameter Set (SPS)
- Annex B byte stream input
- YUV 4:2:0 planar output
网址:
https://github.com/cisco/openh264
编译过程
源码下载:
git命令行下载 git clone git@github.com:cisco/openh264.git
。源码里的README.md
有详细的各个平台的编译介绍。
编译环境搭建:
在README.md里介绍windows平台推荐使用Cygwin编译工具,小编使用了已搭建的MinGW编译工具来完成编译过程。
使用MinGW编译:
双击MinGW安装目录下msys/1.0/msys.bat,在弹出的窗口 cd
到openh264源码位置,直接make
即可生成h264dec.exe
、h264enc.exe
两个编解码可执行文件和对应的库文件。
验证:
输入./h264enc.exe
之后弹出命令参数使用说明,即代表编译成功,可进行下一步使用。
sln工程的生成
openh264提供了生成sln工程的方法,进入codec/build/win32/enc/目录下,利用vs2022直接打开,点击运行,在testbin目录里生成WelsEncoder.exe。
在testbin目录里编辑welsenc.cfg文件,改动对应的InputFile
、OutputFile
到本地位置,根据个人测试需求改动对应的编码参数即可,
备注
- openh264解码编译过程类似编码过程。
- Cygwin编译工具的配置参考网上资料。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!