Verwenden MediaCodec für H264-streaming

Ich versuche momentan die Verwendung von Android als Skype-Endpunkt. In dieser Phase brauche ich zum codieren von Videos in H. 264 (da es die einzige unterstützte format von Skype) und die Kapseln mit RTP, um die streaming-Arbeit.

Offenbar die MediaRecorder ist nicht sehr geeignet für diese aus verschiedenen Gründen. Einer ist, denn er fügt MP4-oder 3GP-Header, nachdem es fertig ist. Ein anderes ist da um zu reduzieren die Latenz auf ein minimum, hardware-Beschleunigung kann in handliches kommen. Das ist, warum ich mag würde, um die Verwendung der jüngsten low-level-Funktionen für das framework, als MediaCodec, MediaExtractor usw.

Im moment Plane ich auf der Arbeit wie folgt. Die Kamera schreibt Ihre Videos in einen Puffer. Die MediaCodec enkodiert das video mit H264 und schreibt das Ergebnis in einem anderen Puffer. Dieser Puffer ist zu Lesen von einem RTP-encapsulator, was sendet der stream-Daten an den server. Hier ist meine erste Frage: ist dieser plan klingt machbar für Sie?

Nun bin ich bereits fest mit dem ersten Schritt. Da alle Unterlagen im internet zum verwenden der Kamera verwenden der MediaRecorder ich finde keine Möglichkeit zum speichern der raw-Daten in einen Puffer, bevor die Codierung. Ist addCallbackBuffer für diese geeignet? Hat jemand einen link mit einem Beispiel?

Weiter, ich kann nicht finden, eine Menge an Dokumentation über MediaCodec (da es ziemlich neu). Wer hat ein solides tutorial?

Schließlich: alle Empfehlungen auf den RTP-Bibliotheken?

Vielen Dank im Voraus!

InformationsquelleAutor gleerman | 2012-11-15
Schreibe einen Kommentar