ffmpeg解析出的視頻參數PAR,DAR,SAR的意義

視頻參數 SAR,PAR,DAR基礎概念

FFmpeg基礎概念解析。
今天主要總結一下視頻參數 PAR,DAR和SAR的理解。

FFmpeg中的視頻參數 SAR,PAR,DAR, 從宏觀上描述一個視頻輪如何被播放器正確顯示。在不同的文檔中,通常對這三個參數有不同的表述。但是,均指代同一事物。首先來看解釋:

  1. PAR - pixel aspect ratio,單個像素的寬高比,大多數情況像素寬高比爲1:1,也就是一個正方形像素,如果不是1:1, 則該像素可以理解爲長方形像素。常用的PAR比率有(1:1,10:11, 40:33, 16:11, 12:11 ).
  2. DAR - display aspect ratio,顯示寬高比。即最終播放出來的畫面的寬與高之比。比如常見的16:9和4:3等。縮放視頻也要按這個比例來,否則會使圖像看起來被壓扁或者拉長了似的。
  3. SAR - Sample aspect ratio,採樣縱橫比, 表示橫向的像素點數和縱向的像素點數的比值,即爲我們通常提到的分辨率寬高比。就是對圖像採集時,橫向採集與縱向採集構成的點陣,橫向點數與縱向點數的比值。比如VGA圖像640/480 = 4:3,D-1 PAL圖像720/576 = 5:4,高清視頻 等。

三者的關係:
PAR x SAR = DAR
或者
PAR = DAR/SAR.

已知其中任意兩個可以推導出另一個。

舉例說明:

看上圖,如果這是一個由5x4一共20個像素點構成的一個長方形視頻圖像,其SAR=5:4,如果每個像素點都是方形像素,即PAR=1:1,根據上面公式: DAR= PAR x SAR = 5:4x1:1 = 5:4, 則該圖像的顯示寬高比是5:4。
同理,如果有一視頻,告訴你視頻寬高分別是160和120,則DAR= 160:120, 如果SAR仍然是5:4,則PAR = 160:120 / 5:4 = 16:15,也就是說,這個視頻每個像素爲長方形的像素.

播放器如何正確播放視頻

播放器標準的播放流程,應該是先找容器也就是 container 中的DAR,按這個比例來顯示視頻,進行播放;如果沒有DAR的話,則使用SAR進行視頻顯示播放。

再比如,看下面這個視頻,ffplay播放後,解析出來視頻參數:

從中可以看到,ffplay通過ffmpeg獲取到視頻分辨率: 640x480, 即 SAR=640:480=4:3,DAR=16:9,也就是顯示分辨率按照16:9顯示。

通過上面公式, 計算 PAR = DAR/SAR = 16:9 / 4:3 = 4:3,則說明該視頻中原始視頻像素寬高比爲:4:3.

這裏有一點需要說明,就是視頻的制式:
視頻的制式按照設備可以分爲計算機制式和電視制式。而電視制式又可以分爲PAL和NTSC。電視制式的PAR通常不爲1:1,而計算機制式的PAR爲1:1. 所以上面得出視頻的PAR爲4:3,可以得出該視頻最初應該是來自電視制式拍攝而來。

看wiki上更加清晰的解釋:

Pixel Aspect Ratio
A pixel is a pixel, it is a small block of color information. However, some playback devices have different shaped pixels than others. Computer monitors have square pixels and hence everything that is designed for display on a monitor should have a PAR of 1. TVs however have ‘rectangular pixels’ which have a different PAR depending on the format (NTSC or PAL).
翻譯一下:計算機PAR通常爲1,也就是1:1,電視因爲是長方形像素,因此PAR依賴不同的制式如NTSC或者PAL,PAR值也會不同。

這裏有一篇英文文章,大家如果英語好,也可以參考一下:
https://www.animemusicvideos.org/guides/avtech3/theory-videoaspectratios.html

更多FFmpeg基礎概念,請關注 影音視頻技術空間

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