RTMP播放器和推送端支持enhanced RTMP H265(enhanced RTMP HEVC)

  Enhancing RTMP, FLV 2023年7月31号正式发布,主要支持了HEVC(H.265)、VP9、AV1视频编码,很多开源项目已支持,我的播放器和推送端也改改,支持下enhanced rtmp H.265(HEVC).

  播放端和推送端connect RTMP server时,要在connect Command对象中加入一个新的name-value对:

property name:fourCcList
property value:Strict Array of Strings

数组项可能是:{"av01", "vp09", "hvc1"}
其中"hvc1"就是H.265(HEVC)

  播放端需要改下FLV VideoTagHeader解析, 也就是根据VideoTagHeader的第一个字节的第0位来判断是否是扩展头,如果这一位是1那就是扩展头,解析扩展头:

/*
* Copyright (C) 1130758427@qq.com. All rights reserved. 
* 问题沟通微信:ldxevt
*/bool is_ex_header;
if (p[0]&0x80)is_ex_header = true;
elseis_ex_header = false;if (is_ex_header) {auto video_fourcc = (p[1] << 24)|(p[2] << 16)|(p[3] << 8)|p[4];if (HEVC == video_fourcc) {// hevc处理}else if (VP9 == video_fourcc) {// ....}else if (AV1 == video_fourcc ) {// .....}
}

  推送端也要处理下,生成HEVC的FLV VideoTagHeader:

/*
* Copyright (C) 1130758427@qq.com. All rights reserved. 
* 问题沟通微信:ldxevt
*/*p = 0x80;
if (key)*p |= (1<<4);
else*p |= (2 << 4);if (pts != dts)*p |= 1;
else*p |= 3;p++;*p++ = 'h';
*p++ = 'v';
*p++ = 'c';
*p++ = '1';//....

  生成HEVCDecoderConfigurationRecord的FLV VideoTagHeader:

/*
* Copyright (C) 1130758427@qq.com. All rights reserved. 
* 问题沟通微信:ldxevt
*/*p++ = 0x80|(1 << 4);
*p++ = 'h';
*p++ = 'v';
*p++ = 'c';
*p++ = '1;//....

  另外就是H.265的编解码, HEVC推荐硬编硬解,安卓和IOS设备一般都支持HEVC硬编解码,调用也很方便,Windows要看具体设备是否支持了。

  支持后测试推送和播放端, 推送端配置:

  播放效果:

 测下来enhanced rtmp h265 延时也不高,Windows、Android等平台的推送和播放端都一起支持了。如需测试请联系qq: 1130758427, 微信:ldxevt 。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法之美学习笔记:56 | 算法实战(五):如何用学过的数据结构和算法实现一个短网址系统?

目录 前言短网址服务整体介绍如何通过哈希算法生成短网址&#xff1f;如何通过 ID 生成器生成短网址&#xff1f;总结引申 前言 本节课程思维导图&#xff1a; 短网址服务你用过吗&#xff1f;如果我们在微博里发布一条带网址的信息&#xff0c;微博会把里面的网址转化成一个更…

TensorBoard的使用,add_image()的使用。

在TensorBoard中&#xff0c;add_image()函数用于将图像数据添加到可视化中。它可以用于显示模型输入、输出、中间特征图等图像数据&#xff0c;以帮助开发者理解模型的运行情况。 add_image()的用法&#xff1a; 使用ctrl点击add_image() 注意&#xff1a;图片类型要求为 t…

怎么挑选立体式学习灯?五款大路灯分享,选对台灯很重要!

相较于传统台灯&#xff0c;大路灯能够提供更加宽广舒适的照明&#xff0c;更有效地解决光线不足以及光线刺眼带来的问题&#xff0c;以至于成为目前照明电器的新宠。但我们在选购产品时&#xff0c;仍不能掉以轻心&#xff0c;毕竟市面上劣质产品众多&#xff0c;特别是某些网…

2024pytest自动化测试框架学习(三)

在自动化测试中我们经常会针对某些测试方法编写前置测试数据&#xff0c;当测试方法执行完毕后再清理这些测试数据。之前我们接触的unittest框架中&#xff0c;使用setUp、tearDown方法来解决前置数据、后置数据销毁的问题。pytest为我们提供了更加强大灵活的fixtrue来完成该实…

连接未来:光路科技FR-TSN系列交换机驱动5G工业互联网进化

从最早的无线电话&#xff0c;到现在的5G&#xff0c;移动通信已经经历了巨大的变化。这些变化不仅仅是速度的提升&#xff0c;更是对我们生活方式的彻底改变。从最开始的语音通话&#xff0c;到现在的视频、游戏、社交媒体&#xff0c;移动通信让一切变得触手可及。 5G不仅仅…

【算法设计与分析】和相等的子数组

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意&#xff0c;这两个…

InfiniBand 200Gbps QSFP56 高速线缆/光缆和光模块解决方案

随着数据中心和人工智能迅速发展&#xff0c;对高速、低延迟和低功耗的数据传输需求变得至关重要。飞速&#xff08;FS&#xff09;提供针对各种高性能计算场景量身定制的各种InfiniBand线缆和光模块产品。本文旨在概述飞速&#xff08;FS&#xff09;200G InfiniBand HDR 光缆…

开源项目oshi-core介绍

oshi-core 是一个用 Java 编写的开源库&#xff0c;它允许开发人员轻松地获取有关操作系统的详细信息&#xff0c;包括硬件和系统资源。它是一个跨平台的库&#xff0c;可以在 Windows、Linux 和 macOS 上运行。oshi-core 提供了广泛的 API&#xff0c;用于检索有关 CPU、内存、…

【Unity】在Unity中导出WebGL并读取Excel数据的实现方法

在游戏开发中&#xff0c;数据的处理和导出是至关重要的环节之一。Unity作为一款强大的游戏开发引擎&#xff0c;提供了丰富的工具和功能来处理和导出数据&#xff0c;包括将游戏导出为WebGL应用&#xff0c;并读取外部数据文件&#xff0c;比如Excel表格。本文将介绍如何在Uni…

rocketmq+rocket-dashboard win10安装部署+注册为Windows服务

1.1 首先去官网下载zip包 选择自己需要的版本 下载 | RocketMQ 1.2 、下载后&#xff0c;解压到指定目录 1.3、配置RocketMQ环境变量 注意&#xff0c;看对应的版本需要jdk版本 1.4、启动mqnameserver 进入bin目录下&#xff0c;双击启动mqnamesrv.cmd 启动后&#xff0c;…

【Go语言】Go语言中的流程控制

Go语言中的流程控制 流程控制主要用于设定计算执行的顺序&#xff0c;简历程序的逻辑结果&#xff0c;Go语言的流程控制语句与其他语言类似&#xff0c;支持如下几种流程控制语句&#xff1a; 条件语句&#xff1a;用于条件判断&#xff0c;对应的关键字有if、else和else if&a…

易毅出席成套低温烘干装备在发酵行业的节能创新应用

演讲嘉宾&#xff1a;易毅 总经理 广东芬蓝环境科技有限公司 演讲题目&#xff1a;成套低温烘干装备在发酵行业领域的节能创新应用 会议简介 “十四五”规划中提出&#xff0c;提高工业、能源领城智能化与信息化融合&#xff0c;明确“低碳经济”新的战略目标&#xff0c;热…