Android bietet eine Möglichkeit, die unterstützten Kodierungsprofile abzufragen. Aber wenn ich einen Encoder einrichte, kann ich das gewünschte Profil nicht finden.Festlegen des AVC/H.264-Profils beim Kodieren von Videos in Android mithilfe der MediaCodec-API
Finding unterstützt Profil/Level Paare
Mit dem MediaCodec
API in Android können Sie getCodecInfo()
rufen, wenn Sie einen Encoder Komponente gewählt haben. Dies gibt ein MediaCodecInfo
Objekt zurück, das Details über die verwendete Codec-Komponente bereitstellt. getCapabilitiesForType()
gibt ein CodecCapabilities
Objekt zurück, das detailliert beschreibt, zu was der Codec fähig ist. Dieser enthält ein Array von CodecProfileLevel, in dem die unterstützten Profile und Ebenen aufgeführt sind, die unterstützt werden.
um das Profil einzustellen Versuch
Ich kann kein Feld finden Sie im Profil für MedieCodec
oder für die MediaFormat
einzustellen.
Es gibt eine KEY_AAC_PROFILE
für MediaFormat
, aber in der Referenz heißt es ausdrücklich, dies ist nur für aac Audio.
In MediaCodec
gibt es eine Möglichkeit, einen Bundle
von zusätzlichen Parametern an den Codec unter Verwendung setParameters()
zu übergeben. Dies sieht so aus, als hätte es keine generische Dokumentation, und die Parameter, die akzeptiert werden, werden zwischen Codecs (verschiedene Geräte) unterschiedlich sein.
Hintergrund
Profile eine Reihe von Codierungsmerkmale angeben, zu verwenden. Einfache Profile sind weniger rechenintensiv, opfern jedoch im Allgemeinen die Qualität für eine gegebene Bitrate. Die Ebenen geben die maximale Auflösung/Bitrate an, die für ein bestimmtes Profil unterstützt wird. Ich habe erwartet, dass die Pegel normalerweise mit der Decodierfähigkeit verbunden sind, aber da es einen Hardware-Encoder beschreibt, der in Echtzeit laufen muss, ist es für mich sinnvoll, eine maximale Einstellung zu haben.
META: (. Ich hatte ursprünglich viel mehr Links zu jeder Klasse + Funktion, die ich erwähnte, aber ich hatte sie zu entfernen, weil ich noch nicht die rep muß mehr als 2 Links posten)
wenn ich Wählen Sie AVCProfileHigh, welches Level soll ich wählen? – dragonfly