2014-02-20 1 views
2

FFMPEG의 디코더 (HEVC)를 Android의 Stagefright에 통합하는 새로운 작업이 있습니다. 이렇게하려면 먼저 OMX 구성 요소를 만들어야합니다. 다음으로 내 코덱을 media_codecs.xml에 등록한 다음 구성 요소 등록을 OMXCore에 등록해야합니다.Android : 비디오 디코더 용 OMX 구성 요소 만들기

비디오 디코더 용으로 OMX 구성 요소를 만들려면 가이드가 있습니까? 둘째,이 디코더는 기본 스트림 (.bin 또는 .h265 파일) 만 재생하므로 여기에 컨테이너 형식이 없습니다.

비디오 코덱에 대해 OMX 구성 요소를 만드는 동안 따라야 할 단계 나 지침을 제공 할 수있는 사람이 누구나 있습니다. 어떤 종류의 포인터 나 정말 도움이 될 것입니다.

미리 감사드립니다.

답변

2

일반적으로 OMX 코어에 디코더를 통합하는 경우 steps pointed in this question을 따라갈 수 있습니다.

HEVC은 아직 OMXIL 사양의 일부가 아닙니다. 따라서 media_codecs.xml에 등록하는 동안 구성 요소에 video_decoder.hevc과 같은 새 role을 입력해야합니다. 귀하의 OMX 코어가이 새로운 role을 지원할 수 있는지 확인하십시오.

기본 스트림 만 재생하려고하는 경우 stagefright command line utility을 수정하여 기본 스트림 데이터를 읽고 해당 디코더에 공급할 수 있습니다.

또 다른 옵션은 현재 recordVideo utility을 수정하여 프레임 데이터를 읽고 encoder 대신 decoder을 생성하는 것입니다. 이것들과 함께, 당신은 커맨드 라인에서 디코더를 재생할 수 있어야한다고 생각합니다.

편집 : 새 OMX 구성 요소를 구축하고자하는 경우, 나는 당신이 OMX 구성 요소를 구축하는 방법에 대한 좋은 정보를 제공한다 Bellagio Component Writers Guide를 참조 할 수 있음을 추천 할 것입니다. 이것은 새로운 컴포넌트를 빌드하는 포괄적 인 가이드를 제공합니다. Bellagio 구현 및 핵심 구현과의 종속성을 식별 할 수 있는지 확인하십시오.

또한, 여기에 같은 다른 공개 OMX 구현 볼 수 있습니다 : http://androidxref.com/4.4.2_r1/xref/hardware/ti/omap4xxx/domx/ http://androidxref.com/4.4.2_r1/xref/hardware/qcom/media/mm-video-v4l2/vidc/

내가 이전에 OMX 구성 요소를 구축하지 않은 경우 벨라지오 좋은 시작 기준으로 일할 수있는 생각합니다. Bellagio의 출처는 Sourceforge입니다.

+0

답해 주셔서 감사합니다. 위의 링크에서 주어진 단계는 omx 구성 요소를 등록하거나 omx 구성 요소를 등록하는 두 가지 쿼리가 있습니다. 둘째, 나는 stagefright 명령 줄 유틸리티를 사용할 수 있다고 생각하지만 그런 식으로 통합하면 갤러리에서 비디오가 재생됩니까? – Zax

+1

@Zax .. 설명 된 단계는 OMX 컴포넌트의 등록과 통합을위한 것입니다. 나는 당신이 이미 OMX 컴포넌트를 가지고 있다고 가정하고, 따라서 나는 대답하지 않는다. 갤러리 밖에서 비디오를 바로 재생하려면 입력이 단순한 스트림이므로 많은 변경이 필요합니다. 이 파일을 위해 특별히 MediaExtractor를 만들어야합니다.이 파일은 통합되고 등록되어야합니다. 갤러리에서 파일을 재생할 수있게하려면 많은 것들이 있어야합니다. – Ganesh

+0

설명해 주셔서 감사합니다. 미디어 추출기 나는 ffmpeg에서 hevc_parser를 사용할 수 있다고 생각합니다. 아니, 나는 OMX 구성 요소가 없다. 실제로 그것은 "비디오 디코더 용 OMX 구성 요소 만들기"에 관한 질문 일뿐입니다. 특히 아직 지원되지 않는 것은 아닙니다. 이에 관한 몇 가지 조언을 해주십시오. – Zax