音視頻基礎(chǔ)概念

音視頻之所以叫音視頻是因?yàn)樗梢纛l和視頻構(gòu)成,我們平時(shí)看的視頻其實(shí)就是音視頻。本文將記錄筆者在學(xué)習(xí)音視頻遇到的概念,如果你和筆者一樣對(duì)音視頻并沒(méi)有接觸太多,那么下面的筆記將會(huì)幫你認(rèn)識(shí)音視頻。

音頻

聲波

  • 頻率:頻率代表音階的高低
    • 頻率(Hz)越高,波長(zhǎng)越短
    • 頻率越低,波長(zhǎng)越長(zhǎng)
    • 波長(zhǎng)越長(zhǎng),聲音更容易繞過(guò)障礙物,傳得越遠(yuǎn)
  • 振幅:振幅代表響度,響度就是能量大小的反應(yīng)
    • 分貝(dB)是描述響度大小(聲音強(qiáng)度)的單位
    • 分貝是無(wú)量綱,指兩個(gè)相同的物理量A1(被量度量)和A0(基準(zhǔn)量或參考量)之比取以10為底的對(duì)數(shù)并乘以10(或20),即N=10*lg(A1/A0)
  • 波形:波形代表音色
    • 音色不同的情況下,在同樣的音調(diào)(頻率)和響度(振幅)下聲音也是不同
  • 聲壓:聲波通過(guò)媒質(zhì)時(shí),由振動(dòng)所產(chǎn)生的壓強(qiáng)改變量
    • 聲壓的衡量單位是帕斯卡(Pa)
  • 聲壓級(jí):指以對(duì)數(shù)尺衡量有效聲壓相對(duì)于一個(gè)基準(zhǔn)值的大小
    • 分貝(dB)描述聲壓值與基準(zhǔn)值的關(guān)系,變化范圍大,可以達(dá)到六個(gè)數(shù)量級(jí)以上
    • 在聲壓級(jí)較低時(shí),聽覺(jué)的頻率特性會(huì)很不均勻
    • 在聲壓級(jí)較高時(shí),聽覺(jué)的頻率特性會(huì)變得較為均勻

人耳

  • 能聽到的頻率范圍:20Hz ~ 20kHz
  • 較敏感頻率范圍:3 ~ 4kHz
  • 頻率較寬的音樂(lè)聲壓:80 ~ 90dB 為最佳,超過(guò) 90dB 將會(huì)損害人耳
  • 人耳極限:105dB
  • 兩種聲音傳到我們耳朵的時(shí)差小于80ms,我們就無(wú)法區(qū)分兩種聲音

數(shù)字音頻

為了將音頻信號(hào)數(shù)字化,需要進(jìn)行采樣量化編碼三個(gè)步驟。

  • 采樣:采樣是在時(shí)間軸上對(duì)信號(hào)進(jìn)行數(shù)字化。根據(jù)奈奎斯特定理(也稱采樣定理),按比聲音最高頻率2倍以上的頻率對(duì)聲音進(jìn)行采樣(也稱為AD轉(zhuǎn)換)
    • 采樣頻率(采樣率):表示一秒中采樣的次數(shù),采樣率一般為44.1kHz
  • 量化:量化是指在幅度軸上對(duì)信號(hào)進(jìn)行數(shù)字化,比如用 16 比特的二進(jìn)制信號(hào)來(lái)表示聲音的一個(gè)采集,而16 比特(一個(gè)short)所表示的范圍是[-32768, 32767],共有 65536 個(gè)可能取值,因此最終的音頻信號(hào)在幅度上也分為 65535 層
  • 編碼:按照一定的格式記錄采樣和量化的數(shù)字?jǐn)?shù)據(jù)

描述概念

  • 量化格式(sampleFormat):也叫位深度,是音頻采樣一次所需要的容量
    • 單位:bit、byte
    • 1byte = 8bit
  • 采樣率(sampleRate):
    • 單位:Hz、kHz
    • 1kHz = 1000Hz
  • 聲道數(shù)(channel)
  • 比特率(碼率)(bit rate):1秒時(shí)間內(nèi)的比特?cái)?shù)目,用于衡量音頻數(shù)據(jù)單位時(shí)間內(nèi)的容量大小。比特率越高,存儲(chǔ)越大,聲音細(xì)節(jié)越精確
    • 單位:bps、kbps
    • 比特率(bps) = 采樣率(Hz) * 位深度(bit) * 聲道數(shù)
    • 1kbps = 1024bps
    • 低碼率(low \leq48 Kbps
    • 中碼率(48 Kbps < mid < 128 Kbps
    • 高碼率(high \geq128 Kbps
音質(zhì) 量化格式(位深) 采樣率 聲道數(shù) 比特率 存儲(chǔ)空間(1分鐘)
CD 音質(zhì) 16比特(2 字節(jié)) 44100Hz 2 1378.125kbps 10.09MB

音頻編碼

PCM 即音頻裸數(shù)據(jù)量大,存在本地稍微可以接受,但是要在網(wǎng)絡(luò)中實(shí)時(shí)在線傳播的話就太大了,因此就有了音頻壓縮編碼的存在。壓縮編碼實(shí)際上就是壓縮冗余信號(hào),冗余信號(hào)指的是人耳聽不到的音頻信號(hào)(20Hz ~ 20kHz范圍以外)。

常見概念

  • 壓縮比:通常小于1
  • 無(wú)損壓縮:解壓后數(shù)據(jù)可以完全復(fù)原
  • 有損壓縮:解壓后數(shù)據(jù)不能完全復(fù)原,壓縮比越小,丟失信息越多,信號(hào)還原后的失真就會(huì)越大

PCM 編碼

PCM(Pulse Code Modulation,脈沖編碼調(diào)制)是無(wú)損編碼,也是音頻裸數(shù)據(jù),能夠達(dá)到最大程度的高保真。
優(yōu)點(diǎn):音源信息保存完整,音質(zhì)好
缺點(diǎn):信息量大,體積大,冗余度過(guò)大
適用場(chǎng)合:廣泛用于素材保存及音樂(lè)欣賞

WAV 編碼

WAV(Waveform Audio File Format)是一種不會(huì)進(jìn)行壓縮操作的編碼,他在 PCM 數(shù)據(jù)格式的前面加上了44字節(jié),分別用來(lái)描述 PCM 的采樣率、聲道數(shù)、數(shù)據(jù)格式等信息。
優(yōu)點(diǎn):音質(zhì)非常好,大量軟件都支持
缺點(diǎn):信息量大,體積大,冗余度過(guò)大
適用場(chǎng)合:多媒體開發(fā)的中間文件、保存音樂(lè)和音效素材

MP3 編碼

MP3 具有不錯(cuò)的壓縮比,使用 LAME 編碼的中高碼率的 MP3 文件,聽感上非常接近 WAV 文件。
優(yōu)點(diǎn):音質(zhì)在 128 Kbps 以上表現(xiàn)還不錯(cuò),壓縮比比較高,兼容性高
缺點(diǎn):在 128 Kbps 及以下時(shí),會(huì)出現(xiàn)明顯的高頻丟失
適用場(chǎng)合:高比特率下對(duì)兼容性有要求的音樂(lè)欣賞

AAC 編碼

AAC 是新一代的音頻有損壓縮技術(shù),它通過(guò)一些附加的編碼技術(shù)(比如PS、SBR等),衍生出了 LC-AAC、HE-AAC、HE-AAC v2 三種主要的編碼格式:

  • LC-AAC:主要應(yīng)用于中高碼率場(chǎng)景的編碼(\geq80 Kbps
  • HE-AAC:(相當(dāng)于AAC+SBR)主要應(yīng)用于中低碼率場(chǎng)景的編碼(\leq80 Kbps)
  • HE-AAC v2:(相當(dāng)于AAC+SBR+PS)主要應(yīng)用于低碼率場(chǎng)景的編碼(\leq48 Kbps)
    • 事實(shí)上大部分編碼器都設(shè)置\leq48 Kbps自動(dòng)啟動(dòng) PS 技術(shù),而>48Kbps則不加 PS ,相當(dāng)于普通的 HE-AAC

優(yōu)點(diǎn):在小于 128 Kbps 的碼率下表現(xiàn)優(yōu)異,支持多種音頻聲道組合,提供優(yōu)質(zhì)的音質(zhì)
適用場(chǎng)合:128 Kbps 以下的音頻編碼,多用于視頻中的音頻軌的編碼

SBR:一種音頻編碼增強(qiáng)算法,可在中低碼率下增加音頻的帶寬或改善編碼效率,但是在高碼率中沒(méi)什么作用。

Ogg 編碼

Ogg 在各種碼率下大豆油比較優(yōu)秀的表現(xiàn),尤其在中低碼率場(chǎng)景下。可以用更小的碼率達(dá)到更好的音質(zhì),128 Kbps 的 Ogg 比 192 Kbps 甚至更高碼率的 MP3 還要出色。但是它的兼容性不是很好,因此和 MP3 無(wú)法相提并論。
優(yōu)點(diǎn):可用比 MP3 個(gè)更小的碼率實(shí)現(xiàn)比 MP3 更好的音質(zhì),高低中碼率下均有良好的表現(xiàn)
缺點(diǎn):軟件硬件的兼容性不好
使用場(chǎng)合:語(yǔ)音聊天的音頻消息場(chǎng)景

圖像

一幅幅圖像是由一個(gè)個(gè)像素點(diǎn)組成的,每個(gè)像素點(diǎn)都由3個(gè)子像素點(diǎn)組成。

分辨率

像素點(diǎn)的數(shù)量就是分辨率,比如一個(gè)屏幕的分辨率是1280 x 720,那么說(shuō)明水平方向有 720 個(gè)像素點(diǎn),垂直方向有 1280 個(gè)像素點(diǎn),因此整個(gè)屏幕就有1280 x 720個(gè)像素點(diǎn)(注:這是不算子像素點(diǎn)的說(shuō)法)。

位圖(Bitmap)

  • 位圖,又稱柵格圖(Raster graphics)或點(diǎn)陣圖,是使用像素陣列(Pixel-array/Dot-matrix點(diǎn)陣)來(lái)表示的圖像。
  • 位圖也可指一種數(shù)據(jù)結(jié)構(gòu),代表了有限域中的稠集(dense set),每一個(gè)元素至少出現(xiàn)一次,沒(méi)有其他的數(shù)據(jù)和元素相關(guān)聯(lián)。

位圖的像素都分配有特定的位置和顏色值。每個(gè)像素的顏色信息由 RGB 組合或者灰度值表示。根據(jù)位深度,可將位圖分為1、4、8、16、24及32位圖像等。每個(gè)像素使用的信息位數(shù)越多,可用的顏色就越多,顏色表現(xiàn)就越逼真,相應(yīng)的數(shù)據(jù)量越大。

位深度:表示一個(gè)位圖所使用的二進(jìn)制數(shù)目,即32 位圖像能表示 2^8 種顏色的彩色圖,1 位圖像就能表示 2 種顏色的黑白圖。

RGB 表示方式

一個(gè)圖像可以由 RGB 組成,這些子像素點(diǎn)的常用表示方式如下:

  • 浮點(diǎn)表示:取值范圍為 0.0 ~ 1.0,比如 OpenGL ES 中的子像素表示。
  • 整數(shù)表示:取值范圍為 0 ~ 255 或者 00 ~ FF,8 bits表示一個(gè)子像素,32 bits 即 4 bytes 就表示一個(gè)像素。
    • RGBA_8888:R、G、B、A 各用 8 bits,一共 32 bits。
    • RGB_565:R 用 6 bits,G 用 6 bits,B 用 5 bits,一共 16 bits 即 2 bytes

那么一張1280 x 720RGBA_8888圖像的大小就是:
1280 * 720 * 4 = 3.156 MB

YUV 表示方式

YUV 主要應(yīng)用于優(yōu)化彩色視頻信號(hào)的傳輸,使其向后兼容老實(shí)黑白電視。與 RGB 視頻型號(hào)傳輸相比,最大的優(yōu)點(diǎn)是占用極少的頻寬

  • Y亮度信號(hào)表示明亮度(Luminance 或 Luma),也稱灰階值
  • U、V色度信號(hào)表示色度(Chrominance 或 Chroma),作用是描述影像的色彩及飽和度,用于指定像素的顏色(YUV也叫YCbCr)
    • 色調(diào):用Cr表示,反映了 RGB 輸入信號(hào)紅色部分與 RGB 信號(hào)亮度值之間的差異
    • 飽和度:用Cb表示,反映了 RGB 輸入信號(hào)藍(lán)色部分與 RGB 信號(hào)亮度值之間的差異

表示方式:YUV 的每個(gè)分量都使用一個(gè)字節(jié)(8位)來(lái)表示,所以取值范圍是 0 ~ 255。
存儲(chǔ)格式

  • planar 平面格式:指先連續(xù)存儲(chǔ)所有像素點(diǎn)的 Y 分量,然后存儲(chǔ) U 分量,最后是 V 分量。
  • packed 打包模式:指每個(gè)像素點(diǎn)的 Y、U、V 分量是連續(xù)交替存儲(chǔ)的。

采樣范式:YUV 圖像的主流采樣方式有如下三種:

YUV 4:4:4 采樣

YUV 4:4:4 采樣,意味著 Y、U、V 三個(gè)分量的采樣比例相同,因此在生成的圖像里,每個(gè)像素的三個(gè)分量信息完整,都是 8 bits,也就是一個(gè)字節(jié)。
如下圖所示(Y 分量用叉表示,UV 分量用圓圈表示):


YUV444

例子:
圖像像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采樣的碼流:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
映射出的像素點(diǎn): [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

這種采樣方式的圖像和 RGB 顏色模型的圖像大小是一樣,并沒(méi)有達(dá)到節(jié)省帶寬的目的,當(dāng)將 RGB 圖像轉(zhuǎn)換為 YUV 圖像時(shí),也是先轉(zhuǎn)換為 YUV 4:4:4 采樣的圖像。

YUV 4:2:2 采樣

YUV 4:2:2 采樣,意味著 UV 分量是 Y 分量采樣的一半,Y 分量和 UV 分量按照 2 : 1 的比例采樣。每采樣過(guò)一個(gè)像素點(diǎn),都會(huì)采樣其 Y 分量,而 U、V 分量就會(huì)間隔一個(gè)采集一個(gè)。如下圖所示(Y 分量用叉表示,UV 分量用圓圈表示):


YUV422

例子:
圖像像素:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
采樣的碼流:Y0 U0 Y1 V1 Y2 U2 Y3 V3
映射出的像素點(diǎn): [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

兩個(gè)圖像共用一個(gè) U、V 分量,因此YUV 4:2:2 采樣的圖像比 RGB 模型圖像節(jié)省了三分之一的存儲(chǔ)空間,在傳輸時(shí)占用的帶寬也會(huì)隨之減少。

YUV 4:2:0 采樣

YUV 4:2:0 采樣,并不是指只采樣 U 分量而不采樣 V 分量。而是指,在每一行掃描時(shí),只掃描一種色度分量(U 或者 V),和 Y 分量按照 2:1 的方式采樣。每采樣過(guò)一個(gè)像素點(diǎn),都會(huì)采樣其 Y 分量,而 U、V 分量就會(huì)間隔一行按照 2 : 1 進(jìn)行采樣。對(duì)于每個(gè)色度分量來(lái)說(shuō),它的水平方向和豎直方向的采樣和 Y 分量相比都是 2:1 。如下圖所示(Y 分量用叉表示,UV 分量用圓圈表示):


YUV420

圖像像素:
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
采樣的碼流:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8
映射出的像素點(diǎn):
[Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7]
[Y5 U0 V5]、[Y6 U0 V6]、[Y7 U2 V7]、[Y8 U2 V8]

四個(gè)圖像共用一個(gè) U、V 分量,因此YUV 4:2:0 采樣的圖像比 RGB 模型圖像節(jié)省了一半的存儲(chǔ)空間,因此它也是比較主流的采樣方式。

RGB 和 YUV 的轉(zhuǎn)化

RGB 到 YUV 的轉(zhuǎn)換,就是將圖像所有像素點(diǎn)的 R、G、B 分量轉(zhuǎn)換到 Y、U、V 分量。對(duì)于顯示器來(lái)說(shuō),它是通過(guò) RGB 模型來(lái)顯示圖像的,而在傳輸圖像數(shù)據(jù)時(shí)又是使用 YUV 模型(可節(jié)省帶寬),因此就有:

  • 采集圖像時(shí):將 RGB 模型轉(zhuǎn)換到 YUV 模型
  • 顯示圖像時(shí):將 YUV 模型轉(zhuǎn)換為 RGB 模型

標(biāo)清電視使用標(biāo)準(zhǔn) BT.601:

$$ \begin{bmatrix}Y \\U \\V\end{bmatrix} = \begin{bmatrix} 0.299 & 0.587 & 0.114 \\ -0.14713 & -0.28886 & 0.436 \\ 0.615 & -0.51499 & -0.10001 \end{bmatrix} \begin{bmatrix}R \\G \\B\end{bmatrix} $$ $$ \begin{bmatrix}R \\G \\B\end{bmatrix} = \begin{bmatrix} 1 & 0 & 1.13983 \\ 1 & -0.39465 & -0.58060 \\ 1 & 2.03211 & 0 \end{bmatrix} \begin{bmatrix}Y \\U \\V\end{bmatrix} $$

高清電視使用標(biāo)準(zhǔn) BT.709:

$$ \begin{bmatrix}Y \\U \\V\end{bmatrix} = \begin{bmatrix} 0.2126 & 0.7152 & 0.0722 \\ -0.09991& -0.33609 & 0.436 \\ 0.615 & -0.55861 & -0.05639 \end{bmatrix} \begin{bmatrix}R \\G \\B\end{bmatrix} $$ $$ \begin{bmatrix}R \\G \\B\end{bmatrix} = \begin{bmatrix} 1 & 0 & 1.28033 \\ 1 & -0.21482 & -0.38059 \\ 1 & 2.12798 & 0 \end{bmatrix} \begin{bmatrix}Y \\U \\V\end{bmatrix} $$

圖片壓縮格式

  • JPEG:JPEG(Joint Photographic Experts Group) 是一種有損壓縮格式,在提供良好的壓縮性能的同時(shí),具有較好的重建質(zhì)量。一般提供壓縮比的選項(xiàng),壓縮比越小,圖片體積就越小,質(zhì)量越也差,編碼時(shí)間也越短,但解碼時(shí)間并沒(méi)有很大的差距。
  • PNG:PNG(Portable Network Graphics) 是無(wú)損壓縮格式,其并不能提供壓縮比的選項(xiàng),其壓縮比是有上限的。
  • BPG:BPG(Better Portable Graphics) 是一個(gè)優(yōu)秀的有損壓縮格式,它能在相同質(zhì)量下比 JPEG 減少 50% 的體積。

視頻

視頻中的每幀都代表著一幅靜止的圖像

視頻編碼

相較于音頻數(shù)據(jù),視屏數(shù)據(jù)有極強(qiáng)的相關(guān)性,也就是說(shuō)有大量的冗余信息,包括空間上的冗余信息和時(shí)間上的冗余信息。

幀間編碼技術(shù) -> 去除時(shí)間上的冗余信息

  • 運(yùn)動(dòng)補(bǔ)償:運(yùn)動(dòng)補(bǔ)償是通過(guò)先前的局部圖像來(lái)預(yù)測(cè)、補(bǔ)償當(dāng)前的局部圖像,他是減少幀序列冗余的有效方法。
  • 運(yùn)動(dòng)表示:不同區(qū)域的圖像需要使用不同的運(yùn)動(dòng)矢量來(lái)描述運(yùn)動(dòng)信息。
  • 運(yùn)動(dòng)估計(jì):運(yùn)動(dòng)估計(jì)是從視頻序列中抽取運(yùn)動(dòng)信息的一整套技術(shù)。

幀內(nèi)編碼技術(shù) -> 去除空間上的冗余信息

MPEG

MPEG 算法是適用于動(dòng)態(tài)視頻的壓縮算法,它除了對(duì)單幅圖像進(jìn)行編碼外,還利用圖像序列中的相關(guān)原則去除冗余,大大提高了視頻的壓縮比。

版本:Mpeg1(?于 VCD)、Mpeg2(?于 DVD)、Mpeg4 AVC(流媒體使?最多)

H.264

ITU-T 制定的 H.261、H.262、H.263、H.264?系列視頻編碼標(biāo)準(zhǔn)是?套單獨(dú)的體系。其中,H.264 集中了以往標(biāo)準(zhǔn)的所有優(yōu)點(diǎn),并吸取了以往標(biāo)準(zhǔn)的經(jīng)驗(yàn),采?的是簡(jiǎn)潔設(shè)計(jì),這使得它? Mpeg4 更容易推?。現(xiàn)在使?最多的就是 H.264 標(biāo)準(zhǔn),H.264 創(chuàng)造了多參考幀多塊類型整數(shù)變換幀內(nèi)預(yù)測(cè)等新的壓縮技術(shù),使?了更精細(xì)的分像素運(yùn)動(dòng)?量(1/4、1/8)和新?代的環(huán)路濾波器,這使得壓縮性能得到??提?,系統(tǒng)也變得更加完善。

編碼概念

IPB 幀

  • I幀:幀內(nèi)編碼幀(intra picture),直接表示完整圖像的一幀。通常為每個(gè)GOP(MPEG所使用的一種視頻壓縮技術(shù))的第一個(gè)幀。
    • 編碼:通過(guò)視頻壓縮算法保存的完整一幀
    • 解碼:通過(guò)視頻壓縮算法解壓成完整的畫面
    • 用途:作為隨機(jī)訪問(wèn)的參考點(diǎn)
    • 意義:去除空間冗余信息
  • P幀:前向預(yù)測(cè)編碼幀(predictive-frame),即預(yù)測(cè)幀,通過(guò)前面的圖像編碼特征來(lái)確定當(dāng)前的圖像幀。
    • 編碼:通過(guò)將圖像序列中前面已編碼幀的時(shí)間冗余信息充分去除來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像。
    • 解碼:需要參考其前面的一個(gè)I幀或者P幀來(lái)解碼成一張完整的視頻畫面
    • 意義:去除時(shí)間冗余信息
  • B幀:雙向預(yù)測(cè)內(nèi)插編碼幀(bi-directional interpolated prediction frame),即雙向預(yù)測(cè)幀,需要通過(guò)前后的圖像編碼來(lái)確定當(dāng)前幀。
    • 編碼:既考慮源圖像序列前面的已編碼幀,又顧及源圖像序列后面的已編碼幀之間的時(shí)間冗余信息,來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像
    • 解碼:需要參考其前一個(gè)I幀或者P幀及其后面的一個(gè)P幀來(lái)生成一張完整的視頻畫面
    • 意義:去除時(shí)間冗余信息

IDR幀:(instantaneous decoding refresh picture)是一個(gè)特殊的I幀,這一幀之后的所有參考幀都只會(huì)參考到這個(gè)IDR幀,而不會(huì)再參考前面的幀。

GOP

GOP(Group Of Picture),表示一組圖片,兩個(gè)I幀之間就形成的一組圖片。通常在為編碼器設(shè)置參數(shù)的時(shí)候,必須要設(shè)置gop_size的值,其代表的是兩個(gè)I幀之間的幀數(shù)目。

PS:提高視頻質(zhì)量技巧:

  • gop_size越大,整個(gè)畫面的質(zhì)量就會(huì)越好
  • 多使用B幀(I的壓縮率是7,P是20,B可以達(dá)到50)可節(jié)省更多的空間保存I幀。這樣就能在相同的碼率下提供更好的畫質(zhì)。

PTS 與 DTS

  • DTS:(Decoding Time Stamp)決定解碼的順序,主要用于視頻的解碼
  • PTS:(Presentation Time Stamp)決定圖像什么時(shí)候顯示給用戶,主要用于在解碼階段進(jìn)行視頻的同步和輸出
GOP&PTS&DTS

PS:在沒(méi)有B幀的情況下,DTS 和 PTS 的輸出順序是一樣的。因?yàn)锽幀打亂了解碼和顯示的順序,所以一旦存在B幀,PTS與DTS勢(shì)必就會(huì)不同。因此需要 DTS 和 PTS 兩種不同的時(shí)間戳。

參考與更多

《音視頻開發(fā)進(jìn)階指南》
一文讀懂 YUV 的采樣與格式
移動(dòng)端圖片格式調(diào)研

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評(píng)論 6 540
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,275評(píng)論 3 428
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,368評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,736評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,919評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,481評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,235評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,427評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,656評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評(píng)論 1 294
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,160評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,380評(píng)論 2 379

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

  • 前言 早在之前就對(duì)音視頻開發(fā)這塊兒比較感興趣,但是一直沒(méi)有下定決心學(xué)習(xí),一個(gè)是覺(jué)得這塊兒很難,二是感覺(jué)自己沒(méi)有時(shí)間...
    CoderP1閱讀 1,338評(píng)論 2 12
  • Android開發(fā)工作兩年,真的是感覺(jué)Android應(yīng)用層開發(fā)沒(méi)什么前景了,于是打算在網(wǎng)絡(luò)安全,智能硬件,音視頻這...
    MzDavid閱讀 1,593評(píng)論 0 3
  • 由于H.264等壓縮算法都是在YUV的顏色空間上進(jìn)行的,所有在進(jìn)行壓縮前,首先要進(jìn)行顏色空間的轉(zhuǎn)換。如果攝像頭采集...
    眷卿三世閱讀 13,629評(píng)論 2 6
  • RGB和YUV 多媒體編程 一、概念 1.什么是RGB? 對(duì)一種顏色進(jìn)行編碼的方法統(tǒng)稱為“顏色空間”或“色域”。用...
    流年易逝_(tái)李閱讀 14,639評(píng)論 0 6
  • 以前,我不太喜歡英語(yǔ)閱讀。開學(xué)將近一個(gè)月,我卻發(fā)現(xiàn)我的英語(yǔ)閱讀水平突然之間突飛猛進(jìn),我覺(jué)得我的心情非常的高興,也開...
    liuxuande閱讀 378評(píng)論 0 0