로딩
요청 처리 중입니다...

[FFMPEG] AAC 인코딩 / 디코딩

 [FFMPEG] AAC 인코딩 / 디코딩

FFMPEF의 기본 오디오 인코딩 예제에서 AAC 인코딩을 하기 위해서는 약간의 코드 변경이 필합니다. 그 이유는 AAC가 데이터를 float형으로 처리하기 때문이고, -1~1 사이로 정규화 되어 있기 때문입니다. c->sample_fmt = AV_SAMPLE_FMT_S16; 를 c->sample_fmt = AV_SAMPLE_FMT_FLTP; - short형 인풋 데이터를 float 형 -1~1의 범위로 정규화 필요 위와 같이 설정 시, 인코딩은 되나, 디코딩이 되지 않습니다.

그 이유는 AAC 헤더가 붙지 않기 때문입니다.. 따라서 인코딩된 데이터에 추가로 AAC 헤더를 생성해야 합니다.

(AAC 헤더 생성 방법 : https://wiki.multimedia.cx/index.php?title=ADTS) ADTS 방식으로 생성하는 것인데, 이 방식의 헤더를 추가하면 정상적으로 디코딩 되며, 일반 플레이어에서도 잘 재생됩니다.

예제 출처 : FFmpeg/FFmpeg FFmpeg - m...