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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

H264视频编码原理基础分析

發布時間:2023/12/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H264视频编码原理基础分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

  • 本文章旨在記錄本人學習有關音視頻時對H264碼流視頻編解碼原理部分的內容,如有不對請留言指出

1、音視頻封裝格式

? 我們一般下載或者播放的視頻文件常見都是以 xxx.mp4、xxx.flv、xxx.mkv等標識結尾,其實這都是對視頻+音頻的進一步封裝,詳見如下視頻文件的經典圖:

通過上圖我們知道一個視頻需要播放起來能看,經過的步驟

①解封裝格式→ ②視頻解碼 → ③音視頻同步,

H264視頻壓縮數據就在視頻解封裝格式后這步。所以單純的想要播放有畫面的視頻只需要拿到xxx.h264文件即可。

通過FFmpeg工具即可直接得到一個視頻的h264視頻壓縮文件。

FFmpeg 工具抽取視頻的H264文件命令:

1)mp4視頻文件抽取H264視頻文件命令: ffmpeg.exe -i 源視頻名.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 輸出視頻文件名.h264 (2)播放H264文件 ffplay.exe (h264文件名).h264


2、H264介紹

? 關于H264的由來介紹可參考以下幾篇文章,就不過多記錄了

? 1)H264百度百科:https://baike.baidu.com/item/H.264/1022230?fromtitle=H264&fromid=7338504&fr=aladdin

? 2)H264由來介紹:

3、H264文件分析

? 首先我們還是用FFmpeg工具將之前抽取到的視頻壓縮H264文件進一步抽取出原始視頻數據 yuv文件:

1)H264文件抽取yuv視頻文件命令: ffmpeg.exe -i out.h264 -s 544x960 -pix_fmt yuv420p out.yuv 解釋: out.h264:(h264源文件名) 544x960:(視頻分辨率) yuv420p:(編碼格式) out.yuv: (輸出的yuv文件名) (2)播放yuv文件命令: ffplay.exe -video_size 544x960 -i out.yuv 解釋: 544x960:(視頻分辨率) out.yuv:(yuv文件名)

? 然后看個文件大小數據對比:

? 源視頻 【2.79MB】←pk→ H264文件【2.65MB】 ←pk→ yuv【454MB】文件

? 裸數據從454MB直接壓縮到2.65MB,直接壓縮了差不多200倍,逆天了。真的是極大的節約了存儲空間

?

? H264說到底就是對視頻數據進行壓縮的技術,主要采用了以下幾種方法對視頻數據進行壓縮

  • 幀內預測壓縮,解決的是空域數據冗余問題
  • 幀間預測壓縮(運動估計與補償),解決的是時域數據冗徐問題
  • 整數離散余弦變換(DCT),將空間上的相關性變為頻域上無關的數據然后進行量化
  • CABAC壓縮

? 經過壓縮后的幀分為:I幀,P幀、B幀

  • I幀:關鍵幀,采用幀內壓縮技術
  • P幀:向前參考幀,在壓縮時,只參考前面已經處理的幀。采用幀音壓縮技術
  • B幀:雙向參考幀,在壓縮時,它即參考前而的幀,又參考它后面的幀。采用幀間壓縮技術

? 除了I/P/B幀外,還有圖像序列GOP

? GOP:兩個I幀之間是一個圖像序列,在一個圖像序列中只有一個I幀。如下圖所示:

4、H264壓縮技術過程

…由于此壓縮技術過程篇幅過長,可看此篇記錄文章

總結

以上是生活随笔為你收集整理的H264视频编码原理基础分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。