程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> h264 丟包花屏處理的一個想法

h264 丟包花屏處理的一個想法

編輯:C++入門知識

H264視頻在分組網絡中傳輸丟包不可避免,尤其在網絡環境不好時傳輸h264碼流,丟包會導致解碼端花屏,馬賽克嚴重,這方面的前沿技術是 FEC, NACK, 前者是 前向糾錯技術,後者是重傳,二者結合能很好的解決丟包引起的視覺效果,這東西一般小廠家都沒有,如果想丟包時即使讓畫面停頓,也不要花屏,我想的最直接的辦法是:一旦發現丟包,在下一個I幀到來之前,所有過來的包都丟掉,所以一旦發現丟包,做個標記,然後開始判斷收到的rtp包是不是264 i幀, i幀的判斷方法參考:     static bool isH264iFrame(byte[] paket)     {         int RTPHeaderBytes = 0;           int fragment_type = paket[RTPHeaderBytes + 0] & 0x1F;         int nal_type = paket[RTPHeaderBytes + 1] & 0x1F;         int start_bit = paket[RTPHeaderBytes + 1] & 0x80;           if (((fragment_type == 28 || fragment_type == 29) && nal_type == 5 && start_bit == 128) ||  fragment_type == 5 || fragment_type == 7 || fragment_type == 8)         {             return true;         }           return false;    }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved