Ogg는 로열티 없는 미디어 기술을 개발하는 비영리 단체 Xiph.Org Foundation에서 만든 오픈 컨테이너 포맷입니다. 확장자가 .ogg인 파일은 거의 항상 손실 압축 오디오 코덱인 Vorbis를 담고 있는 Ogg이므로, 보통 Ogg Vorbis라고 함께 부릅니다. 이런 파일은 오픈 소스 소프트웨어, 게임 사운드트랙, 언어·발음 아카이브, 그리고 오디오를 제공하기 위해 별도 라이선스를 원치 않는 사이트 등에서 자주 볼 수 있습니다.
코덱이 포함된 컨테이너
Ogg 자체는 아무 것도 압축하지 않습니다. Ogg는 미디어 스트림을 여러 페이지로 나누어 감싸는 래퍼로, 각 페이지에는 체크섬과 위치 정보가 들어 있어 재생 앱이 데이터를 검증하고, 중간 지점으로 건너뛰고, 끝이 없는 실시간 방송도 따라갈 수 있게 해 줍니다. 하나의 파일 안에 여러 스트림을 섞어 넣을 수 있어, 오디오와 비디오를 함께 담을 수 있습니다. Vorbis 외에도 Ogg는 Opus, FLAC, Speex, 그리고 Theora 비디오 코덱을 담을 수 있으며, 이런 이유로 Xiph는 Vorbis가 아닌 Ogg 오디오에는 .oga 확장자를, 비디오에는 .ogv 확장자를 쓸 것을 권장합니다.
일반적으로 안에 들어 있는 코덱인 Vorbis는 손실형입니다. 파형을 짧은 블록으로 나눈 뒤 주파수로 변환하고, 청취자가 알아차리기 어려운 세부 정보는 버리며, 버려진 정보는 다시 복구되지 않습니다. 태생적으로 가변 비트레이트를 사용해, 음악에 더 많은 데이터가 필요한 구간에는 더 쓰고, 조용한 부분에서는 줄입니다. 또한 각 파일 헤더에 함께 저장되는 코드북에 의존하는데, 이 덕분에 같은 용량에서 MP3와 비교해도 품질이 꽤 잘 유지됩니다.
OGG 파일이 포함하는 메타데이터
Vorbis는 FLAC과 같은 방식인 Vorbis comments를 사용해, 전용 헤더 패킷 안에 태그를 저장합니다. Vorbis comment는 필드 이름, 등호, 값으로 이루어진 단순한 일반 텍스트 형식이라 구조가 매우 유연합니다. 필드 이름은 공식 목록으로 제한되지 않고, 같은 필드를 여러 번 쓸 수 있기 때문에, 세 명의 연주자가 참여한 트랙이라면 ARTIST 줄을 세 번 넣으면 됩니다.
권장되는 필드 이름은 예상 가능한 내용을 포함합니다. TITLE, ARTIST, ALBUM, TRACKNUMBER, DATE, GENRE, DESCRIPTION, COMPOSER, PERFORMER, COPYRIGHT, LICENSE, ORGANIZATION, VERSION, ISRC 등입니다. 표준 필드 중 둘은 설계상 개인정보를 담을 수 있어 짚고 넘어갈 만합니다. LOCATION은 녹음이 이루어진 장소를, CONTACT는 파일 제작자 또는 관련 단체에 연락하는 방법을 위한 것으로, 실제로는 이메일 주소나 개인 웹사이트가 들어가는 경우가 많습니다. 둘 다 자동으로 채워지지는 않지만, 녹음 앱이나 현장 수집 앱에서는 이 필드를 사용하기도 합니다.
표준 이름 외에는, 파일을 거쳐 간 소프트웨어가 덧붙인 필드를 기대하면 됩니다. ENCODER에는 파일을 만든 정확한 프로그램 이름과 버전이 들어가며, 리플레이 게인 측정값, 앨범을 온라인 음악 데이터베이스와 연결하는 식별자, 그리고 사용자가 입력한 어떤 내용이든 담을 수 있는 COMMENT 필드 등이 추가로 있을 수 있습니다. 커버 아트는 여기서는 조금 특이하게, 별도의 구조가 아니라 코멘트 필드 안에 인코딩된 이미지로 저장됩니다. 오래된 파일에는, 이를 잘 몰랐던 태그 프로그램 때문에 앞쪽에 ID3 태그가 붙어 있는 경우도 있습니다. 재생 앱은 이를 무시할 수 있지만, 메타데이터 보고서는 그 내용까지 함께 보여 줄 수 있습니다.
OGG를 사용해야 할 때
Ogg Vorbis는 라이선스가 중요한 경우, 소프트웨어나 게임 안에 오디오를 포함해 배포할 때, 또는 누구에게도 비용을 지불하지 않고 손실 압축 음질을 확보하고 싶을 때 적합한 선택입니다. 브라우저와 데스크톱 플레이어에서는 잘 재생됩니다. 다만 하드웨어 호환성은 약한 편이라, 차량용 오디오, 구형 휴대폰, 일부 휴대용 플레이어는 MP3나 AAC만 인식하는 경우가 많아, 노트북에서는 잘 재생되는 파일이 자동차 대시보드에서는 보이지 않을 수 있습니다. Xiph 계열 안에서는 현재 Opus가 새로운 작업에 권장되는 코덱이며, 같은 Ogg 페이지를 사용해 담기므로, 이런 파일은 .opus 확장자를 씁니다.