本篇文件主要分析 音視頻文件 是怎么產(chǎn)生的 , 以及 音視頻文件是如何播放的 ;
一、視頻采集處理流程
視頻文件從錄像到生成文件的全過程 :
采集圖像幀 : 攝像頭 硬件 負(fù)責(zé) 采集畫面 , 采集的 初始畫面 稱為 " 圖像幀 " , 一秒鐘 采集 的 圖像幀 數(shù)量 稱為 " 幀率 " , 如 : 60 幀 就是 一秒鐘采集 60 個畫面的 圖像幀 ;
- 采樣時需要一個 同步時鐘信息 , 記錄當(dāng)前采樣的時間 , 這是復(fù)用和解復(fù)用時進(jìn)行時鐘同步的重要依據(jù) ;
- 每幀圖像幀數(shù)據(jù)都要打上一個時間戳 ;
- 圖像幀 和 音頻采樣幀 使用的是 相同的時鐘源 , 這樣借助該時鐘可以進(jìn)行 音視頻同步 操作 ;
圖像處理 : 如果想要 對視頻畫面進(jìn)行修改 , 如 : 添加濾鏡 , 調(diào)亮畫面 , 增加字幕等 , 可以針對 " 圖像幀 " 進(jìn)行修改 , 修改的過程就是 " 圖像處理 " ;
圖像幀隊(duì)列 : 將 處理完畢 的 圖像幀 , 放到一個 " 圖像幀隊(duì)列 ( Frame Queue ) " 中 , 等待 視頻編碼 ;
視頻編碼 : 在 圖像幀隊(duì)列 ( Frame Queue ) 中的視頻畫面 , 體積非常大 , 1 分鐘可能達(dá)到 1GB 大小 , 視頻的畫面必須要進(jìn)行 壓縮編碼 ;
視頻包隊(duì)列 : 將 圖像幀 編碼 后 , 放到 視頻包 中 , 然后 將若干 視頻包 放到 " 視頻包隊(duì)列 ( Packet Queue ) " 中 , 等待封裝 ;
復(fù)用封裝 : 使用 復(fù)用器 將 視頻包隊(duì)列 和 音頻包隊(duì)列 封裝在一起 , 得到 一個 包含 音頻 和 視頻 的 文件 ;
- 音頻和視頻 按照一定的規(guī)則 封裝到 文件中 , 播放時再按照相同的規(guī)則反向解析 , 解析出原始的音視頻數(shù)據(jù)進(jìn)行播放 ;
視頻采樣編碼封裝 的過程 是下圖 紅色矩形框內(nèi)的過程 :
二、音頻采集處理流程
音頻文件從錄音到生成文件的全過程 :
采集音頻幀 : 麥克風(fēng) 硬件 負(fù)責(zé) 采集音頻 , 采集的 初始音頻 稱為 " 采樣 " , 一秒鐘 采集 的 采樣 數(shù)量 稱為 " 采樣率 " , 如 : 44100Hz 采樣率 就是 一秒鐘采集了 44100 個采樣點(diǎn) ; 采樣幀 一般一幀封裝若干采樣點(diǎn) , 如 10 毫秒的采樣點(diǎn) 也就是 441 個采樣 作為一幀數(shù)據(jù) ;
- 采樣時需要一個 同步時鐘信息 , 記錄當(dāng)前采樣的時間 , 這是復(fù)用和解復(fù)用時進(jìn)行時鐘同步的重要依據(jù) ;
- 每幀 采樣幀數(shù)據(jù)都要打上一個時間戳 ;
- 圖像幀 和 音頻采樣幀 使用的是相同的時鐘源 , 這樣借助該時鐘可以進(jìn)行 音視頻同步 操作 ;
音頻處理 : 如果想要 對音頻聲音進(jìn)行修改 , 如 : 變聲 , 增加混響音效 , 噪聲處理 等 , 可以針對 " 音頻幀 " 進(jìn)行修改 , 修改的過程就是 " 音頻處理 " ;
采樣幀隊(duì)列 : 將 處理完畢 的 采樣幀 , 放到一個 " 采樣幀隊(duì)列 ( Frame Queue ) " 中 , 等待 音頻編碼 ;
視頻編碼 : 在 采樣幀隊(duì)列 ( Frame Queue ) 中的 PCM 原始音頻數(shù)據(jù) , 體積非常大 , PCM 就是 WAV 格式的音頻 , 沒有經(jīng)過任何壓縮 , 音頻必須要進(jìn)行編碼 , 編碼為 mp3 或 ogg 格式 , 能壓縮 10 倍的大小 ;
- 1 秒鐘有 44100 個采樣 , 雙通道立體聲 , 每個采樣 16 位 , 則 1 分鐘的音頻有 1 × 60 × 44100 × 2 × 2 1 \times 60 \times 44100 \times 2 \times 2 1×60×44100×2×2 字節(jié)大小 ;
音頻包隊(duì)列 : 將 采樣幀 編碼 后 , 放到 音頻包 中 , 然后將若干 音頻包 放到 " 音頻包隊(duì)列 ( Packet Queue ) " 中 , 等待封裝 ;
復(fù)用封裝 : 使用 復(fù)用器 將 視頻包隊(duì)列 和 音頻包隊(duì)列 封裝在一起 , 得到 一個包含 音頻 和 視頻 的 文件 ;
- 音頻和視頻 按照一定的規(guī)則 封裝到 文件中 , 播放時再按照相同的規(guī)則反向解析 , 解析出原始的音視頻數(shù)據(jù)進(jìn)行播放 ;
音頻采樣編碼封裝 的過程 是下圖 紅色矩形框內(nèi)的過程 :
三、音視頻文件解封裝播放流程
拿到 音視頻 文件后 , 播放該文件 , 需要經(jīng)過以下步驟才能播放出來 :
解復(fù)用 : 復(fù)用 是 將 音頻包隊(duì)列 ( Packet Queue ) 和 視頻包隊(duì)列 ( Packet Queue ) 封裝為一個 音視頻文件 , purple解復(fù)用是 復(fù)用 的 逆向過程 , 就是將 音視頻文件 解封裝為 音頻包隊(duì)列 ( Packet Queue ) 和 視頻包隊(duì)列 ( Packet Queue ) ;
解碼操作 : 與上一個章節(jié) 編碼 操作相對應(yīng) , 是 編碼 的 逆向過程 ;
- 音頻解碼 : 音頻包隊(duì)列 ( Packet Queue ) 通過 音頻解碼 , 解碼為 采樣幀隊(duì)列 Frame Queue ;
- 視頻解碼 : 視頻包隊(duì)列 ( Packet Queue ) 通過 視頻解碼 , 解碼為 視頻幀隊(duì)列 Frame Queue ;
音視頻同步 : 解碼后的 采樣幀隊(duì)列 和 視頻幀隊(duì)列 , 需要 根據(jù)每一幀的 時鐘信息 , 進(jìn)行 音視頻同步操作 ;
音視頻處理 :
- 音頻處理 : 對 解碼后的 采樣幀 添加效果 , 如 : 混響 , 重低音 , 除噪音 , 變聲 , 變調(diào) , 變速 等效果 ;
- 視頻處理 : 對 解碼后的 視頻幀 添加效果 , 如 : 美顏 , 濾鏡 , 亮度 , 字幕 等效果 ;
音視頻播放 :文章來源:http://www.zghlxwxcb.cn/news/detail-667481.html
- 處理后的音頻 送到 揚(yáng)聲器 / 耳機(jī) 等設(shè)備中進(jìn)行播放 ;
- 處理后的視頻 送到 顯示器 設(shè)備中播放 ;
文章來源地址http://www.zghlxwxcb.cn/news/detail-667481.html
到了這里,關(guān)于【音視頻原理】音視頻 “ 采樣 - 編碼 - 封裝 過程 “ 和 “ 解封裝 - 解碼 - 播放 過程 “ 分析 ( 視頻采集處理流程 | 音頻采集處理流程 | 音視頻文件解封裝播放流程 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!