没有合适的资源?快使用搜索试试~ 我知道了~
首页RTMP_H265推流直播技术研讨
资源详情
资源评论
资源推荐

目录
目录..................................................................................................................................................... 1
openHEVC 在 Windows 下构建 vs32/64 位工程(vs2013)...............................................................2
从网络 rtp 封包中分离 hevc/h265.....................................................................................................2
从网络抓包中提取 RTP 包,RTP 解包为 HEVC/H265 裸流........................................................ 2
flv 的格式............................................................................................................................................3
RTMP 直播 H265 推流适配总结................................................................................................... 6
srs 流媒体服务器(simple rtmp server)如何支持 h265..................................................................... 9
基于 nginx 做了个 RTMP H.265 的扩展........................................................................................ 11
如何实现 rtsp h265 转 rtmp (rtsp hevc 转 rtmp)并转发到 CDN 或自建服务器...................... 11
金山云直播 SDK 提供了业内一流的 H.265 编解码.................................................................... 14
CDN-Union__flv265.........................................................................................................................15
ffmpeg+nginx+rtmp+web 实现视频直播网站................................................................................15
windows 下 ffmpeg 命令+nginx + rtmp 实现推流,拉流。......................................................... 15
FFmpeg+Nginx 搭建 RTMP 直播推流服务................................................................................... 15
FFmpeg+Nginx 搭建 HLS 直播服务.............................................................................................. 15
FFmpeg RTMP 推 HEVC/H265 流..................................................................................................16
rtmp 数据封装三-视频(H264&H265)............................................................................................. 22
rtmp 数据封装四-音频(AAC&G711)..............................................................................................26
web 无插件解码播放 H264/H265(js 解码 HTML5 播放)............................................................. 27
h264 视频流,aac 音频流(g711a 转码)推送至 rtmp 服务器...................................................30

openHEVC 在 Windows 下构建 vs32/64 位
工程(vs2013)
https://blog.csdn.net/listener51/article/details/53363516
从网络 rtp 封包中分离 hevc/h265
https://blog.csdn.net/andyshengjl/article/details/79330610
从网络抓包中提取 RTP 包,RTP 解包为
HEVC/H265 裸流
https://download.csdn.net/download/andyshengjl/10252397
解析 rtpdump 文件获取 rtp 包。 2、将 rtp 包解为 hevc/h265 裸流并存为 265 文件。
资源是一个完整的 vs2012 工程。
对应的 CSDN 博文 http://blog.csdn.net/andyshengjl/article/details/79330610

flv 的格式
https://blog.csdn.net/Jacob_job/article/details/79432774
SRS 代码分析【FLV 文件解析】
https://blog.csdn.net/weixin_39799839/article/details/78638721?utm_source=blogxgwz0
流媒体-FLV 格式详解及数据分析
https://blog.csdn.net/mm792261167/article/details/69396493?utm_source=blogxgwz2
flv 封装单元是以 tag 来表示的,一个 tag 可以是音频 tag 或者视频 tag,或者脚本 tag 及其其
他类型。
一、flv 的格式
flvheader
脚本 tag(metadata)
第一个视频 tag(h264_spspps)
第一个音频 tag(aac_header)
第二个视频 tag(h264 第一个关键帧)
后面就是音频和视频 tag 交互存在
…
二、tag 的格式:
[TYPE] (1byte)
[body size] (3byte)
[timestamp] (4byte)
[stream ID] (3byte)
[body data]
[previousTagSize] (4byte)
三、flv header
文件头由 9 bytes 组成
[1-3] 前 3 个 bytes 是文件类型,总是“FLV”,也就是(0x46 0x4C 0x56)。
[4] 第 4 btye 是版本号,目前一般是 0x01。
[5] 第 5 byte 是流的信息:倒数第一 bit 是 1 表示有视频(0x01),倒数第三 bit 是 1 表示
有音频(0x4),有视频又有音频就是 0x01 | 0x04(0x05),其他都应该是 0。
[6-9] 最后 4 bytes 表示 FLV 头的长度,3+1+1+4 = 9。
四、flv body
由若干个 tag (tag header+tag data)组成
[4 bytes 记录着上一个 tag 的长度]+[11 bytes 的 tag header]+[tag data]

4.1 tag header
[1] 第 1 个 byte 为记录着 tag 的类型,音频(0x8),视频(0x9),脚本(0x12);
[2-4] 第 2 到 4 bytes 是数据区的长度,也就是 tag data 的长度;
[5-7] 再后面 3 个 bytes 是时间戳,单位是毫秒,类型为 0x12 则时间戳为 0;
[8] 时间戳后面一个 byte 是扩展时间戳,时间戳不够长的时候用;
[9-11] 最后 3 bytes 是 streamID,但是总为 0
第一个 tag 的前面没有 tag,所以第一个 tag 前面的 previousTagSize 就是 00 00 00 00
4.2 tag data
4.2.1 脚本 tag data
该类型 Tag 又通常被称为 Metadata(元数据) Tag,会放一些关于 FLV 视频和音频的参数信
息,如 duration、width、height 等。通常该类型 Tag 会跟在 File Header 后面作为第一个 Tag
出现,而且只有一个。
包含两个 AMF 包。AMF(Action Message Format)是 Adobe 设计的一种通用数据封装格
式,在 Adobe 的很多产品中应用,简单来说,AMF 将不同类型的数据用统一的格式来描
述。
第一个 AMF 包封装字符串类型数据,用来装入一个“onMetaData”标志
第二个 AMF 包封装一个数组类型,这个数组中包含了音视频信息项的名称和值
第一个 AMF 包:
[1] 第 1 个字节表示 AMF 包类型,一般总是 0x02,表示字符串,其他值表示意义请查阅文
档。
[2-3] 第 2-3 个字节为 UI16 类型值,表示字符串的长度,一般总是 0x000A(“onMetaData”
长度)。
[4-…] 后面字节为字符串数据,一般总为“onMetaData”。
第二个 AMF 包:
[1] 第 1 个字节表示 AMF 包类型,一般总是 0x08,表示数组。
[2-5] 第 2-5 个字节为 UI32 类型值,表示数组元素的个数。
[6-…] 后面即为各数组元素的封装,
数组元素为元素名称和值组成的对。表示方法如下:
[1-2] 第 1-2 个字节表示元素名称的长度,假设为 L。
[3- L+2] 后面跟着为长度为 L 的字符串。
[L+3] 第 L+3 个字节表示元素值的类型。
[L+4-…] 后面跟着为对应值,占用字节数取决于值的类型。
4.2.2 音频 tag data

tag data 如果是音频数据,第一个 byte 记录 audio 信息:
前 4 bits 表示音频格式(全部格式请看官方文档):
0 – 未压缩
1 – ADPCM
2 – MP3
4 – Nellymoser 16-kHz mono
5 – Nellymoser 8-kHz mono
10 – AAC
下面两个 bits 表示 samplerate:
0 – 5.5KHz
1 – 11kHz
2 – 22kHz
3 – 44kHz
下面 1 bit 表示采样长度:
0 – snd8Bit
1 – snd16Bit
下面 1 bit 表示类型:
0 – sndMomo
1 – sndStereo
之后是数据。
4.2.3 视频 tag data
如果是视频数据,第一个 byte 记录 video 信息:
前 4 bits 表示类型:
1 – keyframe
2 – inner frame
3 – disposable inner frame (h.263 only)
4 – generated keyframe
后 4 bits 表示解码器 ID:
2 – seronson h.263
3 – screen video
4 – On2 VP6
5 – On2 VP6 with alpha channel
6 – Screen video version 2
7 – AVC (h.264)
之后是数据。
五、实例代码
剩余29页未读,继续阅读



















cmengwei
- 粉丝: 55
- 资源: 19
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论1