整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          超詳細MP4格式分析

          超詳細MP4格式分析

          .MP4解析工具

          mediainfo

          mp4box:http://download.tsi.telecom-paristech.fr/gpac/mp4box.js/filereader.html


          對于Mp4來說,都是一個個box來去組織元素。比如豎著的box,就是一個個box,這里就是重點關注moov。mp4?件由box組成,每個box分為Header和Data。其中Header部分包含了box的類型和??,Data包含了?box或者數據,box可以嵌套?box。MP4?件的基本組成單元是box,也就是說MP4?件是由各種各樣的box組成的,有parent box,還有children box。因此,這些boxes之間存在?定的層次關系,總結如下表所示,表中標記出了各個box必選或可選特性,√代表Box必選。

          下圖是?個典型mp4?件的基本結構:


          Hexinator:

          Mp4box和mediainfo對比。









          這個trak,就是表示是多少路音頻和視頻。每一個AVstream都對應一個track。每個track,可能都有寬高信息,編譯器信息,采樣率,聲道,time_base(time_scale)。

          表示track width和heigth使用了4個字節。

          視頻和音頻的時間刻度不一樣。

          音視頻的handler也不一樣。


          比較重要的sample table。



          一個MP4文件分為多個track,一個track分為多個chunk,一個chunk有多個sample。mp4數據索引和真正的數據分開區域存儲。

          先用數據索引找到moov,然后才能找到mdat。

          下面的解釋就是chunk1-84,都是一一對應1個sample,chunk85,一一對應2個sample,chunk86-88,一一對應一個sample,chunk89,一一對應2個sample,chunk90,一一對應一個sample。

          可以根據sample size去讀取每一幀數據的大小。


          ftyp

          File Type Box,?般在?件的開始位置,描述的?件的版本、兼容協議等。


          moov

          Movie Box,包含本?件中所有媒體數據的宏觀描述信息以及每路媒體軌道的具體信息。?般位于放在?件末尾,但如果為了?持http邊下載邊播放則需要將moov提前。注意,當改變moov位置時,內部?些值需要重新計算。

          mdat

          Media Data Box,存放具體的媒體數據。

          Moov Insider

          mp4的媒體數據信息主要存放在Moov Box中,是我們需要分析的重點。moov的主要組成部分如下:

          mvhd

          Movie Header Box,記錄整個媒體?件的描述信息,如創建時間、修改時間、時間度量標尺、可播放時?等。

          下圖示例中,可以獲取?件信息如時?為 Duration: 5016 ms秒。


          udta

          User Data Box,?定義數據。

          track

          Track Box,記錄媒體流信息,?件中可以存在?個或多個track,它們之間是相互獨?的。

          每個track包含以下?個組成部分:

          tkhd

          Track Header Box,包含關于媒體流的頭信息。下圖示例中,可以看到流信息如視頻流寬度800,?度1920。

          ?頻的tkhd,則?如duration、volume等。


          mdia

          Media Box,這是?個包含track媒體數據信息的container box。?box包括:

          mdhd:Media Header Box,存放視頻流創建時間,?度等信息。

          hdlr:Handler Reference Box,媒體的播放過程信息。

          minf:Media Information Box,解釋track媒體數據的handler-specific信息。minf同樣是個containerbox,其內部需要關注的內容是stbl,這也是moov中最復雜的部分。stbl包含了媒體流每?個sample在?件中的offset,pts,duration等信息。想要播放?個mp4?件,必須根據stbl正確找到每個sample并送給解碼器。

          mdia展開如下圖所示:

          mdhd

          Media Header Box,存放視頻流創建時間,?度等信息。視頻的mdhd,Time scale,Duration等信息。

          ?頻的mdhd,也類似視頻,但要注意Time scale,我們在計算時間戳的時候都要使?該Time scale,對應我們流??的AVStream->time_base

          hdlr

          Handler Reference Box,媒體的播放過程信息視頻的hdlr,重點Component subtype: vide。

          ?頻的hdlr,Component subtype: soun,如果我們多個?軌的時候,Component name:粵語。

          我們分析的?件另?路?軌,根據不同的名字來進行區別。


          minf

          minf:Media Information Box,解釋track媒體數據的handler-specific信息。minf同樣是個containerbox,其內部需要關注的內容是stbl,這也是moov中最復雜的部分。stbl包含了媒體流每?個sample在?件中的offset,pts,duration等信息。想要播放?個mp4?件,必須根據stbl正確找到每個sample并送給解碼器。

          ?且需要注意的是,minf??的?容器,?頻和視頻軌是有區別的,?如視頻軌:vmhd, ?頻軌則為:smhd


          vmhd

          smhd

          Stbl Insider

          Sample Table Box,上?提到mdia中最主要的部分是存放?件中每個sample信息的stbl。在解析stbl前,我們需要區分chunk和sample這兩個概念。

          在mp4?件中,sample是?個媒體流的基本單元,例如視頻流的?個sample代表實際的nal數據chunk是數據存儲的基本單位,它是?系列sample數據的集合,?個chunk中可以包含?個或多的sample。


          stbl?來描述每個sample的信息,包含以下?個主要的?box:

          stsd

          Sample Description Box,存放解碼必須的描述信息。下圖示例中,對于h264的視頻流,其具體類型為 avc1 ,extensions中其中存放有sps,pps等解碼必要信息。

          視頻的stsd

          ??包含了avc1,avc1???包含了avcC和pasp。

          avc1:包含了視頻Width、Height。

          avcC:包含了視頻編碼器相關的信息,包括sps、pps等信息。






          ?頻的stsd

          用Hexinator分析,包含了音頻相關的信息,比如采樣率,通道數。

          stts

          Time-to-Sample Box,定義每個sample時?。Time-To-Sample的table entry布局如下:


          stts table entry布局

          sample count:sample個數。

          sample duration:sample持續時間。

          持續時間相同的連續sample可以放到?個entry?達到節省空間的?的。這?先給出來的是視頻的stts,Number of entries,這個參數需要注意并不是sample的個數,sample的實際數量需要將每個entry的sample count進?累加才是真正的sample個數。

          下圖示例中,第1個sample時間為3720,單位?mdhd的time scale進?換算,?如視頻的是90000,此時換算成秒為3720/90000=0.0413333333333333秒


          再給出個?頻的stts,只是mdhd的time scale的差別,之前我們看到?頻為44100,則計算第?個sample的時間。1024/44100=0.0232199546485261秒。

          stss

          Sync Sample Box,同步sample表,存放關鍵幀列表,關鍵幀是為了?持隨機訪問。

          stss的table entry布局如下:

          stss table entry布局

          下圖示例中,該視頻track有3個關鍵幀:


          stsc

          Sample-To-Chunk Box,sample-chunk映射表。

          上?提到mp4通常把sample封裝到chunk中,?個chunk可能會包含?個或者?個sample。Sample-To-Chunk Atom的table entry布局如下圖所示:

          First chunk:使?該表項的第?個chunk序號

          Samples per chunk:使?該表項的chunk中包含有?個sample

          Sample description ID:使?該表項的chunk參考的stsd表項序號

          下圖示例中,可以看到該視頻track?共有1個stsc表項,chunk序列1-x,每個chunk包含?個sample。這?則說明每個chunk??只有?個sample?個chunk是可以有多個sample)。


          stsz

          Sample Size Box,指定了每個sample的size。Sample Size Atom包含兩sample總數和?張包含了每個sample size的表

          sample size 表的entry布局如下圖:

          下圖示例中,該視頻流?共有110個sample,第1個sample??為42072字節,第2個sample??為7354個字節。

          stco

          Chunk Offset Box,指定了每個chunk在?件中的位置,這個表是確定每個sample在?件中位置的關鍵。該表包含了chunk個數和?個包含每個chunk在?件中偏移位置的表。每個表項的內存布局如下:

          需要注意,這?stco只是指定的每個chunk在?件中的偏移位置,并沒有給出每個sample在?件中的偏移。想要獲得每個sample的偏移位置,需要結合 Sample Size box(stsz)和Sample-To-Chunk(stsc) 計算后取得。

          下圖示例中,該視頻流第1個chunk在?件中的偏移為4750,?這?是每個chunk只有?個sample,此時第?個sample的起始位置就為4750->0x1D78,數據??則參照stsz,第?個sample size為172818。

          ?如偏移位置,7544->0x1D78。

          如何計算sample偏移位置

          上?提到通過stco并不能直接獲取某個sample的偏移位置,下?舉例說明如何獲取某?個pts對應的sample在?件中的位置。

          ?體需要以下步驟:

          (1)將pts轉換到媒體對應的時間坐標系。

          (2)根據stts((decoding) time-to-sample)計算某個pts對應的sample序號

          (3)根據stsc(sample-to-chunk)計算sample序號存放在哪個chunk中

          (4)根據stco(chunk offset)獲取對應chunk在?件中的偏移位置

          (5)根據stsz獲取sample在chunk內的偏移位置并加上第4步獲取的偏移,計算出sample在?件中的偏移。

          例如,想要獲取3.64秒視頻sample數據在?件中的位置。

          (1)根據time scale參數,將3.64秒轉換為視頻時間軸對應的3640000 (假如時間刻度不為毫秒)。

          視頻軌:time scale為90000,轉成對應的時間戳為3.64秒*90000。

          (2)遍歷累加下表所示stts所有項?,計算得到3640000位于第110個sample=327600。

          (3)計算出多個sample_deltas疊加才到了327600, 我們這?姑且按3780作為平均值計算,實際是3720*1+3780*1+3690*1+3780*2 ...... 這樣?直疊加進?。327600/3780=86.66666666666667,取整為86。

          (4)查詢下表所示stsc所有項?,計算得到第86個sample位于第86個chunk,并且在該chunk中位于第1個sample(因為我們的碼流是每個chunk對應了?個sample)。

          (5)查詢下表所示stco所有項?,得到第86個chunk在?件中偏移位置為1004678。使?hexinator。

          (6)查詢下表所示stsz所有項?,得到第86個sample的size為20934。計算得到3.64秒視頻sample數據在?件中。

          offset:1004678+0=1004678

          size:20934。

          驗證:?編輯器打開mp4?件,定位到?件偏移1004678位置。09分隔符,這?占?了6個字節, 再看真正的數據區域,前4字節也為 NALU的?度0x000051bc=20924。

          總共占?的字節計算 4+2+4+20924=20934。

          《整理mp4協議重點,將協議讀薄》:


          ?個chunk含有多個sample的情景參考下?鏈接進?分析:

          mp4?件格式重點解析:https://www.jianshu.com/p/44c9567d8fcb


          本篇文章就分析到這里,非常詳細的MP4分析,如果對你有用,可以關注,點贊,收藏,轉發。

          在低頭族們都在干什么,想必不少人是在刷短視頻呢吧!五花八門的視頻內容吸引了大家的觀看點贊甚至留言品論。那么短視頻這么潮,它究竟可以拍什么樣的題材呢?今天,【盛大博通】小編就和大家一起了解關于短視頻可以拍什么題材的相關內容。

          1、美食類:俗話說的好,民以食為天,誰也不能拒絕美食的誘惑。那么在短視頻中,如果以美食為題材進行拍攝的話,相比能夠非常輕松的吸引一大波受眾,畢竟人人都是小吃貨,沒有不愛美食小吃的人。但是拍攝這類題材,一定要注意層次性,同時光線和色彩的利用也關鍵,最好再加一些聲音,讓人垂涎欲滴。

          2、常識類:常識類一般是生活小常識,比如去污小技巧、如何整理衣物、花樣系鞋繩等多個方面的內容。這種內容接地氣,同時也能很好的讓受眾群體了解到生活的竅門如此之多,從視頻觀看者搖身一變成為了受益者。

          3、寵物類:現在養寵物的朋友實在是太多了,大家在拍攝短視頻的時候可以拍攝這類題材,用萌萌的寵物來俘獲人心。同時還能夠將養寵物的一些方式方法,注意事項等拍攝出來,讓更多鏟屎官了解照顧寵物的小細節。

          關于短視頻拍攝題材的內容就介紹到這里。如果您有短視頻拍攝制作的需要,別忘了選擇正規的拍攝公司哦!

          文章來源:https://www.mgfty.com/short/3260.html

          、網頁

          1.網站是網頁的集合,網頁是構成網站的基本元素,是由圖片、鏈接、文字、聲音、視頻等元素組成的HTML格式文件。

          2.HTML是超文本標記語言(Hyper Text Markup Language),是用來描述網頁的一種標記語言,而不是編程語言。超文本是指可以加入圖片、聲音、動畫、多媒體等,超越了文本限制;也可以從一個文件跳轉到另一個文件,是超級鏈接文本。

          3.網頁的生成:前端人員編寫HTML文件,通過瀏覽器打開就能看到網頁。

          二、瀏覽器(網頁顯示,運行的平臺)

          1.常用瀏覽器

          IE、Firefox 、Chrome 、Safari 、Opera

          2.瀏覽器內核(渲染引擎)

          讀取網頁內容,整理訊息,計算網頁顯示方式并顯示頁面

          三、Web標準

          1.Web標準:由W3C組織和其他標準化組織制定的一系列標準的集合。(W3C是萬維網聯盟)

          2.Web標準的構成

          (1) 結構(Structure):對網頁元素進行整理分類(HTML)

          (2) 表現(Presentation):設置網頁元素的版式、顏色、大小等外觀樣式(CSS)

          (3) 行為(Behavior):網頁模型的定義及交互的編寫(JavaScript)

          3.為什么需要Web標準?

          (1) 瀏覽器不同,顯示頁面或排版有所差異

          (2) 寫出的頁面更標準,更統一

          (3) 內容能被廣泛設備訪問,更容易被搜索引擎搜索

          (4) 降低網站流量費用,使網站更易于維護

          (5) 提高頁面瀏覽速度


          主站蜘蛛池模板: 精品国产日韩一区三区| 亚洲无线码一区二区三区| 精品无码国产一区二区三区AV| 日本高清一区二区三区| 日本精品高清一区二区| 爱爱帝国亚洲一区二区三区| 午夜DV内射一区二区| 国产一区二区电影在线观看| 亚洲国产精品成人一区| 午夜性色一区二区三区免费不卡视频| 一区二区三区视频观看| 国产乱码一区二区三区四| 亚洲一区二区三区乱码在线欧洲| 无码人妻精品一区二区三区久久| 亚洲日韩AV无码一区二区三区人| 国产精品久久久久一区二区三区| 国产一区二区电影在线观看| 亚洲一区二区三区在线观看蜜桃| 国产成人午夜精品一区二区三区| 夜夜添无码一区二区三区| 五十路熟女人妻一区二区| 亚洲国产精品一区二区第四页| 精品人妻系列无码一区二区三区 | 福利一区二区视频| 一区二区精品视频| 久久久精品人妻一区亚美研究所| 无码人妻一区二区三区免费看| 老熟女五十路乱子交尾中出一区| 麻豆果冻传媒2021精品传媒一区下载| 日本精品视频一区二区三区| 好吊视频一区二区三区| 久久精品午夜一区二区福利 | 无码aⅴ精品一区二区三区浪潮| 国产日本一区二区三区| 老鸭窝毛片一区二区三区| 日韩一区精品视频一区二区| 国产免费一区二区三区| 国精品无码一区二区三区左线| 国产精品香蕉在线一区| 免费精品一区二区三区第35| 国产一区二区影院|