用JM解碼264檔案,顯示錯誤,好像是因為第一幀不是I幀;
現在嘗試在讀取檔案的時候修改檔案流的指標,指向第一個I幀,但是不知道怎么操作。
uj5u.com熱心網友回復:
不是i幀不能接,繼續收,收到I幀子開始接,之前的刪掉uj5u.com熱心網友回復:
不是I幀在只能丟掉,一直到I幀為止uj5u.com熱心網友回復:
H264標準已經規定,第一幀必須是IDR幀,如果不是著不符合標準。所以,必須尋找IDR幀。uj5u.com熱心網友回復:
挨個位元組向下尋找,根據H264的標準,每幀起始為00000001或者000001,找到每幀開頭后,在判斷后面的NAL型別,IDR幀的值為5,可以參考這個文章,講的很清楚;http://blog.csdn.net/jefry_xdz/article/details/8461343uj5u.com熱心網友回復:
根據H264的NAL頭知道是不是帶pps,sps的主要幀,不是的話丟棄,如果是的開始解碼.可以參考樓上提供的網站.uj5u.com熱心網友回復:
接受到的資料如果不是I幀,是不能進行播放的,常見的解決辦法是丟棄該幀資料,繼續接受,直到接收到I幀為止。uj5u.com熱心網友回復:
繼續等待,直到等到I幀才去解碼的uj5u.com熱心網友回復:
不是I幀不能用丟掉就行了uj5u.com熱心網友回復:
接收碼流后先判斷幀型別,若不是I幀,丟棄,直到第一幀是I幀再開始接收。uj5u.com熱心網友回復:
把它丟掉就可以了uj5u.com熱心網友回復:
解碼的順序 以h264為例子:sps->pps->I->B/P;基本上每一個I幀前都會帶有sps、pps 的NALU;所以感覺你這解碼不能單純的以I幀為開始,因為每一個slice都會依賴一個pps,而每個pps都會關聯一個sps;同時非I幀解碼,由于涉及到幀間預測,這個單獨的P/B幀肯定無法還原為一個完整影像;轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/95026.html
標籤:多媒體/流媒體開發
下一篇:求助Spark
