2016-11-29 3 views
0

안녕하세요, 저는 Android MediaCodec을 사용하여 인코딩하려고합니다. 나는 "grafika"라는 코드를 따르지만, 인코딩 된 비디오는 프레임을 떨어 뜨린다. 입력을 확인하고 모든 프레임이 서로 다르지만 인코딩 출력 비디오에서 프레임 71은 프레임 72와 같고 프레임 99는 프레임 100과 동일합니다. 다른 프레임은 입력 시퀀스와 동일합니다.android mediacodec 인코딩 드롭 프레임

OpenGL ES를 사용하고 인코딩 할 때 표면을 사용합니다. 내 프레임 속도는 30이고, 비트 전송률은 1920 * 1080 * 30이며 Iframe intervel은 1 초입니다.

mediacodec 인코딩에 문제가 있습니까?

답변

0

Surface를 통해 인코더로 프레임을 전송하는 경우 인코더가 올바른 프레젠테이션 시간을 얻지 못할 수 있으므로 각 프레임에 대해 올바른 프레젠테이션 시간을 전달해야 할 수도 있습니다. 즉, MediaCodec에서 출력 버퍼를 가져온 후 출력 버퍼 정보의 presentationTimeUs 값을 수정할 수 있습니다.