저만의 언어로 정리할것이기 때문에 오개념이 있을 수 있습니다.
Codec
소리를 디지털 데이터로 바꾸는 인코딩 방식의 약속이다.
G.711처럼 항상 같은 크기로 나오는 고정형 코덱과, Opus처럼 크기가 바뀌는 가변형 코덱이 있다.
전송 방식, 품질, 처리 로직에 직접적인 영향을 준다.
Sampling / Sample Rate
1초 동안 소리를 몇 번 측정할지 정하는 값이다.
값이 클수록 더 세밀한 소리를 표현할 수 있다.
RTP Timestamp와 시간 계산의 기준이 된다.
Segment
한 번에 전송할 샘플 묶음의 크기이다.
보통 ptime 기준으로 계산된다.
RTP 패킷 하나가 담당하는 시간 단위를 의미한다.
Bitrate
1초 동안 전송되는 데이터 양이다.
값이 높을수록 음질은 좋아지지만 트래픽이 증가한다.
가변 코덱에서는 상황에 따라 계속 바뀔 수 있다.
Channel
오디오 채널의 개수이다.
Mono는 1개, Stereo는 2개 채널을 사용한다.
채널 수가 늘어나면 데이터 크기도 증가한다.
RTP Timestamp
RTP 패킷이 재생될 시간 위치를 나타내는 논리적 시계이다.
밀리초가 아니라 샘플 개수를 기준으로 증가한다.
패킷이 담고 있는 샘플 수만큼 증가해야 정상 재생된다.
timestamp로 pacing을 하는데, cbr, vbr을 제대로 지원하려면 인코딩 단위를 segment로 맞춰야한다.
이유 : 가변 크기 변환방식의 경우 인코딩된 데이터 사이즈로 시간을 구할 수 없기 때문.
코덱관련 코딩에 참고한 자료 : https://datatracker.ietf.org/doc/html/rfc7587