簡體   English   中英

mpeg 2 解碼

[英]mpeg 2 decoding

我想了解視頻和音頻解碼的工作原理,特別是時序同步(如何獲得 30fps 視頻,如何將其與音頻結合等)。 我不想知道所有的細節,只想知道它的本質。 我希望能夠編寫實際視頻/音頻解碼器的高級簡化。

你能給我指點迷津嗎? MPEG2 視頻/音頻解碼器的實際 C/C++ 源代碼將是理解我認為的那些東西的最快方法。

從有效的編解碼器中讀取源代碼似乎是正確的方法。 我建議如下:

http://www.mpeg.org/MPEG/video/mssg-free-mpeg-software.html

鑒於在 mpeg.org 網站上提到了它,我想說你會在這里找到你需要的東西。

在過去,我有一些時間來解碼 mpeg 視頻(雖然沒有音頻),而且原理非常簡單。 其中包括一些純圖像,一些中間圖像相對於最接近的主圖像進行描述,其余的使用最接近的主/中間圖像進行描述。

一個時間段,一張圖片。 但是最近的編解碼器要復雜得多,我猜!

編輯:同步

我不是同步音頻和視頻的專家,但這個問題似乎是使用同步層來處理的(參見那里的定義)。

對於音頻/視頻同步,基本上,每個視頻和音頻幀都應該有時間戳。 時間戳通常稱為 PTS(演示時間戳)。 一旦一個視頻/音頻被一個解碼器解碼,音頻/視頻渲染器應該安排在正確的時間顯示的幀,以便音頻/視頻同步。

我想你可以參考MPEG2教程的時序模型”一章了解詳細信息。

您可以瀏覽ffmpeg 的源代碼(可通過 svn 獲得)或其API 文檔

根據您對 MPEG-2 格式的了解程度,您可能希望先閱讀一篇有關它的文章,以獲得廣泛的概述。 我的意思是這樣的:

MPEG-2 標准初學者指南

MPEG-2 視頻壓縮

@帕特里克和尼爾斯

所以你說有時間戳,嘿...這些只是我猜的視頻部分。 對於音頻,我猜標題中有足夠的信息(例如“每秒樣本數”)。 多久需要這些時間戳? 我想音頻和視頻數據包的交錯可以確保視頻數據總是在音頻數據之前?

編輯:找到我需要的: http : //www.dranger.com/ffmpeg/tutorial01.html

海通,

音頻數據的時間戳仍然是必要的,因為音頻和視頻幀可能不在同一位置對齊。 例如:

V:1000 1040 1080 1120 ... A:990 1013 1036(丟失)1082

您可能需要補償第一個視頻/音頻幀之間的偏移。 此外,如果可能存在丟包(在視頻流期間),您需要視頻/音頻的時間戳以保持准確同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM