2015-01-19 8 views
2

HEVC를 해독하기 위해 Android MediaCodec 클래스를 사용하려고합니다. 이 작업을 수행하는 프로젝트의 예가 있습니까?HEVC 용 Android MediaCodec

은 현재 나는 다음과 디코더를 구성

AMEDIAFORMAT_KEY_MIME: "video/hevc" 
AMEDIAFORMAT_KEY_MAX_HEIGHT: 4320 
AMEDIAFORMAT_KEY_MAX_WIDTH: 8192 
AMEDIAFORMAT_KEY_HEIGHT: 1600 
AMEDIAFORMAT_KEY_WIDTH: 3840 
AMEDIAFORMAT_KEY_FRAME_RATE: 24 
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP: 1 

이 설정을 사용하여, 나는 더 비디오 출력을 얻을 수 없습니다. 나는 또한 각각 csd-0, csd-1csd-2을 VPS, SPS 및 PPS에 설정하려고했지만 운이 없었습니다.

나는 콘솔에서 다음과 같은 오류가 발생하지만 관련이 보장되었습니다

01-19 15:40:36.048: E/OMXNodeInstance(17230): OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed 
01-19 15:40:36.048: E/ACodec(17230): [OMX.google.hevc.decoder] storeMetaDataInBuffers failed w/ err -2147483648 

나는 dequeueOutputBuffer 항상 -1을 반환하는 것으로 나타났습니다. dequeueInputBufferdequeueOutputBuffer에서 가져 오기 전에 queueInputBuffer에 대기중인 인덱스를 반환하는 것으로 나타납니다.

Android에서 HEVC 비디오를 디코딩 할 수있는 사람이 있습니까?

+0

아니요 '예외'입니까? – shkschneider

+0

오류를 추가하기 위해 업데이트되었습니다. logcat에 들어갑니다. – Jack

답변

0

문제는 해상도가있는 것 같습니다. 512x216이 작동하지 않아 위의 증상이 나타나지만 1920x800은 정상적으로 작동합니다. 어떤 해상도가 지원되는지에 대해서는 another question에게 물어 보았습니다.

2

VLC는 적어도 디코더가 테스트를 받았는지 확신 할 수는 없지만 (SW 디코더를 사용하고 있다는 것을 로그 조각에서 볼 수 있습니다.) VLC는 최소한 지원합니다. 내가 아는 한, 당신이 신경 써야 할 유일한 세부 사항은 H264와 마찬가지로 mp4/mkv 형식 대신 패킷을 부록 B 형식 (시작 코드 포함)으로 전달하는 것입니다.

이것에 대한 몇 가지 예는 http://git.videolan.org/?p=vlc.git;a=commitdiff;h=86630a1, http://git.videolan.org/?p=vlc.git;a=commitdiff;h=5e19ce93http://git.videolan.org/?p=vlc.git;a=commitdiff;h=7b79a086입니다.

또한, storeMetaDataInBuffers에 대한 로그 메시지는 관련이 없으며 걱정할 필요가 없습니다. Q12 (http://bigflake.com/mediacodec/ 참조)를 참조하십시오.

+0

감사합니다. vlc 예제를 확인하는 것이 좋습니다. 내 패킷은 이미 부록 B 형식으로되어 있습니다 (각각 0x00000001 또는 0x000001로 시작). 나는 매개 변수 집합이 모두 VLC 코드에서 "csd-0"으로 전달된다는 것을 알아 챘다. 나는 그 시도를했지만 여전히 나는 어떤 결과도 얻지 못하는 같은 문제를 겪고있다. – Jack

0

내 Nexus 7에서 HEVC를 재생하는 MX 플레이어를 살펴볼 수도 있습니다. 그러나 HEVC에 대한 현재 Android 하드웨어 지원이 없으면 HD 콘텐츠 재생이 너무 불안합니다. 640p 이하의 해상도는 정상적으로 작동하지만 CPU 용량이 적은 안드로이드 기기에서는 그렇지 않을 수도 있습니다.

+0

슬프게도 나는 ' MX 플레이어가 오픈 소스라고 생각하지 않습니다 : / – Jack

관련 문제