一、硬解碼區(qū)別
硬編碼:
用設(shè)備GPU去實(shí)現(xiàn)編解碼,這樣可以減輕CPU的壓力。
軟編碼:
讓CPU來(lái)進(jìn)行編解碼,在c層代碼來(lái)進(jìn)行編解碼,因?yàn)閏/c++有很多好的編解碼庫(kù)。
軟硬編碼對(duì)比:
硬編的好處主要在于速度快,而且系統(tǒng)自帶不需要引入外部的庫(kù),但是特性支持有限,而且硬編的壓縮率一般偏低,而對(duì)于軟編碼來(lái)說(shuō),雖然速度較慢,但是壓縮率比較高,而且支持的H264特性也會(huì)比硬編碼多很多,相對(duì)來(lái)說(shuō)比較可控。硬編碼會(huì)受硬件設(shè)備支持的影響。
2.mediacodec 解碼過(guò)程:
MediaCodec 首先獲取一個(gè)空的輸入緩沖區(qū),填充要編碼或解碼的數(shù)據(jù),再將填充數(shù)據(jù)的輸入緩沖區(qū)送到 MediaCodec 進(jìn)行處理,處理完數(shù)據(jù)后會(huì)釋放這個(gè)填充數(shù)據(jù)的輸入緩沖區(qū),最后獲取已經(jīng)編碼或解碼的輸出緩沖區(qū),使用完畢后釋放輸出緩沖區(qū)。