2013-02-01 3 views
13

내 응용 프로그램은 HLS를 사용하여 서버에서 비디오를 스트리밍하지만, 서버에서 HLS 스트림을 요청할 때 장치가 처리 할 수있는 최대 비디오 비트율을 전달해야합니다. Android API guides에서 "장치의 사용 가능한 비디오 녹화 프로필을 미디어 재생 기능의 프록시로 사용할 수 있습니다."라고 말하면서 장치 뒷면의 카메라에 대해 videoBitRate를 검색하려고하면 항상 12Mb/s로 되돌아갑니다. 3 개의 다른 GPU (PowerVR SGX540, Mali-400 MP, Tegra 250 T20)를 가지고 있다는 사실에도 불구하고이 장치 (Galaxy Nexus, Galaxy Tab Plus 7 ", Galaxy Tab 8.9)를 사용하고 있습니다.Android 기기 용 CamcorderProfile.videoBitRate를 얻는 방법은 무엇입니까?

CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); 
targetVideoBitRate = camcorderProfile.videoBitRate; 

나는 갤럭시 탭 플러스에 이것을 시도하는 경우 : 그것은 사실에도 불구하고, True를 반환

boolean hasProfile = CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_HIGH); 

그 QUALITY_HIGH 1080p 레코딩 용이며 사양에서는 720p 만 녹화 할 수 있다고합니다.

+6

Android OS로 실행되는 핸드폰은 그와 같은 값을 제공해야합니다. 때때로 브랜드는 그 분야에 임의의 가치를 부여하기도합니다. 카메라 피사체의 시야각을 얻으 려 할 때도 10도와 같은 값을 넣을 때 비슷한 문제가 발생했습니다. 이는 범 위와 일치하지 않습니다. 아마도 같은 문제가있을 것입니다. 그들은 똥을주지 않는다. 그들은 단지 시장에 스마트 폰을두고 프로그래머를 걱정하지 않으려 고합니다 –

답변

7

내 자신의 질문에 대한 답을 찾은 것 같습니다.

documentation을 자세히 읽지 않았으며 QUALITY_HIGH는 1080p와 같지 않습니다. 이는 장치가 지원하는 최고 품질의 프로필을 지정하는 방법 일뿐입니다. 따라서 정의 상으로는 CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_HIGH)이 항상 true입니다. 나는 이런 식으로 뭔가를 작성해야 :

public enum mVideoQuality { 
    FullHD, HD, SD 
} 
mVideoQuality mMaxVideoQuality; 
int mTargetVideoBitRate; 

private void initVideoQuality { 
    if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_1080P)) { 
     mMaxVideoQuality = mVideoQuality.FullHD; 
    } else if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_720P)) { 
     mMaxVideoQuality = mVideoQuality.HD; 
    } else { 
     mMaxVideoQuality = mVideoQuality.SD; 
    } 
    CamcorderProfile cProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH); 
    mTargetVideoBitRate = cProfile.videoBitRate; 
} 

내 장치의 대부분은 아직도 내가 회의적 1080p의 인코딩에 대한 지원을보고있다, 그러나 나는 소니 엑스 페리아의 Tipo (내 로우 엔드 테스트 장치에이 코드를 실행) 그리고 videoBitRate가 720Kb/s 인 480p의 최대 인코딩 품질을보고했습니다.

내가 말했듯이 모든 장치를 신뢰할 수 있는지 확실하지 않지만 720kb/s ~ 17Mb/s의 비디오 비트 전송률과 480p ~ 1080p의 프로필 품질을 보았습니다. 다행히도 다른 사람들이이 정보를 유용하게 사용할 수 있기를 바랍니다.

+0

제 대답을 개선하기위한 제안이 있으시면 의견을 남겨주십시오. –

+0

전체 공개 : adogden과 저는 같은 팀에서 일합니다. 나는이 질문에 현상금을 줘서이 성가신 문제를 해결할 수있게 도와 준다. 아마 adogden이 다시 한 번 보면서이 도움이되는 대답을 쓸 것을 촉구했습니다. 그는 현상금을 벌었고, 대리인을 전출시키지 않고 그에게 수여합니다. –

관련 문제