日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html播放flv直播源,http-flv 直播

發(fā)布時間:2023/12/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html播放flv直播源,http-flv 直播 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這里我們主要研究httpflv和hls。看了主流幾個web直播平臺,發(fā)現(xiàn)幾乎都是以httpflv為主來直播的,那么這么火httpflv到底是怎么達(dá)到直播的?

首先我們都知道在媒體格式里,幾乎都以h264視頻編碼。如今httpflv直播的flv數(shù)據(jù)也都是h264&aac為主的。flv封裝單元是以tag來表示的,一個tag可以是音頻tag或者視頻tag,或者腳本tag及其其他類型。

值得注意的是flv里面字節(jié)序是網(wǎng)絡(luò)字節(jié)序,

flv的格式:

1 flvheader+[腳本tag(metadata)]+[第一個視頻tag(h264_spspps)]+[第一個音頻tag(aac_header)]+[第二個視頻tag(h264第一個關(guān)鍵幀)]+ 后面就是音頻和視頻tag交互存在

tag的格式:

1 TYPE[1byte] + body size[3byte] + timestamp [4byte] +streamID [3byte] +[body data]+[previousTagSize 4byte]

這里的timestamp是這樣存在的[ time tamp 3b,time tamp ex 1b]

h264視頻tagbody:

這里存儲的h264是沒有nal分割符的,在t的body里面是這樣存儲的,

1 [isKeyFrame(1byte)]+0x01+[compositionTime 3byte]+[h264 size 4byte]

compositionTime是h264編碼結(jié)果dts和pts之間的偏移。

aac視頻tag的body:

1 0xaf+0x01+aac raw

以上就是flv格式的詳細(xì)說明,可以看出格式簡單,封裝的前后數(shù)據(jù)關(guān)聯(lián)很小,當(dāng)我們得到音頻頭和視頻頭,就可以從后面任意的一個關(guān)鍵幀開始播放。

當(dāng)然想要httpflv正常播放,不能缺少matedata,就是第一個腳本tag里面,這里面指定了分辨率,音視頻編碼格式等。

httpflv直播實際上單純就是往客戶端發(fā)送flvtag,當(dāng)然是先發(fā)送flv前面那幾個關(guān)鍵的tag,然后第一幀是關(guān)鍵幀。

假如客戶端是obs推流軟件,以rtmp方式向服務(wù)器推流,在開始握手及其創(chuàng)建stream完成以及發(fā)送Metadata完成,及其一系列數(shù)據(jù)發(fā)送完畢,服務(wù)器就向obs發(fā)送publish result指令,此后,obs就開始向服務(wù)器推送flv tag數(shù)據(jù),開始直播,而服務(wù)器也得到了flv數(shù)據(jù)。

當(dāng)某個客戶端想要來獲取直播數(shù)據(jù),比如httpflv的方式來觀看直播,服務(wù)器會怎么做呢?

服務(wù)器會先發(fā)送前面幾個flvtag,header+metadata+spspps+aacheader,當(dāng)這幾個tag發(fā)送完畢,服務(wù)器會從直播流tag中,找到最新的視頻關(guān)鍵幀tag,從這個關(guān)鍵幀tag開發(fā)數(shù)據(jù),為什么呢?因為視頻流是IBP幀相互存在的,I是完整數(shù)據(jù),BP解碼都需要I幀和前面的幀,所以,正常視頻數(shù)據(jù),必須是從I幀開始發(fā)送的。這里就涉及到gop間距了,rtmp低延時秒開就是這個原理。當(dāng)然發(fā)送的時候,每個連接的tag開始時間戳戳要從0開始遞增的。

至此,httpflv客戶端就可以接受到flv流數(shù)據(jù),解碼觀看直播了。

總結(jié)

以上是生活随笔為你收集整理的html播放flv直播源,http-flv 直播的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。