후 완전 삽펐다.
업무시간 7시간을 날렸다..
onPreviewFrame에서 넘어온 데이터를 미디어 코덱에 넣고 인코딩 돼서 나온 데이터 크기가 20만이 넘었다.
즉, bufferinfo size가 20만이 넘은 것이다.
물론 중간에 한 번씩 20만 넘는 사이즈로 튀는건 괜찮은데 계속 20만 이었다가 중간에 한 번씩 80만으로 튀는 현상이 발생했다......
mMediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 2000000);
위 코드에서 비트레이트 값을 아무리 바꿔봐도 1도 적용이 안돼보였다...
위 그림에서 sum * 8 값이 계산된 비트레이트 값인데 약 60메가가 나온다.
해결 방법은 간단하다.
mMediaFormat.setInteger(MediaFormat.KEY_BITRATE_MODE, MediaCodecInfo.EncoderCapabilities.BITRATE_MODE_CBR);
한 줄 추가해줬더니 사이즈가 확 줄면서 비트레이트도 정상적으로 약 2-3메가 정도로 줄었다.
혹시 나와 같은 현상이 있는 분들이 계시다면... 이 게시글을 보시고 저처럼 삽 푸지 마시길..
320x100
'프로그래밍 > Android-Java' 카테고리의 다른 글
[ANDROID] JNI Error:(150) undefined reference to '함수이름' (0) | 2022.01.09 |
---|---|
[ANDROID] JNI (c++) 에서 JAVA 함수 콜하기 (0) | 2022.01.07 |
[ANDROID] onvif ptz (0) | 2021.12.21 |
[ANDROID] ONVIF 라이브러리 (0) | 2021.12.16 |
[FFMPEG/VLC] TCP 스트리밍 방법 (Live555 기준) (0) | 2021.11.01 |
댓글