我目前正在嘗試使用Android作爲Skype端點。在這個階段,我需要將視頻編碼爲H.264(因爲它是Skype支持的唯一格式)並使用RTP進行封裝,以使流媒體工作。使用MediaCodec H264流
顯然MediaRecorder
由於各種原因並不適合這種情況。一種是因爲它在完成後添加了MP4或3GP標頭。另一個原因是爲了將延遲降至最低,硬件加速可能派上用場。這就是爲什麼我想利用框架最近的低水平添加,如MediaCodec
,MediaExtractor
等。
目前,我打算如下工作。相機將其視頻寫入緩衝區。 MediaCodec使用H264編碼視頻並將結果寫入另一個緩衝區。該緩衝區由RTP封裝器讀取,該封裝器將流數據發送到服務器。這是我的第一個問題:這個計劃對你來說聽起來是否可行?
現在我已經陷入了第一步。由於互聯網上有關使用相機的所有文檔都使用了MediaRecorder
,所以在編碼之前我找不到將其原始數據存儲到緩衝區的方法。 addCallbackBuffer適合這個嗎?任何人都有一個例子的鏈接?
接下來,我找不到很多關於MediaCodec的文檔(因爲它相當新)。誰有一個堅實的教程?
最後:關於RTP庫的任何建議?
非常感謝!
我知道這個評論很晚(不知道這是否允許),但現在3年過去了,這仍然是相關的,或者現在有更好的方法來做到這一點嗎? –