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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MP4格式及在MP4文件中提取H264的SPS、PPS及码流

發(fā)布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MP4格式及在MP4文件中提取H264的SPS、PPS及码流 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、MP4格式基本概念

MP4格式對應(yīng)標準MPEG-4標準(ISO/IEC14496)

?


二、MP4封裝格式核心概念

1? MP4封裝格式對應(yīng)標準為 ISO/IEC 14496-12(信息技術(shù) 視聽對象編碼的第12部分: ISO 基本媒體文件格式/Information technology Coding of audio-visual objects Part 12: ISO base media file format)

 附-- 標準免費下載: Freely Available Standards??? http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html

?

2? MP4封裝格式是基于QuickTime容器格式定義,媒體描述與媒體數(shù)據(jù)分開,目前被廣泛應(yīng)用于封裝h.264視頻和ACC音頻,是高清視頻/HDV的代表。


?

3? MP4文件中所有數(shù)據(jù)都封裝在box中(對應(yīng)QuickTime中的atom),即MP4文件是由若干個box組成,每個box有長度和類型,每個box中還可以包含另外的子box(稱container box)。

 一個MP4文件首先會有且只有一個“ftyp”類型的box,作為MP4格式的標志并包含關(guān)于文件的一些信息;之后會有且只有一個“moov”類型的box(Movie Box),它是一種container box,子box包含了媒體的metadata信息;MP4文件的媒體數(shù)據(jù)包含在“mdat”類型的box(Midia Data Box)中,該類型的box也是container box,可以有多個,也可以沒有(當媒體數(shù)據(jù)全部引用其他文件時),媒體數(shù)據(jù)的結(jié)構(gòu)由metadata進行描述。


?

4? MP4中box存儲方式為大端模式。一般,標準的box開頭會有四個字節(jié)的box size。


?

5?幾個名詞?

track

表示一些sample的集合,對于媒體數(shù)據(jù)來說,track表示一個視頻或音頻序列。

hint track

特殊的track,并不包含媒體數(shù)據(jù),包含的是一些將其他數(shù)據(jù)track打包成流媒體的指示信息。

sample

對于非hint ? track來說,video sample即為一幀視頻,或一組連續(xù)視頻幀,audio sample即為一段連續(xù)的壓縮音頻,它們統(tǒng)稱sample。

對于hint ? track,sample定義一個或多個流媒體包的格式。

sample table

指明sampe時序和物理布局的表。

chunk

一個track的幾個sample組成的單元。

?


三、MP4封裝格式結(jié)構(gòu)圖

1 實例樣本

來源于Android MediaRecoder視頻錄制,平臺為華為T8300和TCL968,用mp4info查看如下

用EsEYE查看如下:

用winhex分析如下:

?

2 box結(jié)構(gòu)圖

接下來對h264編碼中有用的幾個進行闡述,其它不再描述。

3 ftyp(file type box)

如下圖所示,開始的四字節(jié)00 00 00 00 18表示該box的size為24字節(jié)(含頭),然后66 74 79 70是ftyp的BOX TYPE,其它是一些格式兼容等相關(guān)信息。

4? mdat

如下圖所示,BOX YPE為6D 64 61 74 ,緊接著的00 00 09 39表示sliece長度

5 avcC

如下圖所示,紅色為BOX TYPE

?


四、MP4文件中h264的 SPS、PPS獲取

1? 【參考依據(jù)】ISO/IEC 14496-15 (下載)

2? 【綜述】在H264中,SPS和PPS存在于NALU header中,而在MP4文件中,SPS和PPS存在于AVCDecoderConfigurationRecord, 首先要定位avcC.

3? 【定義】

①參數(shù)集:一組很少改變的,為大量VCL NALU 提供解碼信息的數(shù)據(jù)。

?? 序列參數(shù)集SPS作用于一系列連續(xù)的編碼圖像,而圖像參數(shù)集PPS作用于編碼視頻序列中一個或多個獨立的圖像。

?? 如果解碼器沒能正確接收到這兩個參數(shù)集,那么其他NALU 也是無法解碼的。因此它們一般在發(fā)送其它 NALU 之前發(fā)送,并且使用不同的信道或者更加可靠的傳輸協(xié)議(如TCP)進行傳輸,也可以重復(fù)傳輸。

②關(guān)于AVCDecoderConfigurationRecord結(jié)構(gòu)定義為  

4? 【實例分析】 數(shù)據(jù)如上avcC圖所示,現(xiàn)在對數(shù)據(jù)進行詳細分析

所以,提取的SPS和PPS分別為67 42 00 1E A6 81 41 F9和68 CE 38 80

?


五、MP4文件中的H264 data /NALU slice

1? 【參考】H264官方文檔(下載) + 畢書—新一代視頻壓縮編碼標準(下載)

2? 【綜述】

① 在MP4格式文件中,H264 slice并不是以00 00 00 01來作分割,而是存儲在mdat box中。

② ?H264基本碼流由一些列的NALU組成。原始的NALU單元組成:[start code] + [NALU header] + [NALU payload]

?

start ? code

1字節(jié)

00 00 01 或 00 00 00 01

需要添加的

NALU header

1字節(jié)

如下3

通過mdat定位

?

③ ?H264基本碼流結(jié)構(gòu)分兩層:視頻編碼層VCL和網(wǎng)絡(luò)適配層NAL,這樣使信號處理和網(wǎng)路傳輸分離

?

VCL

負責高效視頻內(nèi)容表示

NAL

以網(wǎng)絡(luò)所要求的恰當方式對數(shù)據(jù)進行打包和發(fā)送

?

3? 【定義】 NALU header

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|F|NRI| Type |

+---------------+

特別的,當值為7和8分別為SPS和PPS。

畢書(下載)(P191)上的定義為:

?

4? 【實例分析】數(shù)據(jù)分析,數(shù)據(jù)如上圖mdat所示

6D 64 61 74

mdat ? BOX TYPE

00 00 ? 09 39

silce長度,2361

?

接下來的65就是NALU header,可以由65&0x1F來求的后五個bit,從而得知此slice為I frame

注意,mdat與silce之間有可能存在若干占位符,我在TCL手機測試時就出現(xiàn)了連續(xù)的00的占位符,這樣后面用H264硬編碼時會比較麻煩一點。

?


Ref/Related

1 相關(guān)資料和工具在文中鏈接下載

2 http://www.52rd.com/Blog/wqyuwss/559/4/

3 http://blog.csdn.net/szu030606/article/details/5943279

4 http://blog.csdn.net/k1988/article/details/5654631

5 http://www.cppblog.com/czanyou/archive/2008/11/26/67940.html

6 http://krdai.info/blog/sps-pps-in-mp4-format.html

7 http://www.cnitblog.com/zouzheng/archive/2007/04/04/25155.html

8 http://bbs.chinavideo.org/viewthread.php?tid=10273

?


作者:skyseraph
出處:http://www.cnblogs.com/skyseraph/
更多精彩請直接訪問SkySeraph個人站點:http://skyseraph.com//
Email/GTalk: zgzhaobo@gmail.com
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權(quán)利。

總結(jié)

以上是生活随笔為你收集整理的MP4格式及在MP4文件中提取H264的SPS、PPS及码流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91.xxx.高清在线 | 99re在线播放 | 三级亚洲欧美 | 国产亚洲天堂网 | av在线视| 91视频播放 | 韩国一区二区三区视频 | 久久伊人99 | 日韩av影片| 日本老妇高潮乱hd | 免费国产黄色网址 | 91精品欧美一区二区三区 | 你懂的网址在线观看 | 国产尤物av尤物在线看 | 91精品国产综合久久久蜜臀 | 亚洲精品第二页 | 日韩高清影视在线观看 | 嫩草视频在线观看视频 | 国产真人无遮挡作爱免费视频 | 黄色片一区二区 | 国产精品yy | 九九热只有精品 | 91久久综合亚洲鲁鲁五月天 | 狠狠v欧美v日韩v亚洲ⅴ | 日日夜夜天天操 | 美女又爽又黄免费 | 三级黄色网络 | 久久精品在线 | 亚洲三级伦理 | 亚洲在线国产 | 一卡二卡在线观看 | 中文在线a√在线8 | 亚洲欧美网 | 欧美影院一区二区 | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | chinesepron hd videos国产91 | 国产视频aaa| 91小视频在线观看 | 奇米四色在线观看 | 秘密基地动漫在线观看免费 | 三级色视频| 开心激情播播网 | 视频区小说区 | 亚洲第1页| 久久影视一区二区 | 久久国产一二三 | 午夜三级在线观看 | 亚洲av综合一区 | 67194午夜 | 91久久国产| 一卡二卡在线 | 中文字幕在线视频免费播放 | 激情三级在线 | 亚洲天堂v | 成人黄色av网站 | 亚洲精品国产精品国自产观看 | 国产一区二区 | 国产成人99久久亚洲综合精品 | 亚洲色图第1页 | 欧美激情国产精品免费 | 国产福利在线视频观看 | 亚洲精品在线一区二区 | 国产乱妇无码大片在线观看 | 人妻无码中文字幕免费视频蜜桃 | 91大神小宝寻花在线观看 | 欧美日韩一区二区三区视频 | 伊人婷婷在线 | 午夜成人亚洲理伦片在线观看 | 日本一级网站 | 香蕉伊人网 | 欧美劲爆第一页 | 永久免费av网站 | 亚洲国产成人91porn | heyzo朝桐光一区二区 | 亚洲专区欧美专区 | 欧美成人高潮一二区在线看 | 久久久久人妻一区二区三区 | 97在线观看 | 中文字幕成人 | 久久亚洲精品中文字幕 | 天天干夜夜添 | 污视频免费在线 | 国产色网站 | www.蜜臀av.com| 欧美性受xxxx黑人猛交88 | 久久久久国色av免费观看性色 | 男女偷爱性视频刺激 | 天天干天天操天天碰 | 中文字幕亚洲在线 | 91av在线播放 | 亚洲视频色 | 69国产精品视频 | 亚洲精品久久久蜜桃网尤妮丝 | 91九色蝌蚪在线 | 成人黄页 | 一级特黄a大片免费 | 四虎成人影视 | 爱欲av | 欧美午夜精品一区二区三区电影 |