2013-02-25 3 views
2

IOMX를 사용하여 IOMX를 사용하여 지원되는 모든 코덱을 나열하려고 시도했습니다. here 미디어 플레이어 서비스 . 내 코드가 작동하고 구성 요소 목록을 가져옵니다. 그러나 엔코더 구성 요소가 없다는 것을 관찰했습니다. 모든 디코더 구성 요소 만 나열되었습니다. 그럼 안드로이드 제공 inbuilt 카메라 응용 프로그램에 가서 mp4 파일 형식으로 저장된 비디오 녹화 시작했다. VLC 플레이어에서 mp4 파일의 코덱 정보를 확인할 때 "H264 mpeg4 part10 avc"라고 표시됩니다. 그래서 여기에 나의 의심이 온다. h264/avc 인코딩에 대해 나열된 구성 요소가없는 경우 어떻게 안드로이드가 h264 형식으로 프레임을 인코딩 할 수 있습니까?IOMX를 사용하여 구성 요소 이름과 모델을 나열하는 동안 엔코더가 없습니다.하지만 안드로이드는 H264 인코딩 프레임이있는 .mp4 파일을 기록 할 수 있습니다.

제안 사항? 감사합니다. .

답변

0

안드로이드 배포에는 일반적으로 "일반 바닐라 코덱"이라고하는 Google에서 번들로 제공하는 코덱 제품군이 있습니다. H.264의 경우에는 출처가 frameworks/av/media/libstagefright/codecs/avc/enc/ 인 인코더가 번들로 제공됩니다. 따라서 카메라에서 인코딩 할 때이 기본 코덱을 사용하여 프레임을 인코딩합니다. 이를 확인하려면 로그를 OMXCodec 또는 ACodec으로 설정하고 인코더 구성 요소의 이름이 OMX.google.h264.encoder인지 확인하십시오.

코덱의 전체 목록은 frameworks/av/media/libstagefright/omx/ 내가 IOMX를 사용 OMX.google.h264.encoder에 액세스 할 수

+0

에서 SoftOMXPlugin.cpp에서 사용할 수 있습니까? – sam18

+0

예, 가능해야합니다. Stagefright 관점에서, 소프트웨어 기반의 단순한 바닐라 구성 요소는 사용자 통합 구성 요소와 유사합니다. – Ganesh

+0

미디어 작업 및 구성 요소 목록을 위해 미디어 플레이어 서비스에서 IOMX와 비교하여 libstagefright를 선택하는 것이 더 낫다고 제안 하시겠습니까? – sam18