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; }