容器/文件
- 指特定格式的多媒體文件,比如mp4, flv等。
媒體流
- 指事件軸上的一段連續數據,比如一段音頻數據,一段視頻數據,一段字幕數據。
- 可以是壓縮的,也可以是未壓縮的。
數據幀/數據包
- 數據包存儲的是編碼后的多媒體數據,一段媒體流是由大量數據包組成的。
- 數據幀存儲的戳編碼前的多媒體數據,幀對應着編解碼器的最小處理單元。
- 編碼前(解碼后)的數據為數據幀,編碼后(解碼前)的數據為數據包。
編解碼器
- 編解碼器的作用是轉換數據包與數據幀,比如libx264,fdk-aac等
音頻
聲波三要素
- 頻率(過零率):音階的高低,頻率越高,波長越短。越容易穿過障礙物,能量衰減月底,傳得更遠。
- 振幅:聲音的響度,反映能量的大小。
- 波形:音色,波的形狀決定了其所能代表的音色,比如鋼琴和小提琴的音色差異。。。
數字音頻
- 采樣:時間軸上對信號進行數字化。
- 量化:幅度軸上對信號進行數字化。
- 編碼:按照一定格式記錄采樣和量化后的數字數據。
PCM描述
PCM(Pulse Code Modulation,脈沖編碼調制)音頻數據是未經壓縮的音頻采樣數據裸流,它是由模擬信號經過采樣、量化、編碼轉換成的標准數字音頻數據。
- 量化格式:表示來聲音的有效范圍,高音與低音的可容忍性,比如8位,16位,32位等
- 采樣率:每秒從連續信號中提取並組成離散信號的采樣個數,比如44100,48000等
采樣率的倒數為采樣周期,采樣間隔,即每個樣本的持續事件44.1kHz 采樣周期為1 / 44100 * 1000 = 0.0226757ms 44.1kHz 單聲道每秒1024個樣本 = 1024 / 44100 * 1000 = 24.219954ms
- 通道個數:表示聲音的立體效果,即錄制時的音源數量或者播放時的揚聲器數量,單聲道(mono),雙聲道(stereo),5.1聲道等
- 比特率(碼率):1s內的數據比特數量,體現來媒體數據的質量,比如44100 x 16 x 2 = 1378.125kbps
2M = 2 * 1024 byte 1Byte = 8bit 2M帶寬的網速 = 2 * 1024 / 8 = 256KB/s
- 整形或浮點型:大多數的pcm數據使用整型標示,對於精度要求較高的場景使用浮點類型標示pcm樣本數據[-1.0, 1.0]
- 幀率:每秒播放樣本的數量,單位為fps(frame per second),比如1024
視頻
- 分辨率:每個方向上的像素數量,分辨率越高,可顯示的點越多,畫面就越精細。比如1920x1080
- 碼率:同樣分辨率下,視頻文件的碼流越大,壓縮比就越小,畫面質量就越高。
1KB/s = 8Kbps
- 幀率:每秒傳輸圖像的數量,表示是實時性的還原度
25fps:每秒顯示25幀數據 => 每幀數據顯示時長為1000 / 25 = 40ms
60fps:每秒顯示60幀數據 => 每幀數據顯示時長為1000 / 60 = 16.667ms
幀率是每秒圖像的數量,分辨率表示每幅圖像的尺寸即像素數量,碼流是經過視頻壓縮后每秒產生的數據量,而壓縮是去掉圖像的空間冗余和視頻的時間冗余,所以,對於靜止的場景,可以用很低的碼流獲得較好的圖像質量,而對於劇烈運動的場景,可能用很高的碼流也達不到好的圖像質量,所以結論是設置幀率表示您要的實時性,設置分辨率是您要看的圖像尺寸大小,而碼率的設置取決於攝像機及場景的情況,通過現場調試,直到取得一個可以接受的圖像質量,就可以確定碼流大小。
一幀就是一副靜止的畫面,連續的幀就形成動畫,如電視圖象等。我們通常說幀數,簡單地說,就是在1秒鍾時間里傳輸的圖片的幀數,也可以理解為圖形處理器每秒鍾能夠刷新幾次,通常用fps(Frames Per Second)表示。每一幀都是靜止的圖象,快速連續地顯示幀便形成了運動的假象。高的幀率可以得到更流暢、更逼真的動畫。每秒鍾幀數 (fps) 愈多,所顯示的動作就會愈流暢。