2015-09-15 58 views
0

在僅包含I幀和P幀的H.264流中,我想知道在丟包的情況下,是否有可能將丟失的P幀內插到「相對容易的方式「。RTP上的H.264:P幀插值

試想:IPPP ...(原創) - > IXPP ...(收)

IPPP ... - > IPX P ...等等...

展望在H.264圖塊中,它看起來並不那麼容易......(例如High-Profile block diagram)。

目前,我正在使用H.264動態有效載荷類型96和97;基線和高視頻配置文件僅用於接收視頻,以防情況有所幫助。

回答

1

如果整個框架丟失,簡短的回答:不,沒有「相對簡單的方法」。即使你採用了每個H264錯誤隱藏技巧,你最終都會得到P幀所指的丟失的像素數據,以及視覺上令人不快的結果。

現在,丟失整個幀非常罕見。如果數據包丟失如此嚴重,恢復的最佳方法是重新傳輸丟失的數據包(如果延遲允許)或者甚至向服務器請求新的I幀(我假設您有可靠的網絡堆棧並帶有反饋循環到服務器)。

要解決數據包丟失問題,更好的辦法是關注彈性和數據冗餘。我強烈推薦在h264和another paper on the same subject中介紹Error resiliency and concealment--它們描述了許多緩解技術,如靈活的宏塊/片段排序和冗餘片段。不幸的是,我無法提供現有實施的鏈接 - 實時視頻流是一個非常狹窄的領域,所有運行積極的研究和開發的公司都保持其實施祕密。

+0

當你指向「整個幀」......你指的是整個P幀?就我而言,當我開發處理RTP數據包的客戶端應用程序時,我認爲我不能從錯誤恢復技術中獲益。他們必須在服務器部分實施......我錯了嗎? – aloplop85

+0

是的,所有的技術都需要客戶端和服務器的支持。那麼它是什麼樣的流?它是否以預定的時間間隔插入I幀? – smirnoff

+0

是的,這個數據流以預定義的時間間隔(例如15 @ 12 FPS,30 @ 25 FPS,等等......)帶有I幀。 – aloplop85