欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

通過RTMPplay分析FLV格式詳解-創(chuàng)新互聯(lián)

最近做了一個rtmp中轉(zhuǎn)服務程序,通過實踐,熟悉rtmp play和push中各類格式,這里總結(jié)一下。

創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動互聯(lián)產(chǎn)品、成都營銷網(wǎng)站建設(shè)服務為核心業(yè)務。十載網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標準網(wǎng)站,不但價格便宜而且實用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。

程序github地址: https://github.com/runner365/rtmp_relay

rtmp play接收報文分析

第一幀收到的報文:

1) 0x46 4c 56:可參考文后:參考一

字符FLV頭

2) 0x01 05

Version TypeFlagsReserved TypeFlagsAudio TypeFlagsReserved TypeFlagsVideo

這個解析的時候,一般不用管

3)0x00 00 00 09

FLV header offset: 也就是從開頭9字節(jié)后,才是FLV真正的報文頭。

4)0x00 00 00 00

這個是第1幀的PreviousTagSize0(前幀長度),因為是第一幀,所以肯定是0;

5)0x08 可參考文后:參考二,參考三

幀開頭第一字節(jié):0x08表示音頻,0x09表示視頻

6)0x00 00 04

幀payload長度:因為音頻第一幀是ASC,所以只有4字節(jié)。

7) 0x 00 00 00 00

timestamp,時間戳

8) 0x 00 00 00

streamid,流ID

9) 0x AF 00 13 90

音頻payload: 0xaf00開頭的后面是asc flag, 0xaf01開頭的后面是真正的音頻數(shù)據(jù)

0x13 90,也就是0b0001 0011 1001 0000,

ASC flag格式:xxxx xyyy yzzz z000

x字符: aac type,類型2表示AAC-LC,5是SBR, 29是ps,5和29比較特殊ascflag的長度會變成4;

y字符:  sample rate, 采樣率, 7表示22050采樣率

z字符:  通道數(shù),2是雙通道

10) 0x 00 00 00 0F

這個還是PreviousTagSize1,上一幀長度15bytes

11) 0x09 視頻類型,新的一幀

12)0x00 00 22

視頻幀payload長度

13) 0x00 00 0a 00

時間戳:這個地方有個大坑,順序是:a[3] a[0] a[1] a[2],最后一位是高位。

14) 0x00 00 00

streamid, 流id。

15) 0x 17 00

視頻幀開頭2字節(jié):

0x17 00: 表示內(nèi)容是SPS和PPS

0x17 01: 表示內(nèi)容是I-FRAME

0x27:    表示內(nèi)容是P-FRAME

16) 

0000002bh: 17 00 00 00 00 01 42 C0 1F FF E1 00 0E 67 42 C0 ; ......B??.gB?
0000003bh: 1F 8C 8D 40 F0 28 90 0F 08 84 6A 01 00 04 68 CE ; .實@??.刯...h?
0000004bh: 3C 80 ; <€

第12, 13字節(jié): 0x00 0E是spslen,也就是14字節(jié)長度

跳過14字節(jié)后,0x01是pps開始的標識,跳過它。

0x00 04是ppslen,也就是4個字節(jié),最后0x68 ce 3c 80就是pps。

參考:

1, The FLV header

TypeComment
SignatureUI8Signature byte always 'F' (0x46)
SignatureUI8Signature byte always 'L' (0x4C)
SignatureUI8Signature byte always 'V' (0x56)
VersionUI8File version (for example, 0x01 for FLV version 1)
TypeFlagsReservedUB [5]Shall be 0
TypeFlagsAudioUB [1]1 = Audio tags are present
TypeFlagsReservedUB [1]Shall be 0
TypeFlagsVideoUB [1]1 = Video tags are present
DataOffsetUI32The length of this header in bytes

Signature: FLV 文件的前3個字節(jié)為固定的‘F’‘L’‘V’,用來標識這個文件是flv格式的.在做格式探測的時候,

如果發(fā)現(xiàn)前3個字節(jié)為“FLV”,就認為它是flv文件.

Version: 第4個字節(jié)表示flv版本號.

Flags: 第5個字節(jié)中的第0位和第2位,分別表示 video 與 audio 存在的情況.(1表示存在,0表示不存在)

DataOffset : 最后4個字節(jié)表示FLV header 長度.

2,F(xiàn)LV body整體

FieldTypeComment
PreviousTagSize0UI32Always 0
Tag1FLVTAGFirst tag
PreviousTagSize1UI32

Size of previous tag, including its header, in bytes. For FLV version1,

this value is 11 plus the DataSize of the previous tag.

Tag2FLVTAGSecond tag
.........
PreviousTagSizeN-1UI32Size of second-to-last tag, including its header, in bytes.
TagNFLVTAGLast tag
PreviousTagSizeNUI32Size of last tag, including its header, in bytes

FLV header之后,就是 FLV File Body.

FLV File Body是由一連串的back-pointers + tags構(gòu)成.back-pointers就是4個字節(jié)數(shù)據(jù),表示前一個tag的size.

3,F(xiàn)LV body細節(jié)

FieldTypeComment
ReservedUB [2]Reserved for FMS, should be 0
FilterUB [1]Indicates if packets are filtered.
0 = No pre-processing required.
1 = Pre-processing (such as decryption) of the packet is
required before it can be rendered.
Shall be 0 in unencrypted files, and 1 for encrypted tags.
See Annex F. FLV Encryption for the use of filters.
TagTypeUB [5]

Type of contents in this tag. The following types are
defined:
8 = audio
9 = video
18 = script data

DataSizeUI24Length of the message. Number of bytes after StreamID to
end of tag (Equal to length of the tag – 11)
TimestampUI24Time in milliseconds at which the data in this tag applies.
This value is relative to the first tag in the FLV file, which
always has a timestamp of 0.
TimestampExtendedUI8Extension of the Timestamp field to form a SI32 value. This
field represents the upper 8 bits, while the previous
Timestamp field represents the lower 24 bits of the time in
milliseconds.
StreamIDUI24Always 0.
AudioTagHeaderIF TagType == 8
AudioTagHeader
VideoTagHeaderIF TagType == 9
VideoTagHeader
EncryptionHeaderIF Filter == 1
EncryptionTagHeader
FilterParamsIF Filter == 1
FilterParams
DataIF TagType == 8
AUDIODATA
IF TagType == 9
VIDEODATA
IF TagType == 18
SCRIPTDATA
Data specific for each media t

網(wǎng)站名稱:通過RTMPplay分析FLV格式詳解-創(chuàng)新互聯(lián)
標題鏈接:http://aaarwkj.com/article20/gcsjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機關(guān)鍵詞優(yōu)化、移動網(wǎng)站建設(shè)、面包屑導航、品牌網(wǎng)站制作網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)
欧美丰满熟妇视频在线| 在线观看免费视频成人播放| 香蕉伊蕉伊中文在线视频| 欧美亚洲另类色自拍偷拍| 国自产偷精品不卡在线观看| 国产实拍之强伦奸在线观看| 青春草草视频在线观看| 亚洲精品久久麻豆蜜桃| 91出品国产福利在线| 一级亚洲国产日韩欧美| 激情婷婷亚洲五月综合网| 亚洲综合一区二区在线视频| 欧美综合亚洲韩精品区| 精品人妻日韩中文字幕| 国产高清亚洲精品视频| 一本久道久久综合狠狠老| 久久免费看少妇高潮av| 国产av日韩精品一区二区三区| 久久精品夜夜夜夜夜久久| 国内一级片内射免费视频观看| 神马免费午夜福利剧场| 日本高清不卡在线播放| 人妻勾引中文字幕在线视频| 国产精品蜜臀av在线一区| 国产综合一区在线观看97| 18禁的视频在线观看| 91精品麻豆国产自产在线| 毛片91成人在线播放| 在线观看国产小视频不卡| 国产91高清视频在线观看| 四虎在线观看免费资源| 欧美香蕉在线观看视频| 91精品亚洲内射孕妇| 99热国产这里只有精品| 美女网站色在线免费观看午夜精品| 日韩精品视频性色首页| 国产三级三级精品久久| 日本人妻精品一区二区| 欧美老熟妇子乱视频在线| 国产原创剧情免费观看av| 麻豆午夜福利在线播放|