OpenH264 编解码器介绍

news2024/11/15 13:48:11

思科

思科系统(英语: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. 官方文档介绍
  • 解码:https://github.com/cisco/openh264/wiki/UsageExampleForDecoder
  • 编码:https://github.com/cisco/openh264/wiki/UsageExampleForEncoder
  • wiki:https://github.com/cisco/openh264/wiki

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:同样提供了跨平台支持,但构建过程可能需要更多的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】整型提升与char取值范围

整型提升介绍 C语言中整型算术运算总是至少以缺省(默认)整型类型的精度来进行的。为了获得这个精度,表达式中字符、短整型操作数在使用前被转换为普通整型。而这个过程是悄悄发生的。 整型提升的意义: 表达式的整型运算要在CPU…

小米财报:业绩远超预期,汽车推着手机跑!

随着一季度财报陆续出炉,企业间的分化越来越明显。 新环境下,很多公司都陷入停滞时,去讨论“掉队”已经没有多少意义,现在真正值得我们关注的,是那些在逆风情况下,还能“领先”的企业。毫无疑问&#xff0…

小程序主体变更是通过迁移吗?是需要2个小程序吗?

小程序迁移变更主体有什么作用?好多朋友都想做小程序迁移变更主体,但是又不太清楚具体有啥用,今天我就来详细说说。首先,小程序迁移变更主体最重要的作用就是可以修改主体。比如你的小程序原来是 A 公司的,现在 A 公司…

2024-5-9-从0到1手写配置中心Config之@ConfigurationProperties热更新

在PropertySourcesProcessor中,需要通过http从config-server获取配置。 使用ConfigMeta包装服务信息 在MidnightConfigService接口中添加默认实现类 继承MidnightRepositoryChangeListener接口;获取默认的MidnightRepository;创建MidnightCo…

12306技术内幕

公司内部做的一次技术分享 文章目录 12306的成就12306系统特点12306系统难点解决思路产品角度技术角度余票库存的表如何设计? 抢票软件推荐巨人的肩膀 对于未公开的技术部分,只能结合已公开的信息,去做大胆的猜想。 本文提到的一些解决方案&…

chatgpt线性差值 将直线渐变颜色

color(x)(x-x1)/(x2-x1) 与gpt给出的 这个位置比例可以表示为d/L是概念相同 x-x1是计算当前点距离起点距离,x2-x1是计算长度 例如,如果我们在直线上距离起点A的距离为d,整条直线的长度为L 用数学方式解释 2024/5/25 18:54:30 当我们要在一…

【算法例题】递推与递归

刚讲完递推和递归,趁热打铁,给大家出点例题。 没学过的,先去学一下。 【算法】递推&递归https://blog.csdn.net/yangyanbin_sam/article/details/139182393?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22…

⌈ 传知代码 ⌋ 基于扩散模型的无载体图像隐写术

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

小红书无限加群脚本无需ROOT【使用简单无教程】

小红书无限加群脚本无需ROOT,包含了对应的小红书版本【使用简单无教程】 链接:https://pan.baidu.com/s/1HkLhahmHDFMKvqCC3Q3haA?pwd6hzf 提取码:6hzf

ISCC 2024 部分wp

文章目录 一、Misc1、Number_is_the_key2、FunZip3、擂台—— 重“隐”;4、RSA_KU5、时间刺客6、成语学习7、 精装四合一8、钢铁侠在解密9、有人让我给你带个话10、Magic_Keyboard11、工业互联网模拟仿真数据分析 二、Web1、还没想好名字的塔防游戏2、代码审计3、原…

【C++】<图形库> 三人成棋(面向对象写法)

目录 一、游戏需求 二、程序架构 三、代码实现 四、实现效果 五、已知BUG 一、游戏需求 构建一个五子棋游戏,在自定义棋盘宽度和高度的基础上,实现三人对战功能,并且能判定谁输谁赢。 二、程序架构 (1) 对象分析: 【1】 需…

人工智能-YOLOv10-行人和车辆检测-yolo改进测距测速代码和原理

YOLOv10: 实时端到端目标检测技术的全新突破 YOLOv10代表了实时目标检测领域的重大进展,是YOLO系列模型的最新迭代,专为追求极致效率与精度平衡的应用场景设计。此项目由北京大学机器智能研究组(THU-MIG)的Ao Wang、Hui Chen、Li…

直击CHIMA 2024│美创全栈全新数安能力精彩亮相

5月17日,中国医院信息网络大会(CHIMA 2024)在南京正式拉开帷幕。本次大会以新质生产力理论为指导,以深化应用,融合创新,用信息技术赋能医院高质量发展为主题。 作为医疗数据安全的创新引领者和深耕实践者,美创科技再次…

IDEA通过tomcat运行注意事项

配置run--》edit configurations 以下的A B部分要保持一致 A和B的路径要保持一致

vue/core源码中ref源码的js化

起源: 当看见reactivity文件中的ref.ts文件长达五百多的ts代码后,突发奇想想看下转化成js有多少行。 进行转化: let shouldTrack true; // Define shouldTrack variable let activeEffect null; // Define activeEffect variable// 定义…

MATLAB system identification系统辨识app的使用

系统辨识 前言系统辨识第一步 选取时域数据到app第二步 分割数据第三步 设置传递函数的参数第四步 Estimate第五步 结束 前言 接上节:simulink-仿真以及PID参数整定 系统模型的辨识工作,在控制领域,一般用于开发控制器的先手工作。一般而言…

curl: (60) SSL certificate problem: self-signed certificat

目录: 1、背景2、测试结果 1、背景 今天帮忙客户排查问题,报错请求超时,但是ping客户的ip以及测试端口都是通的,最终不得不从中台服务器上发起请求客户回调接口,报错如下: 怀疑是客户的证书有问题&#xf…

测试网0撸大毛 — AI 公链ALIENX推出HAL Testnet活动(含保姆级教程)

近期,OpenAI推出了新一代的GPT-4o让AI再次获得关注。AI硬件销售商英伟达的股价也突破1000美元,市值攀升到2.6万亿美元。AI继续影响到我们生活的方方面面。 在加密货币行业,市场行情也逐渐走出低谷。以太坊现货ETF被批准,为整个市场…

51单片机 简单计算机实现

书接上回;http://t.csdnimg.cn/T4b0W 键盘位置如上 效果图 因为是四位,就没显示等于号, 而且段数比较少 显示不出来加号 所以 A ; B - ; C *; D / 基本原来都一样. 代码奉上 #include <reg51.h>#include <STRING.H>//利用矩阵键盘按键按下依次在数码管显…