音視頻 (三) —— 視頻相關(guān)參數(shù)的理解

音視頻 (一) —— H.264 中的 NAL 技術(shù)
音視頻 (二) —— H.264中相關(guān)參數(shù)理解
音視頻 (三) —— 視頻相關(guān)參數(shù)的理解

幀率(fps)

幀率(Frame rate)是用于測(cè)量顯示幀數(shù)的量度震缭。所謂的測(cè)量單位為每秒顯示幀數(shù)(Frames per Second偷俭,簡(jiǎn)稱:FPS)或“赫茲”(Hz)
由于人類眼睛的特殊生理結(jié)構(gòu),如果所看畫面之幀率高于24的時(shí)候,就會(huì)認(rèn)為是連貫的搂抒,此現(xiàn)象稱之為視覺暫留。這也就是為什么電影膠片是一格一格拍攝出來穿肄,然后快速播放的滔韵。
而對(duì)游戲,一般來說颖变,第一人稱射擊游戲比較注重FPS的高低生均,如果FPS<30的話,游戲會(huì)顯得不連貫腥刹。所以有一句有趣的話:“FPS(指FPS游戲)重在FPS(指幀率)马胧。
每秒的幀數(shù)(fps)或者說幀率表示圖形處理器處理場(chǎng)時(shí)每秒鐘能夠更新的次數(shù)。高的幀率可以得到更流暢衔峰、更逼真的動(dòng)畫佩脊。一般來說30fps就是可以接受的蛙粘,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了威彰。如果幀率超過屏幕刷新率只會(huì)浪費(fèi)圖形處理的能力出牧,因?yàn)楸O(jiān)視器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費(fèi)掉了歇盼。
我們可以根據(jù)幀率得出連續(xù)兩幀的時(shí)間間隔舔痕。比如幀率為30FPS,那么相鄰兩幀的時(shí)間間隔為 33ms

分辨率

顯示分辨率(屏幕分辨率)是屏幕圖像的精密度,是指顯示器所能顯示的像素有多少豹缀。由于屏幕上的點(diǎn)赵讯、線和面都是由像素組成的,顯示器可顯示的像素越多耿眉,畫面就越精細(xì)边翼,同樣的屏幕區(qū)域內(nèi)能顯示的信息也越多,所以分辨率是個(gè)非常重要的性能指標(biāo)之一鸣剪∽榈祝可以把整個(gè)圖像想象成是一個(gè)大型的棋盤,而分辨率的表示方式就是所有經(jīng)線和緯線交叉點(diǎn)的數(shù)目筐骇。顯示分辨率一定的情況下债鸡,顯示屏越小圖像越清晰,反之铛纬,顯示屏大小固定時(shí)厌均,顯示分辨率越高圖像越清晰。
IOS中常見的分辨率有: 1080P(1920 x 1080) 告唆、720P(1280 x 720) 棺弊、480P(640 x 480)、360P
ios設(shè)置分辨率的代碼:

    + (void)resetSessionPreset:(AVCaptureSession *)m_session andHeight:(int)g_height_size
    {
    [m_session beginConfiguration];
    switch (g_height_size) {
        case 1080:
            m_session.sessionPreset = [m_session canSetSessionPreset:AVCaptureSessionPreset1920x1080] ? AVCaptureSessionPreset1920x1080 : AVCaptureSessionPresetHigh;
            break;
        case 720:
            m_session.sessionPreset = [m_session canSetSessionPreset:AVCaptureSessionPreset1280x720] ? AVCaptureSessionPreset1280x720 : AVCaptureSessionPresetMedium;
            break;
        case 480:
            m_session.sessionPreset = [m_session canSetSessionPreset:AVCaptureSessionPreset640x480] ? AVCaptureSessionPreset640x480 : AVCaptureSessionPresetMedium;
            break;
        case 360:
            m_session.sessionPreset = AVCaptureSessionPresetMedium;
            break;
            
        default:
            break;
    }
    [m_session commitConfiguration];
    }

DTS和PTS

  • DTS(Decoding Time Stamp) : 即解碼時(shí)間戳擒悬,是解碼器進(jìn)行解碼時(shí)相對(duì)于SCR(系統(tǒng)參考時(shí)間)的時(shí)間戳模她。它主要標(biāo)識(shí)讀入內(nèi)存的bit流在什么時(shí)候開始送入解碼器中進(jìn)行解碼。
  • PTS(Presentation Time Stamp) : 即顯示時(shí)間戳懂牧,是顯示幀時(shí)相對(duì)于SCR的時(shí)間戳侈净。它主要是度量解碼后的視頻什么時(shí)候被顯示出來。

DTS主要用于視頻的解碼僧凤,在解碼階段使用畜侦。PTS主要用于視頻的同步和輸出,在 display 的時(shí)候使用躯保。在沒有B幀的情況下旋膳,DTS和PTS的輸出順序是一樣的。

以下內(nèi)容摘自網(wǎng)絡(luò)

DTS 時(shí)間戳決定了解碼器在SCR時(shí)間等于DTS時(shí)間時(shí)進(jìn)行解碼吻氧,PTS時(shí)間戳也是類似的溺忧。通常咏连,DTS/PTS時(shí)間戳指示的是晚于音視頻包中的SCR的一個(gè)時(shí) 間盯孙。例如鲁森,如果一個(gè)視頻數(shù)據(jù)包的SCR是100ms(意味著此包是播放100ms以后從磁盤中讀取的),那么DTS/PTS值就差不多是200 /280ms振惰,表明當(dāng)SCR到200ms時(shí)這個(gè)視頻數(shù)據(jù)應(yīng)該被解碼并在80ms以后被顯示出來(視頻數(shù)據(jù)在一個(gè)buffer中一直保存到開始解碼)
下 溢通常發(fā)生在設(shè)置的視頻數(shù)據(jù)流相關(guān)mux率太高歌溉。如果mux率是1000000bits/sec(意味著解碼器要以1000000bits/sec的速率 讀取文件),可是視頻速率是2000000bits/sec(意味著需要以2000000bits/sec的速率顯示視頻數(shù)據(jù))骑晶,從磁盤中讀取視頻數(shù)據(jù)時(shí) 速度不夠快以至于1秒鐘內(nèi)不能夠讀取足夠的視頻數(shù)據(jù)這種情況下DTS/PTS時(shí)間戳就會(huì)指示視頻在從硬盤中讀出來之前進(jìn)行解碼或顯示(DTS/PTS時(shí)間戳就要比包含它們的數(shù)據(jù)包中的SCR時(shí)間要早了)痛垛。
如今依靠解碼器,著基本已經(jīng)不是什么問題了(盡管MPEG文件因?yàn)閼?yīng)該沒有下溢而并不完全符合MPEG標(biāo)準(zhǔn))桶蛔。一些解碼器(很多著名的基于PC的播放器)盡可能快的讀取文件以便顯示視頻匙头,可以的話直接忽略SCR。
注意在你提供的列表中仔雷,平均的視頻流速率為~3Mbps(3000000bits/sec)但是它的峰值達(dá)到了14Mbps(相當(dāng)大蹂析,DVD限制在 9.8Mbps內(nèi))。這意味著mux率需要調(diào)整足夠大以處理14Mbps的部分碟婆, bbMPEG計(jì)算出來的mux率有時(shí)候太低而導(dǎo)致下溢电抚。
你計(jì)劃讓視頻流速率這么高么?這已經(jīng)超過了DVD的說明了竖共,而且很可能在大多數(shù)獨(dú)立播放其中都不能播放蝙叛。如果你不是這么計(jì)劃,我會(huì)從1增加mquant的值并且在視頻設(shè)置中將最大碼流設(shè)置為9Mbps以保持一個(gè)小一點(diǎn)的碼流公给。
如果你確實(shí)想讓視頻碼率那么高借帘,你需要增大mux率。從提供的列表可以得出bbMPEG使用14706800bits/sec或者1838350bytes /sec的mux率(總數(shù)據(jù)速率為:1838350bytes/sec(14706800bits/sec)行)淌铐。你在強(qiáng)制mux率字段設(shè)置的值應(yīng)該是以 bytes/sec為單位并被50整除姻蚓。所以我會(huì)從36767(1838350/50)開始,一直增加直到不會(huì)再出現(xiàn)下溢錯(cuò)誤為止匣沼;

碼率(比特率)

由于保存完整的一幀一幀圖片的視頻原文件太大狰挡,必須要通過某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小释涛,那么壓縮比越大加叁,解壓縮還原后用來播放的視頻就會(huì)有越嚴(yán)重的失真,因?yàn)閴嚎s的同時(shí)不可避免的丟失了視頻中原來圖像的數(shù)據(jù)信息唇撬。在理解這個(gè)的前提下它匕,我來舉個(gè)例子,一個(gè)分辨率為1080P的原視頻(未經(jīng)壓縮)被壓縮成分別為4GB 和 1GB的兩個(gè)視頻文件窖认。由于1GB的視頻的壓縮比更大豫柬,所以在觀看1GB視頻的明顯感覺到?jīng)]有4GB視頻清晰(雖然他們的分辨率都是1080P)告希。

碼率又稱比特率,是指在壓縮視頻的時(shí)候給這個(gè)視頻指定一個(gè)參數(shù)烧给,用以告訴壓縮軟件期望的壓縮后視頻的大小燕偶。碼率的英文名為bps(bit per second),就是用平均每秒多少bit來衡量一個(gè)視頻大小础嫡。

  • 計(jì)算視頻的碼率

我們可以根據(jù)一個(gè)視頻的長(zhǎng)度和大小來推斷出該視頻的比特率是多少指么。下面是一個(gè)具體的例子。
一段1080P的視頻長(zhǎng)度為100分鐘榴鼎,大小為1GB伯诬,那么該視頻的比特率是多少?

100min = 100*60s = 6000s;
1G = 1024M = 1024*1024KB = 1024*1024*1024Bit = 1024*1024*1024*8bit = 8589934592bit;
比特率 = 8589934592/6000s = 1431655b/s = 1.4Mbit/s;

那么這個(gè)視頻的碼率大概就是 1.4Mbit/s,這個(gè)比特率在在線視頻中已經(jīng)是非常高的了巫财,一般主流視頻平臺(tái)的最高碼率在1Mbit左右盗似,比如直播網(wǎng)站斗魚的高清選項(xiàng)實(shí)際播放的視頻碼率是900Kbit/s(0.9Mbit)。
我們可以得出結(jié)論:對(duì)于時(shí)間長(zhǎng)度相同的視頻平项,碼率越大赫舒,視頻的大小越大,視頻的畫質(zhì)就越清晰(不考慮各種壓縮算法的優(yōu)劣)葵礼,這是最直觀的感覺号阿。碼率對(duì)于視頻是非常重要的

音視頻同步

上面說了視頻幀、DTS鸳粉、PTS 相關(guān)的概念扔涧。我們都知道在一個(gè)媒體流中,除了視頻以外届谈,通常還包括音頻枯夜。音頻的播放,也有 DTS艰山、PTS 的概念湖雹,但是音頻沒有類似視頻中 B 幀,不需要雙向預(yù)測(cè)曙搬,所以音頻幀的 DTS摔吏、PTS 順序是一致的。
音頻視頻混合在一起播放纵装,就呈現(xiàn)了我們常痴鹘玻看到的廣義的視頻。在音視頻一起播放的時(shí)候橡娄,我們通常需要面臨一個(gè)問題:怎么去同步它們诗箍,以免出現(xiàn)畫不對(duì)聲的情況。
要實(shí)現(xiàn)音視頻同步挽唉,通常需要選擇一個(gè)參考時(shí)鐘滤祖,參考時(shí)鐘上的時(shí)間是線性遞增的筷狼,編碼音視頻流時(shí)依據(jù)參考時(shí)鐘上的時(shí)間給每幀數(shù)據(jù)打上時(shí)間戳。在播放時(shí)匠童,讀取數(shù)據(jù)幀上的時(shí)間戳埂材,同時(shí)參考當(dāng)前參考時(shí)鐘上的時(shí)間來安排播放。這里的說的時(shí)間戳就是我們前面說的 PTS俏让。實(shí)踐中楞遏,我們可以選擇:同步視頻到音頻茬暇、同步音頻到視頻首昔、同步音頻和視頻到外部時(shí)鐘。

參考

視頻的基本參數(shù)及H264編解碼相關(guān)概念

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糙俗,一起剝皮案震驚了整個(gè)濱河市勒奇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巧骚,老刑警劉巖赊颠,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異劈彪,居然都是意外死亡竣蹦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門沧奴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痘括,“玉大人,你說我怎么就攤上這事滔吠「倬” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵疮绷,是天一觀的道長(zhǎng)翰舌。 經(jīng)常有香客問我,道長(zhǎng)冬骚,這世上最難降的妖魔是什么椅贱? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮只冻,結(jié)果婚禮上庇麦,老公的妹妹穿的比我還像新娘。我一直安慰自己属愤,他們只是感情好女器,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著住诸,像睡著了一般驾胆。 火紅的嫁衣襯著肌膚如雪涣澡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天丧诺,我揣著相機(jī)與錄音入桂,去河邊找鬼。 笑死驳阎,一個(gè)胖子當(dāng)著我的面吹牛抗愁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呵晚,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜘腌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了饵隙?” 一聲冷哼從身側(cè)響起齐遵,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胀瞪,失蹤者是張志新(化名)和其女友劉穎院仿,沒想到半個(gè)月后失驶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驶俊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年娶耍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饼酿。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡榕酒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗜湃,到底是詐尸還是另有隱情奈应,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布购披,位于F島的核電站杖挣,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刚陡。R本人自食惡果不足惜惩妇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筐乳。 院中可真熱鬧歌殃,春花似錦、人聲如沸蝙云。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至波材,卻和暖如春股淡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廷区。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工唯灵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隙轻。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓埠帕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親玖绿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子敛瓷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 教程一:視頻截圖(Tutorial 01: Making Screencaps) 首先我們需要了解視頻文件的一些基...
    90后的思維閱讀 4,697評(píng)論 0 3
  • [TOC] 音視頻&流媒體 是什么促使我要寫這一篇音視頻入門文章?那是因?yàn)楹鸵幻米哟蛸€碼率的概念镰矿,結(jié)果輸了琐驴;對(duì)一個(gè)...
    AllenWu閱讀 4,827評(píng)論 1 24
  • 視頻壓縮中俘种,每幀代表一幅靜止的圖像秤标。而在實(shí)際壓縮時(shí),會(huì)采取各種算法減少數(shù)據(jù)的容量宙刘,其中IPB就是最常見的苍姜。 簡(jiǎn)單地...
    wo不懂閱讀 7,835評(píng)論 0 16
  • 本文轉(zhuǎn)自:[FFmpeg 入門(5):視頻同步 | www.samirchen.com][2] 視頻如何同步 在之...
    SamirChen閱讀 2,785評(píng)論 0 5
  • 本文主要介紹在用FFmpeg進(jìn)行視頻相關(guān)開發(fā)時(shí)涉及到的一些視頻基本概念。 一悬包、視頻幀 在H264協(xié)議里衙猪,圖像以組(...
    一葉知秋0830閱讀 1,311評(píng)論 0 0