음악파일 재생에 대해 궁금한 점이 있습니다.
글쓴이: qkrwncks593 / 작성시간: 수, 2014/04/16 - 11:51오후
mp3 , ogg 등 이러한 음악파일을 재생할때 윈도우즈가 제공해주는 네이티브 함수를 통해 음악파일이 재생되는걸로 생각하고 있었는데
파일 포맷마다 저음질 포맷 고음질 포맷 등 뭐 여러가지가 있더라구요 , 저음질 포맷 고음질 포맷으로 구분된다는건 음악재생을 하나의 네이티브 API 로 하는게 아니라던가
무언가의 다른방법으로 재생하는것 같은데 .... 음악파일이 재생되는 원리가 궁금합니다. 어떤 윈도우즈 네이티브 API 가 사용되고 포맷을 나누는 이유
Forums:
음악재생...
mp3, ogg등의 코덱 또는 컨테이너를 쓰는 이유는 대략 두가지.
- 비압축 음성은 크기가 너무 큽니다. CD음질 한곡당 수십 메가바이트 수준. -> 이건 코덱을 쓰는 이유.
- 컨테이너에 다양한 메타데이터를 저장할 수 있습니다. 곡명, 가수, 장르, ... 그리고 동일 컨테이너라면 내부 구조도 같으므로 정형화된 처리가 가능합니다. -> 이건 컨테이너를 쓰는 이유.
저음질 고음질 등으로 나뉘는건 동영상과 마찬가지로 압축률, 출력품질, 차지하는 용량 등과 밀접한 관계가 있습니다. 저전력 저용량 기기에 CD음질 음성을 넣을 이유는 없음을 생각해보시면 됩니다. (멀티미디어 파일처리에는 많은 연산력이 소모됩니다.) 다만, 파일 포맷 자체가 음질과 직접적으로 관련이 있는 건 아닙니다. 어느정도 상관관계는 있지만.. 가령 일반적으로 알려진 무손실 고음질 포맷인 FLAC에 mp3보다 못한 음질을 넣는 것도 못할 이유는 없습니다. 고 비트레이트 고해상도 XVID영상이 저 비트레이트 저해상도 H.264영상보다 뛰어날 수 있는 것과 같습니다. 또한 이런 컨테이너와 코덱들이 전세계적으로 경쟁 관계에 있기 때문에 여러 가지가 존재하는 것이죠. 각자의 장단점을 가지고 말이죠. 물론 장점보다 단점이 두드러진 컨테이너와 코덱들은 이미 많이 도태되기도 했고요. 다만 mp3의 경우는 이제는 장점보다 단점이 많은 코덱이자 컨테이너이지만 선점효과와 점유율을 통해서 아직까지 도태되지 않고 살아남아 있군요.
윈도에서 음악 출력은 크게 두가지 방법으로 이루어집니다.
- 직접 파일을 열고 코덱 라이브러리를 호출해서 디코딩한뒤 사운드 함수를 이용해서 출력하는 방법.
- DirectShow를 이용해서 시스템에 설치된 필터를 가지고 시스템이 알아서 재생하게 하는 방법.
후자의 경우는 윈도 제공 함수만 써서 출력하는 것이 당연히 가능합니다. 다만 시스템에 해당 포맷과 코덱을 지원하는 필터가 설치돼있어야 합니다.
--
댓글 달기