OpenH264 编解码器介绍

思科

思科系统(英语:Cisco Systems, Inc.)是一间跨国际综合技术企业,总部设于加州硅谷;思科开发、制作和售卖网络硬件、软件、通信设备等高科技产品及服务,并透过子公司(例子有OpenDNS、Webex、Jasper)打入其他科技市场,比如物联网、域名安全、能源管理。公司成立于加州。

OpenH264

  1. 来源
  • 2013年10月30日,思科系统的Rowan Trollope宣布思科将以简化BSD许可证发布一个名为OpenH264的H.264视频编解码器的二进制文件和源代码,并为使用思科预编译二进制文件的任何软件项目向MPEG
    LA支付所有使用费(因此思科的OpenH264的“二进制文件”为免费使用);不过,使用思科提供的源代码而非二进制文件的任何软件项目都有法律责任自行向MPEG LA支付所有著作权费用。
  • 思科于2013年12月9日发布了OpenH264的源代码。
  • 2013年10月30日,思科的免费版公布当天,Mozilla的布兰登·艾克的写道,未来版本的Firefox将使用思科的二进制文件,在平台编解码器不可用时为Firefox提供H.264支持。2014年10月,Mozilla发布Firefox 33,这是首个支持OpenH264的正式版本。
  • OpenH264的设计面向实时编码和解码视频的应用程序,例如WebRTC。
  1. 项目官网https://www.openh264.org/
    在这里插入图片描述
  2. git 地址https://github.com/cisco/openh264
    在这里插入图片描述
  3. 官方文档介绍

OpenH264 编码特性介绍

  1. 编码器特性:
  • 支持Constrained Baseline Profile到5.2级别(最大帧大小为36864宏块)
  • 任意分辨率支持,不限于16x16的倍数
  • 具有自适应量化或恒定量化的速率控制
  • 多种切片选项
  • 多线程自动用于多切片
  • 支持高达4层的时序可伸缩性
  • 单一输入的4种空间分辨率的Spatial Simulcast
  • 长期参考帧(LTR)
  • 内存管理控制操作(MMCO)
  • 引用图片列表修改
  • 使用LTR和/或3-4时序层时的多个参考帧
  • 定期和按需插入即时解码刷新(IDR)帧
  • 动态更改比特率、帧率和分辨率
  • Annex B字节流输出
  • YUV 4:2:0平面输入
  1. 解码器特性:
  • 支持Constrained Baseline Profile到5.2级别(最大帧大小为36864宏块)
  • 任意分辨率支持,不限于16x16的倍数
  • 所有切片使用单线程
  • 长期参考帧(LTR)
  • 内存管理控制操作(MMCO)
  • 引用图片列表修改
  • 序列参数集(SPS)中指定的多个参考帧
  • Annex B字节流输入
  • YUV 4:2:0平面输出

应用OpenH264编解码注意事项

  1. 操作系统支持
  • Windows 64位和32位
  • Mac OS X 64位和32位
  • Linux 64位和32位
  • Android 64位和32位 iOS
  • 64位和32位 Windows Phone 32位
  1. 处理器支持
  • 英特尔x86,可选MMX/SSE/AVX
  • ARMv7,可选NEON;
  • AArch64,可选NEON 使用C/C++回退函数的任何架构
  1. 构建库
  • 需要安装NASM以进行汇编代码,建议版本2.07或以上
  • 对于Windows Phone的ARM汇编,需要gas-preprocessor
  • Android构建需要安装Android SDK和NDK,并导出ANDROID_SDK/tools到PATH
  • iOS构建可使用Xcode项目文件或make命令行构建系统
  • Windows构建使用MinGW,或通过设置路径使用Visual Studio编译器 Windows
  • Phone构建遵循Windows构建的指令,但使用OS=msvc-wp,需要gas-preprocessor
  1. 通用构建指令
  • 在主项目目录中使用make命令进行构建,可以指定ARCH和其他参数
  1. 已知问题
  • 分辨率超过3840x2160时编码器出错
  • 压缩帧大小超过未压缩大小的一半时编码器出错
  • 压缩帧大小超过1MB时解码器出错
  • 编码器RC需要启用帧跳过才能达到目标比特率

OpenH264 对比 x264

  1. 开发背景和许可
  • OpenH264:由Cisco开发,专为实时应用程序如WebRTC设计,并在BSD许可下开源。这意味着它可以免费使用,且不会涉及MPEG-LA的H.264专利授权费用。
  • x264:是一个成熟的开源编解码器,广泛用于视频编码,遵循GNU GPL许可。x264不是一个免费的解决方案,因为它可能需要用户支付MPEG-LA的专利费用。
  1. 性能和效率
  • OpenH264:优化了实时编码,特别适合需要快速编码和较低延迟的应用。
  • x264:提供了多种编码模式,包括非常高效的多通道编码,适合离线编码任务,用户可以等待较长的编码时间以获取更高质量的输出。
  1. 特性集
  • OpenH264:
    • 支持H.264的Constrained Baseline Profile至5.2级别。
    • 提供了实时编码所需的关键功能,如多线程、长期参考帧等。
    • 专注于提供足够的功能以满足实时通信的需求。
  • x264:
    • 支持完整的H.264/AVC标准,包括所有配置文件和级别。
    • 提供高级特性,如心理视觉优化、去块滤波器、多参考帧编码等。
    • 支持两遍编码(双通道编码)以优化压缩效率。
  1. 应用场景
  • OpenH264:更适合实时视频通信、直播等需要快速编码的场景。
  • x264:适用于视频编辑、电影制作、DVD/蓝光视频编码等需要高压缩率和视频质量的应用。
  1. 社区和支持
  • OpenH264:由Cisco提供支持,拥有活跃的开源社区,适合需要特定实时编解码功能的开发者。
  • x264:拥有庞大的用户和开发者社区,提供广泛的文档和论坛支持。
  1. 兼容性
  • OpenH264:由于是开源的,易于集成到各种平台和应用中,特别是那些需要避免专利授权费用的平台。
  • x264:广泛兼容,支持多种操作系统和平台,但由于许可问题,某些集成可能会有限制。
  1. 构建和使用
  • OpenH264:提供了跨平台的构建脚本,易于在不同操作系统上构建和使用。
  • x264:同样提供了跨平台支持,但构建过程可能需要更多的配置。
  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenH264 是思科公司发布的一个开源的 H.264 编码和解码器编码器特性Constrained Baseline Profile up to Level 5.2 (4096x2304)Arbitrary resolution, not constrained to multiples of 16x16Rate control with adaptive quantization, or constant quantizationSlice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per sliceMultiple threads automatically used for multiple slicesTemporal scalability up to 4 layers in a dyadic hierarchySpatial simulcast up to 4 resolutions from a single inputLong Term Reference (LTR) framesMemory Management Control Operation (MMCO)Reference picture list modificationSingle reference frame for inter predictionMultiple reference frames when using LTR and/or 3-4 temporal layersPeriodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertionDynamic changes to bit rate, frame rate, and resolutionAnnex B byte stream outputYUV 4:2:0 planar input解码器特性Constrained Baseline Profile up to Level 5.2 (4096x2304)Arbitrary resolution, not constrained to multiples of 16x16Single thread for all slicesLong Term Reference (LTR) framesMemory Management Control Operation (MMCO)Reference picture list modificationMultiple reference frames when specified in Sequence Parameter Set (SPS)Annex B byte stream inputYUV 4:2:0 planar output支持的操作系统Windows 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)Mac OS X 64-bit (initial release does not include this target, will follow soon)Linux 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)Android 32-bit (initial release does not include this target, will follow soon)iOS 64-bit and 32-bit (not supported yet, may be added in the future)支持的处理器Intel x86 optionally with MMX/SSE (no AVX yet, help is welcome)ARMv7 optionally with NEON (initial release does not include this target, will follow later)Any architecture using C/C fallback functions 标签:OpenH264

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Codec Conductor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值