003 | 認識MP4視訊(上)
在開始播放器實踐之前,我們要先知道播放的內容是什麼:認識一下 MP4 視訊。
根據維基百科的介紹,MP4 或稱 MPEG-4 第14部分(英語:MPEG-4 Part 14)是一種標準的數字多媒體容器格式。
MPEG-4 第14部分的副檔名為.mp4,以儲存數字音訊及數字視訊為主,但也可以儲存字幕和靜止影象。
字面意思很容易理解,MP4 其實是一種容器,可以存音訊和視訊內容。那麼問題來了,既然說 MP4 是 MPEG-4 第14部分,那其他部分是什麼呢?有沒有 MPEG 的 1、2、3 甚至 5、6、7 呢?
這裡就涉及到 MP4 標準的制定了。
首先需要知道國際上有一個組織叫做 MEPG (Moving Picture Experts Group,動態影象專家組)。
它是 ISO(International Standardization Organization,國際標準化組織)與IEC(International Electrotechnical Commission,國際電工委員會)於1988年成立的專門針對運動影象和語音壓縮制定國際標準的組織。
這裡組織名字比較多,就不贅述了,可以直接去百度一下。
大意就是兩個大組織 ISO 和 IEC 成立了一個小組織 MEPG 來制定運動影象和語音壓縮的標準,其實就是制定視訊和音訊方面的標準,可能那個年代把視訊叫做運動影象吧。
而 MEPG 組織的產出就是一系列標準,並且命名也很簡單,就是 MPEG-1 標準、MPEG-2 標準,以此類推。
不過,要注意 MPEG 標準後面的數字可不是依次遞增的哦,比如 MPEG-3、MPEG-5、MPEG-6 就不存在的,就好比 Windows 電腦直接從 Win8 跳到 Win10 ,也沒有 Win9 了,這也回答了上面的問題,並不是每個數字代表的標準都有的。
另外,為什麼說 MP4 是 MPEG-4 的第14部分呢?
因為 MPEG-4 標準很大,包括了 27 個部分,詳細的 27 個部分內容可以在網路上搜索到,貼個圖:
比如常見的 H.264 就是 MPEG-4 第 10 部分,所以介紹 H.264 的時候也可以說是 MPEG-4 第 10 部分。
這裡面的每個部分多多少少都影響著我們的生活了,對於開發人員來說,還是需要了解一些關鍵部分的內容。
我已經把 MP4 相關的 MPEG-4 第14 部分文件下載好了,檔案會同步到知識星球裡面,有需要的可以自行下載,截個圖如下:
文件內容不多,就十幾頁,主要就是講了 MP4 檔案格式的定義和相關語法。
後面我們也會去解讀一下 MP4 的檔案格式,這次就先到這裡,下次見了!!!
知識星球
邀請了一些在頭條、快手等知名IT企業從事過音視訊研發的朋友們做專業諮詢,涉及的範圍比較廣,包括 Android/iOS 開發、Camera 開發、視訊編輯、線上直播、WebRTC、播放器、OpenGL、C++ 等等,基本上涵蓋了音視訊工程領域的絕大部分內容。
關於音視訊入門如何學習,學習了 FFmpeg 之後又該怎麼辦,跳槽選擇哪個方向比較好,程式設計師職業軟技能等等之類的問題,更是會以行業一線開發人員的角度幫你認真分析,出謀劃策。
力求做到有問必答。在知識範圍內,認真地對待每一個提問,不一定所有的問題都能答案,但每一個答案都是詳細思考過的。
更多開發資料、部落格原始碼、文件教程都會在星球內給出,白菜價即可加入,iOS 使用者可以加我微信 ezglumes 拉你進去!!!
微信公眾號
掃描下面的二維碼關注我的微信公眾號《音視訊開發進階》,推送更多精彩內容!
新增我的微信 ezglumes 拉你入音視訊與圖形影象技術群一起交流學習~
- 音視訊開發系統入門大致路線
- 乾貨 | 快速抽取縮圖是怎麼練成的?
- 關於直播、WebRTC、FFmpeg 的那些事
- 005 | 播放器系列專欄-在 Windows 上檢視 MP4 格式資訊
- 將音視訊中的花屏、綠屏、黑屏問題一網打盡
- 關於音視訊裡面的解碼幀率和渲染幀率
- 003 | 認識MP4視訊(上)
- 入門或者轉行音視訊,應該要怎麼做?
- Metal 開發 | 使用 C 進行介面呼叫~~
- FFmpeg 呼叫 MediaCodec 硬解碼到 Surface 上
- 程式碼吸貓 | 用 OpenGL 影象渲染的養貓計劃
- 音訊變速 | libsonic 開源庫的介紹與實踐
- FFmpeg 呼叫 Android MediaCodec 進行硬解碼(附原始碼)
- iOS開發 - 在 Swift 中去呼叫 C/C 程式碼
- 聲網 SDK 接入以及音視訊通話應用開發指南
- Shader 優化 | OpenGL 繪製網格效果
- KodeLife | Shader 實時編輯預覽的強大工具使用實踐