以flv.js框架爲基礎,替換flv格式視頻(待驗證)

原文鏈接:https://blog.csdn.net/qbv321/article/details/81196732

版權聲明:本文爲博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qbv321/article/details/81196732
                                     flv.js總結
這兩個月來,開展這個flv.js項目學到的新東西還挺多的,從理解flv.js框架,到理解flv視頻格式,到理解公司自己的視頻格式,當每一步都理解後,整個過程是比較順利的,下面是我對這個項目的研究流程

(1)流程
熟悉flv.js框架
熟悉flv視頻格式
參考資料:http://www.360doc.com/content/16/1013/17/474846_598171645.shtml

Flv視頻格式簡單總結是

熟悉公司的視頻格式

這是一個tag,相比於flv視頻格式,我們自己的視頻格式少了header 以及 PreviousTagSize

所以我們自己的視頻格式是多個tag連接的

修改flv.js的flv格式,替換我們自己的視頻格式(這個是重點)
      1、修改視頻流文件頭

2、修改parseChunks
       ParseChunks的工作主要是解析tag的信息包括tag類型,tag長度,timestamp, datasize,解析完之後就根據tag的類型去解析視頻或者音頻

3、解析關鍵幀
       解析關鍵幀主要是解析sps+pps,對於解析sps和pps,之前flv.js的框架已經有了,所以只需要正確傳入我們的sps和pps就可以了,但是這個中間有個問題,就是meta.avcc,meta.avcc 這個東西不是直接放sps/pps ,它有一套自己的格式,iso的mepg4規範,avcc的格式,但是我當時直接放入sps/pps,所以debug了很久都不行,最後經過Aksen的debug,把問題解決了。最後把I幀視頻放入到視頻解析部分

4、解析視頻
解析視頻主要是將rawdata 放入 track,但是有個問題就是 track裏面的data前四個字節是rawdata的size ,而且rawdata的size需要減4

5、解析音頻
解析音頻主要是解析rawdata前面7個字節,獲取音頻的一些SampleRate、channel,

因爲我們自己的音頻格式只有一種ACC,所以將aac rawdata 放入track

(2)技術難點

理解和熟悉flv.js框架,因爲之前沒接觸過Javascript以及音頻視頻格式,很多東西都要從零開始
摸透flv視頻格式和公司自己的視頻格式,找出他們的共同點和異同點,這樣就可以把公司自己的視頻格式替換flv視頻格式
最後是debug階段,很多比較細的知識還是不懂,所以調試了很久,最後Aksen專業的解決了

(3)項目總結
從零開始接觸一個項目,最後還是比較順利的解決了,從中還是學到了很多新的專業知識,以及對於自己解決項目問題的能力有了提高。
————————————————
版權聲明:本文爲CSDN博主「Better_tang」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qbv321/article/details/81196732

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章