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 [email protected]:cisco/openh264.git。源码里的README.md有详细的各个平台的编译介绍。
windows11编译openh264源码详细过程_第1张图片
编译环境搭建: 在README.md里介绍windows平台推荐使用Cygwin编译工具,小编使用了已搭建的MinGW编译工具来完成编译过程。
windows11编译openh264源码详细过程_第2张图片
使用MinGW编译: 双击MinGW安装目录下msys/1.0/msys.bat,在弹出的窗口 cd 到openh264源码位置,直接make即可生成h264dec.exeh264enc.exe两个编解码可执行文件和对应的库文件。
windows11编译openh264源码详细过程_第3张图片
验证: 输入./h264enc.exe之后弹出命令参数使用说明,即代表编译成功,可进行下一步使用。
windows11编译openh264源码详细过程_第4张图片

sln工程的生成

openh264提供了生成sln工程的方法,进入codec/build/win32/enc/目录下,利用vs2022直接打开,点击运行,在testbin目录里生成WelsEncoder.exe。
windows11编译openh264源码详细过程_第5张图片
在testbin目录里编辑welsenc.cfg文件,改动对应的InputFileOutputFile到本地位置,根据个人测试需求改动对应的编码参数即可,
windows11编译openh264源码详细过程_第6张图片

备注

  1. openh264解码编译过程类似编码过程。
  2. Cygwin编译工具的配置参考网上资料。

你可能感兴趣的:(#,openh264,视频编解码,openh264,webRTC,H264,实时音视频,RTC,windows11)