Ogg

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Ogg는 Xiph.Org 재단에서 개발한 멀티미디어 파일 컨테이너 형식이다. 1993년 "Squish"라는 이름으로 시작하여 "OggSquish"를 거쳐 현재의 "Ogg"로 명칭이 변경되었다. Ogg는 여러 코덱으로 인코딩된 오디오, 비디오 및 텍스트 데이터를 담을 수 있으며, 주로 Vorbis, Theora, Speex, FLAC 등의 Xiph.org 코덱과 함께 사용된다. Ogg 파일은 페이지로 구성되며, 각 페이지는 헤더와 데이터를 포함한다. Ogg는 개방형 표준으로, 다양한 운영체제와 소프트웨어에서 지원된다.

Ogg - [IT 관련 정보]에 관한 문서
기본 정보

이미지 준비중입니다.

Ogg 로고
확장자.ogg, .ogv, .oga, .ogx, .ogm, .spx, .opus
MIME 형식video/ogg, audio/ogg, application/ogg
매직 넘버OggS
소유자Xiph.Org 재단
출시일2003년 5월
최신 버전libogg-1.3.5
최신 버전 출시일2021년 6월 4일
종류컨테이너 포맷
컨테이너 대상Vorbis, Theora, Speex, Opus, FLAC, Dirac, 및 기타
개방 여부
무료 여부
libogg 정보
개발자Xiph.Org 재단
출시일2004년 9월 22일
최신 버전1.3.5
최신 버전 출시일2021년 6월 4일
종류레퍼런스 구현 (멀티플렉서/디멀티플렉서)
라이선스BSD 스타일 라이선스
웹사이트libogg 다운로드
추가 정보
관련 링크Vorbis FAQ
Ogging 101
MIME 타입과 파일 확장자
libogg 1.3.3 릴리스
theora 라이브러리
📚 더 읽어볼만한 페이지
  • 자유 멀티미디어 코덱 - FLAC
    FLAC은 조시 콜슨이 개발한 무손실 오디오 코덱으로, 원본 음질을 유지하면서 파일 크기를 줄이기 위해 오디오 데이터를 압축하며, 4~32비트 샘플 크기, 최대 8 채널을 지원하고, 미국 국립 문서 기록 관리청에서 디지털 오디오에 선호되는 형식으로 지정되었다.
  • 자유 멀티미디어 코덱 - Vorbis
    Vorbis는 Xiph.Org 재단에서 개발한 로열티 없는 자유 소프트웨어 오디오 코덱으로, MP3의 대안으로 개발되어 가변, 평균, 고정 비트레이트를 지원하며 갭리스 디코딩을 통해 끊김 없는 재생이 가능하고 MP3보다 나은 음질을 제공한다.
  • 오디오 파일 포맷 - MP3
    MP3는 MPEG 표준의 오디오 압축 형식으로, 인간의 청각 심리를 이용하여 음질 저하를 최소화하며 데이터를 압축하고, 1991년에 발명되어 2017년 특허 만료로 퍼블릭 도메인이 되었다.
  • 오디오 파일 포맷 - 고급 오디오 부호화
    고급 오디오 부호화(AAC)는 MP3 후속 코덱으로 설계되어 더 나은 음질을 제공하며, ISO/IEC 표준으로 다양한 프로파일과 기술을 통해 발전하여 아이튠즈 스토어, 유튜브, 디지털 방송 등에서 널리 활용되는 디지털 오디오 데이터 압축 표준이다.
  • Xiph.Org 프로젝트 - FLAC
    FLAC은 조시 콜슨이 개발한 무손실 오디오 코덱으로, 원본 음질을 유지하면서 파일 크기를 줄이기 위해 오디오 데이터를 압축하며, 4~32비트 샘플 크기, 최대 8 채널을 지원하고, 미국 국립 문서 기록 관리청에서 디지털 오디오에 선호되는 형식으로 지정되었다.
  • Xiph.Org 프로젝트 - Vorbis
    Vorbis는 Xiph.Org 재단에서 개발한 로열티 없는 자유 소프트웨어 오디오 코덱으로, MP3의 대안으로 개발되어 가변, 평균, 고정 비트레이트를 지원하며 갭리스 디코딩을 통해 끊김 없는 재생이 가능하고 MP3보다 나은 음질을 제공한다.

2. 명칭

Ogg Vorbis 프로젝트는 1993년에 시작되었다. 원래 이름은 "Squish"였으나, 이미 상표로 등록되어 있어 프로젝트 이름을 변경해야 했다. 새로운 이름인 "OggSquish"는 2001년까지 사용되다가 다시 "Ogg"로 변경되었다. 이후 Ogg는 Xiph.Org 재단 멀티미디어 프로젝트의 일부인 컨테이너 형식을 지칭하게 되었다. 현재 "Squish"는 Vorbis라는 이름으로 알려져 있으며, 주로 Ogg 컨테이너 형식과 함께 사용되는 특정 오디오 코딩 형식을 가리킨다.

Ogg라는 이름은 컴퓨터 게임 넷렉(Netrek)속어인 "ogging"에서 유래했는데, 이는 미래의 자원 고갈을 고려하지 않고 무리하게 무언가를 하는 행위를 의미했다. 초기에 Ogg 프로젝트는 당시 PC 하드웨어의 제한된 성능을 고려할 때 개발자들에게 다소 야심 찬 목표로 여겨졌다. Ogg라는 이름은 테리 프랫쳇(Terry Pratchett)의 디스크월드(Discworld) 소설에 등장하는 낸시 오그(Nanny Ogg) 캐릭터와는 관련이 없다. 반면, "Vorbis"는 그의 다른 소설인 작은 신들(Small Gods)에 나오는 캐릭터 이름을 딴 것이다.

Ogg는 Xiph.Org 재단에서 표준화했으며, 관련 내용은 RFC 3533에 문서화되어 있다.

Ogg는 컨테이너로서 하나 또는 여러 개의 코덱을 내용물로 저장한다. Ogg에서 가장 대표적인 코덱은 오디오 코덱인 Vorbis이다. Vorbis를 저장한 Ogg는 Ogg Vorbis라고 부른다(다른 코덱도 마찬가지). Ogg Vorbis를 간단히 Ogg라고 부르는 경우가 있지만, Ogg는 컨테이너 이름이고 코덱이 아님에 유의해야 한다. 다른 코덱으로는 비디오 코덱인 Theora, 무손실 오디오 코덱인 FLAC, 인간의 목소리에 특화된 오디오 코덱인 Speex, 텍스트 Writ(자막에 사용) 등이 있다.

초기 Xiph.Org 재단은 Ogg 파일의 공통 확장자로 `.ogg`를 사용하도록 권장했으나, 2007년에는 미디어 유형에 따라 확장자를 구분하여 일반 Ogg 컨테이너는 `.ogx`, 비디오는 `.ogv`, 오디오는 `.oga`를 사용하도록 변경했다. 원래의 공통 확장자였던 `.ogg`는 Ogg Vorbis 오디오 파일에만 호환 목적으로 사용된다. 이 외에도 Speex를 저장한 Ogg의 확장자로 `.spx`가 사용되는 경우가 있다.

3. 파일 형식

Xiph.Org 재단이 주로 설계한 "Ogg" 비트스트림 형식은 소프트웨어와 하드웨어에서 무료로 사용 가능하고 자유롭게 재구현 가능한 멀티미디어 파일의 코딩 및 디코딩을 위한 구성 요소 세트를 생성하기 위한 더 큰 계획의 프레임워크로 개발되었다.

이 형식은 각각 "Ogg 페이지"라고 하는 데이터 청크로 구성된다. 각 페이지는 파일을 Ogg 형식으로 식별하기 위해 "OggS" 문자로 시작한다. 페이지 헤더의 "일련 번호"와 "페이지 번호"는 각 페이지를 비트스트림을 구성하는 일련의 페이지의 일부로 식별한다. 여러 비트스트림은 파일에서 멀티플렉싱될 수 있으며, 각 비트스트림의 페이지는 포함된 데이터의 탐색 시간에 따라 정렬된다. 비트스트림은 기존 파일에 추가될 수도 있는데, 이 과정을 "체이닝"이라고 하며, 비트스트림이 순차적으로 디코딩되도록 한다.

"libvorbis"라는 BSD 라이선스 라이브러리를 사용하여 Vorbis 스트림의 데이터를 인코딩 및 디코딩할 수 있다. 독립적인 Ogg 구현은 RealPlayer 및 일련의 DirectShow 필터와 같은 여러 프로젝트에서 사용된다. "Multi-Track-Single-Logical-Stream Ogg-Vorbis"인 Mogg는 멀티채널 또는 멀티트랙 Ogg 파일 형식이다.

Ogg는 Xiph.Org 재단에서 표준화했으며, RFC 3533에 문서화되어 있다. Ogg는 컨테이너로서 하나 또는 여러 개의 코덱을 내용물로 저장한다. Ogg에서 가장 대표적인 코덱은 오디오 코덱인 Vorbis이다. Vorbis를 저장한 Ogg는 Ogg Vorbis라고 부른다(다른 코덱도 마찬가지). Ogg Vorbis를 간단히 Ogg라고 부르는 경우가 있지만, Ogg는 컨테이너 이름이고 코덱이 아님에 유의해야 한다. 다른 코덱으로는 비디오 코덱인 Theora, 무손실 오디오 코덱인 FLAC, 인간의 목소리에 특화된 오디오 코덱인 Speex, 텍스트 Writ(자막에 사용) 등이 있다.

초기 Xiph.Org 재단은 Ogg의 공통 확장자를 `.ogg`로 정했지만, 2007년에 공통 확장자를 `.ogx`, 비디오 확장자를 `.ogv`, 오디오 확장자를 `.oga`로 변경했다. 원래의 공통 확장자였던 `.ogg`는 Ogg Vorbis 오디오 파일에만 호환 목적으로 사용된다. 이 외에도 Speex를 저장한 Ogg의 확장자로 `.spx`가 사용되는 경우가 있다.

3.1. 페이지 구조

다음은 Ogg 페이지 헤더의 필드 레이아웃이다.

Ogg 페이지 헤더의 필드 레이아웃
Ogg 페이지 헤더의 필드 레이아웃


캡처 패턴 – 32비트
캡처 패턴 또는 동기 코드는 Ogg 파일을 구문 분석할 때 동기를 보장하는 데 사용되는 매직 넘버이다. 모든 페이지는 "OggS"라는 네 개의 ASCII 문자 시퀀스로 시작한다. 이것은 데이터가 손실되거나 손상된 경우 파서를 다시 동기화하는 데 도움이 되며 페이지 구조의 구문 분석을 시작하기 전에 정상적인지 확인하는 역할을 한다.

버전 – 8비트
이 필드는 향후 확장을 허용하기 위해 Ogg 비트스트림 형식의 버전을 나타낸다. 현재 0으로 지정되어 있다.

헤더 유형 – 8비트
이는 플래그의 8비트 필드로, 뒤에 오는 페이지의 유형을 나타낸다.
👆
좌우로 밀어서 보기
비트플래그페이지 유형
00x01연속이 페이지의 첫 번째 패킷은 논리적 비트스트림의 이전 패킷의 연속이다.
10x02BOS스트림 시작(Beginning Of Stream). 이 페이지는 논리적 비트스트림의 첫 번째 페이지이다. BOS 플래그는 모든 논리적 비트스트림의 첫 번째 페이지에 설정되어야 하며 다른 페이지에는 설정할 수 없다.
20x04EOS스트림 끝(End Of Stream). 이 페이지는 논리적 비트스트림의 마지막 페이지이다. EOS 플래그는 모든 논리적 비트스트림의 마지막 페이지에 설정되어야 하며 다른 페이지에는 설정할 수 없다.


그래뉼 위치 – 64비트
그래뉼 위치는 Ogg 파일의 시간 마커이다. 코덱에 의해 의미가 결정되는 추상적인 값이다. 예를 들어, 샘플 수, 프레임 수 또는 더 복잡한 체계일 수 있다.

비트스트림 일련 번호 – 32비트
이 필드는 특정 논리적 비트스트림에 속하는 페이지를 식별하는 일련 번호이다. 파일의 각 논리적 비트스트림에는 고유한 값이 있으며 이 필드를 통해 구현은 페이지를 적절한 디코더에 전달할 수 있다. 일반적인 보비스 및 테오라 파일에서는 하나의 스트림이 오디오(보비스), 다른 하나는 비디오(테오라)이다.

페이지 시퀀스 번호 – 32비트
이 필드는 각 논리적 비트스트림에 대해 단조 증가하는 필드이다. 첫 번째 페이지는 0이고, 두 번째 페이지는 1이고, 그렇게 계속된다. 이를 통해 구현은 데이터가 손실되었는지 감지할 수 있다.

[[체크섬]] – 32비트
이 필드는 전체 페이지의 데이터(페이지 헤더 포함, 체크섬 필드가 0으로 설정된 상태로 계산됨)에 대한 CRC32 체크섬을 제공한다. 이를 통해 작성된 이후 데이터가 손상되지 않았는지 확인할 수 있다. 체크섬을 통과하지 못한 페이지는 삭제해야 한다. 체크섬은 0x04C11DB7의 다항식 값을 사용하여 생성된다.

페이지 세그먼트 – 8비트
이 필드는 이 페이지에 존재하는 세그먼트의 수를 나타낸다. 또한 이 필드 뒤에 오는 세그먼트 테이블에 있는 바이트 수도 나타낸다. 어떤 페이지에도 최대 255개의 세그먼트가 있을 수 있다.

세그먼트 테이블
세그먼트 테이블은 각각 페이지 본문 내의 해당 세그먼트의 길이를 나타내는 8비트 값의 배열이다. 세그먼트 수는 앞의 페이지 세그먼트 필드에서 결정된다. 각 세그먼트의 길이는 0에서 255바이트 사이이다.

세그먼트는 디코더에 유의미한 데이터 단위인 패킷으로 세그먼트를 그룹화하는 방법을 제공한다. 세그먼트의 길이가 255로 표시되면 다음 세그먼트는 이 세그먼트와 연결되어 동일한 패킷의 일부임을 나타낸다. 세그먼트의 길이가 0~254이면 이 세그먼트가 이 패킷의 마지막 세그먼트임을 나타낸다. 패킷의 길이가 255의 배수인 경우 마지막 세그먼트의 길이는 0이다.

마지막 패킷이 다음 페이지에서 계속되는 경우 마지막 세그먼트 값은 255이고 다음 페이지의 연속 플래그가 설정되어 새 페이지의 시작이 이전 페이지의 연속임을 나타낸다.

3.2. 메타데이터

Vorbis 주석은 처음에는 Ogg Vorbis와 함께 사용하기 위해 작성된 기본 수준의 메타데이터 형식이다. 그 이후로 Xiph.Org 코덱(예: Theora, Speex, FLAC, Opus)의 Ogg 캡슐화 사양에도 채택되었다. Vorbis 주석은 Xiph.Org 코덱으로 메타데이터를 저장하는 가장 간단하고 광범위하게 지원되는 메커니즘이다.

특히 Vorbis 주석의 썸네일 및 표지 이미지에 대한 하나 이상의 `METADATA_BLOCK_PICTURE=` 항목은 해당 FLAC `METADATA_BLOCK_PICTURE`의 Base64로 인코딩된 값을 갖는다. 다시 말해, FLAC은 바이너리 블록(리틀 엔디언 `METADATA_BLOCK_VORBIS_COMMENT` 내의 FLAC 태그 외부)에 썸네일과 표지 이미지를 저장한다.

다른 기존 및 제안된 메커니즘은 다음과 같다.

* FLAC 메타데이터 블록
* Ogg Skeleton
* 연속 미디어 마크업 언어 (사용 중단됨)

4. 역사

Ogg 프로젝트는 1993년 더 큰 프로젝트의 일환으로 간단한 오디오 압축 패키지로 시작되었다. 이 소프트웨어는 원래 Squish라는 이름이었지만, 기존 상표권 때문에 OggSquish로 이름이 바뀌었다. 이 이름은 나중에 전체 Ogg 프로젝트에 사용되었다. 1997년, Xiphophorus OggSquish는 "현대 오디오 응용 프로그램을 위한 유연한 압축 오디오 형식을 만드는 것과 모든 최신 컴퓨터 플랫폼에서 공통적으로 사용되는 최초의 오디오 형식을 제공하는 것 모두를 시도하는 것"으로 설명되었다.

2000년에 OggSquish는 "여러 관련 멀티미디어 및 신호 처리 프로젝트의 그룹"으로 언급되었다. 당시 Ogg Vorbis 형식과 Vorbis의 참조 구현인 libvorbis의 두 프로젝트가 활발하게 개발 중이었으며, 미래의 비디오 및 무손실 오디오 코딩 작업에 대한 연구도 진행되었다. 같은 해 9월 2일, Ogg 참조 구현은 Vorbis에서 분리되었다.

2001년, OggSquish는 Ogg로 이름이 바뀌었고, "여러 관련 멀티미디어 및 신호 처리 프로젝트의 그룹을 위한 상위 개념"으로 설명되었다. Ogg는 더 큰 Xiph.org 멀티미디어 프로젝트의 일부로 파일 형식을 의미하게 되었고, Squish는 Ogg 코덱 중 하나의 이름이 되었다. 2009년, Ogg는 "멀티미디어 컨테이너 형식이자 Xiph.org 멀티미디어 코덱의 기본 파일 및 스트림 형식"으로 설명되었다.

2003년 5월에는 이 형식과 관련된 두 개의 인터넷 RFC가 게시되었다. Ogg 비트스트림은 RFC 3533 (정보로 분류됨)에 정의되었으며, 해당 인터넷 콘텐츠 유형(application/ogg)은 RFC 3534 (2006년 기준 제안된 표준 프로토콜)에 정의되었다. 2008년 9월, RFC 3534는 RFC 5334에 의해 폐기되었으며, 이는 콘텐츠 유형 video/ogg, audio/ogg 및 파일 이름 확장자 .ogx, .ogv, .oga, .spx를 추가했다.

5. Ogg 코덱

Ogg는 컨테이너 파일 형식일 뿐이며, 코덱으로 인코딩된 실제 오디오 또는 비디오 데이터는 Ogg 컨테이너 안에 저장된다. Ogg 컨테이너는 디랙, MNG, CELT, MPEG-4, MP3 등 다양한 형식의 오디오와 비디오를 포함할 수 있지만, 주로 다음과 같은 Xiph.org 재단에서 개발한 자유 코덱들과 함께 사용되는 경우가 많다.

Ogg에서 사용되는 대표적인 코덱들은 다음과 같이 분류할 수 있다.

* [[오디오 코덱]]: 손실 압축 방식(Vorbis, Opus, Speex 등), 무손실 압축 방식(FLAC), 비압축 방식(OggPCM) 등이 있다. 상세한 내용은 오디오 섹션에서 다룬다.
* [[영상 코덱]]: 손실 압축 방식(Theora, 디랙, Tarkin 등), 무손실 압축 방식(디랙), 비압축 방식(OggUVS) 등이 있다. 상세한 내용은 비디오 섹션에서 다룬다.
* 텍스트 코덱: 시간 동기화된 텍스트, 자막, 메타데이터 등을 위한 CMML, OggKate, Annodex 등이 있다. 상세한 내용은 텍스트 섹션에서 다룬다.

Ogg 컨테이너에 가장 흔하게 사용되는 오디오 코덱은 Vorbis이며, 이 조합을 'Ogg Vorbis'라고 부르기도 한다. 마찬가지로 비디오 코덱 Theora를 담은 경우 'Ogg Theora'라고 할 수 있다. 하지만 Ogg는 데이터를 담는 그릇인 컨테이너 형식의 이름이고, Vorbis나 Theora 등은 데이터를 압축하고 해제하는 코덱의 이름이므로 구별해서 이해해야 한다.

5.1. 오디오

Ogg는 컨테이너 파일 형식으로, 코덱으로 인코딩된 실제 오디오 데이터를 담는 데 사용된다. Ogg 자체는 데이터를 압축하는 방식이 아니라, 다양한 코덱으로 처리된 오디오 스트림을 저장하는 그릇 역할을 한다.

Ogg 컨테이너는 여러 종류의 오디오 코덱을 담을 수 있지만, 주로 Xiph.org에서 개발한 자유 소프트웨어 코덱들과 함께 사용된다. 대표적인 오디오 코덱은 다음과 같다.

* [[손실 압축]] 방식:
* Vorbis: 가장 널리 사용되는 Ogg 오디오 코덱으로, 일반적인 음악 및 오디오 데이터 압축에 적합하다.
* Speex: 주로 음성 데이터 압축에 특화되었던 코덱이다. (현재는 개발 중단)
* Opus: 음성, 음악 등 다양한 오디오에 효율적인 최신 코덱으로, 낮은 지연 시간이 특징이다.
* [[무손실 압축]] 방식:
* FLAC: 원본 오디오 데이터의 손실 없이 압축하는 코덱으로, 고음질 오디오 보관 및 재생에 사용된다.
* 비압축 방식:
* OggPCM: 압축되지 않은 원본 PCM 오디오 데이터를 Ogg 컨테이너에 저장하는 방식이다.

Ogg 형식의 오디오는 MP3와 같은 MPEG 표준만큼 대중적이지는 않지만, 자유 소프트웨어오픈 소스 진영에서 중요하게 사용되어 왔다. 특히 자유 콘텐츠(예: 위키미디어 재단 프로젝트의 멀티미디어, 크리에이티브 커먼즈 라이선스 파일)의 인코딩에 널리 쓰였으며, 다수의 디지털 오디오 플레이어(DAP)와 유명 비디오 게임(둠 3, 언리얼 토너먼트 2004, 헤일로: 컴뱃 이볼브드, 제츠앤건즈, 마피아: 더 시티 오브 로스트 헤븐, 미스트 IV: 레벨레이션, 스텝매니아, 시리어스 샘: 더 세컨드 인카운터, 리니지 2, 벤데타 온라인, 배틀필드 2, 그랜드 테프트 오토 엔진, 마인크래프트 등)의 오디오 파일 형식으로 채택되었다.

2007년에는 자유 소프트웨어 재단(FSF)이 독점적인 MP3 형식의 대안으로 Vorbis 코덱 사용을 장려하는 캠페인을 시작하기도 했다. 또한, Firefox 3.5 웹 브라우저는 HTML5 표준의 `

5.1.1. 손실 압축

* Vorbis: 가변 비트레이트(VBR) 방식을 사용하는 일반적인 오디오 코덱이다. 중간에서 높은 비트레이트(채널당 약 16~500 kbit/s)를 지원하며 범용 오디오에 사용된다.
* Speex: 음성 데이터 처리 및 녹음에 최적화된 코덱이다. 주로 저비트레이트(채널당 약 2.1~32 kbit/s)에서 사용되었으나, 현재는 개발이 종료되었다.
* Opus: 음성, 음악, 일반 오디오 등 다양한 오디오 처리가 가능한 코덱이다. 실크와 CELT 코덱 기술을 결합하여 개발되었으며, 낮은 비트레이트부터 높은 비트레이트까지 넓은 범위(채널당 약 6~510 kbit/s)의 가변 비트레이트를 지원한다. 특히 대화형 오디오 및 음악용으로 적합하다.
* CELT: 낮은 지연 시간을 목표로 개발된 코덱으로, Speex와 Vorbis의 중간적 특성을 가졌다. 현재는 개발이 종료되었고, Opus 코덱에 기술이 통합되었다.

5.1.2. 무손실 압축

Ogg 컨테이너는 다양한 코덱으로 인코딩된 데이터를 담을 수 있으며, 원본 데이터의 손실 없이 압축하는 무손실 압축 방식 및 비압축 방식도 지원한다.

* 오디오
FLAC: 대표적인 무손실 오디오 압축 코덱이다. 원본 오디오 데이터를 손상 없이 압축하여 보관하거나 고음질로 재생하는 데 주로 사용되며, 압축률을 조절할 수 있다는 특징이 있다. 범용적으로 널리 쓰인다.
OggPCM: 표준적인 비압축 PCM 오디오 데이터를 Ogg 컨테이너 안에 그대로 저장하는 방식이다.

* 비디오
디랙: BBC에서 개발한 비디오 코덱으로, 사양의 일부로서 무손실 압축 기능을 포함하고 있다.
OggUVS: 비압축(Uncompressed Video Stream) 비디오 데이터를 위한 코덱이다. 데이터 손실은 없지만 압축을 하지 않는다.

5.2. 비디오

Ogg 컨테이너는 다양한 영상 코덱으로 인코딩된 비디오 데이터를 저장하는 데 사용될 수 있다. Ogg는 특정 코덱에 종속되지 않지만, 주로 Xiph.org 재단에서 개발한 자유 오픈 소스 코덱들과 함께 사용된다.

Ogg 컨테이너에서 사용될 수 있는 주요 비디오 코덱은 다음과 같다.

* [[손실 압축]] 방식:
* Theora: On2의 VP3를 기반으로 한 코덱이다.
* Daala: 개발 중 AV1 코덱 프로젝트에 통합된 코덱이다.
* Tarkin: 2000년대 초반에 실험적으로 개발되었던 코덱이다.
* 디랙: BBC에서 개발한 코덱으로, 손실 및 무손실 압축을 모두 지원한다.

* [[무손실 압축]] 방식:
* 디랙: 사양의 일부로 무손실 압축 기능을 포함한다.
* Daala: 무손실 압축도 지원하도록 개발되었으나, AV1으로 통합되었다.

* 비압축 방식:
* OggUVS: 비압축 비디오 데이터를 위한 방식이다.

5.2.1. 손실 압축

Ogg 컨테이너는 다양한 손실 압축 코덱을 사용하여 오디오 및 비디오 데이터를 저장할 수 있다. 일반적으로 Xiph.org 재단에서 개발한 무료 코덱들이 사용된다.

* 오디오 코덱
* Speex: 낮은 비트레이트(채널당 약 2.1–32 kbit/s)에서 음성 데이터 처리에 최적화되어 있다. 현재는 개발이 종료되었다.
* Vorbis: 중간에서 높은 가변 비트레이트(채널당 약 16–500 kbit/s)로 일반적인 오디오 데이터를 처리한다.
* Opus: 낮은 비트레이트와 높은 비트레이트 모두에서 가변 비트레이트 방식을 사용하여 음성, 음악, 일반 오디오를 처리한다(채널당 약 6–510 kbit/s). 스카이프의 SILK 코덱과 Xiph.Org의 CELT 코덱을 결합하여 개발되었다.
* CELT: 낮은 지연을 목표로 개발된 코덱으로, Speex와 Vorbis의 중간 정도 특성을 가졌다. 현재는 개발이 종료되었고, Opus 코덱으로 통합되었다.

* 영상 코덱
* Theora: On2의 VP3 코덱을 기반으로 개발되었으며, MPEG-4 비디오(DivXXvid로 인코딩된 비디오), RealVideo, Windows Media Video 등과 경쟁하는 것을 목표로 했다. 현재는 개발이 종료되었다.
* Daala: 새로운 비디오 코딩 형식으로 개발되었으나, 최종적으로 AV1 코덱 개발 프로젝트에 통합되었다.
* Tarkin: 2000년부터 2002년까지 실험적으로 개발된 비디오 코덱으로, 너비, 높이, 시간의 3차원에서 이산 웨이블릿 변환을 사용했다. 2002년 8월 Theora 개발이 본격화되면서 개발이 중단되었다.
* 디랙: BBC에서 개발한 무료 오픈 소스 비디오 형식으로, 웨이블릿 인코딩 방식을 사용한다. 디랙 사양에는 손실 압축과 무손실 압축 방식이 모두 포함되어 있다.

5.2.2. 무손실 압축

Ogg 컨테이너는 다음과 같은 무손실 압축 코덱 및 방식을 지원한다.

* 오디오
FLAC: 오디오 보관 및 고음질 데이터 처리에 사용되는 대표적인 무손실 압축 코덱이다.
OggPCM: 표준 비압축 PCM 오디오를 Ogg 컨테이너에 저장하는 방식이다.

* 비디오
디랙: BBC에서 개발한 무료 오픈 소스 비디오 형식으로, 사양의 일부로 무손실 압축을 지원한다. 웨이블릿 인코딩 방식을 사용한다.
Daala: 무손실 압축을 지원하는 비디오 코딩 형식으로 개발되었으나, 이후 AV1 개발로 통합되었다.
** OggUVS: 비압축 비디오를 위한 방식이다.

5.3. 텍스트

Ogg 컨테이너는 다양한 텍스트 코덱을 사용하여 시간 동기화된 텍스트, 자막, 메타데이터 등을 비디오나 오디오 스트림과 함께 저장할 수 있다. 주요 텍스트 관련 코덱은 다음과 같다.

* CMML (Continuous Media Markup Language): 타임드 메타데이터, 자막, 서식 지정을 위한 텍스트/애플리케이션 코덱이다.
* Annodex: 네트워크 미디어에 주석을 달고 색인을 생성하기 위해 CSIRO에서 개발한 무료 오픈 소스 표준 집합이다.
* OggKate: 주로 가라오케 자막이나 일반 텍스트용으로 설계된 오버레이 코덱으로, Ogg 파일 내에서 다른 미디어 스트림과 함께 다중화될 수 있다.

6. OGM

2002년, Ogg 형식이 공식적으로 비디오를 지원하지 않던 상황에서 마이크로소프트 DirectShow 프레임워크의 비디오를 Ogg 기반 래퍼에 포함할 수 있도록 하는 해결책으로 OGM 파일 형식이 개발되었다. OGM은 처음에는 독점 소스의 윈도우 전용 도구에서만 지원되었지만, 이후 코드베이스가 공개되었다. 나중에 Ogg에 대한 비디오(및 자막) 지원이 공식적으로 명시되었지만, OGM과는 호환되지 않는 방식이었다. 독립적으로 매트로스카 컨테이너 형식이 성숙기에 도달하여 Vorbis 오디오와 임의의 비디오 코덱을 결합하려는 사람들에게 대안을 제공했다. 그 결과, OGM은 더 이상 지원되거나 개발되지 않으며 Xiph.org에서 공식적으로 권장하지 않는다. 오늘날 Ogg의 비디오는 공식적으로 명시되고 공식적으로 지원되는 .ogv 파일 확장자로 제공된다. .ogm 파일을 지원하는 소프트웨어와 코덱은 무료로 제공된다.

7. 미디어 타입

Ogg 오디오 미디어는 IANA에 미디어 유형 audio/ogg로 등록되어 있으며, 파일 확장자는 .oga, .ogg, .spx이다. 이는 파일 확장자 .ogv를 가진 Ogg 비디오 미디어 유형 video/ogg의 적절한 부분집합이다. 다른 Ogg 애플리케이션은 파일 확장자 .ogx를 가진 미디어 유형 application/ogg을 사용하며, 이는 video/ogg의 상위 집합이다. 파일 확장자 .opus를 가진 Opus 미디어 유형 audio/opus는 나중에 RFC 7587 및 RFC 7845에 등록되었다.

Ogg 포맷 자체는 Xiph.Org 재단에서 표준화했으며, RFC 3533에 문서화되어 있다.

👆
좌우로 밀어서 보기
Ogg 미디어 타입 및 파일 확장자
미디어 타입파일 확장자설명
audio/ogg.oga, .ogg, .spxOgg 오디오 미디어. .ogg는 주로 Ogg Vorbis 오디오와의 호환성을 위해 사용된다. .spx는 Speex 오디오에 사용될 수 있다.
video/ogg.ogvOgg 비디오 미디어. audio/ogg의 부분집합이다.
application/ogg.ogx기타 Ogg 애플리케이션. video/ogg의 상위 집합이며, 비디오, 오디오, 텍스트 등 다양한 스트림을 포함할 수 있다. 2007년부터 공통 확장자로 지정되었다.
audio/opus.opusOpus 오디오 코덱을 사용하는 미디어. RFC 7587 및 RFC 7845에 정의되었다.


초기 Xiph.Org 재단은 Ogg의 공통 확장자를 .ogg로 정했으나, 2007년에 공통 확장자를 .ogx, 비디오 확장자를 .ogv, 오디오 확장자를 .oga로 변경했다. 원래의 공통 확장자였던 .ogg는 Ogg Vorbis 오디오 파일에만 호환 목적으로 사용된다. 이 외에도 Speex를 저장한 Ogg의 확장자로 .spx가 사용되는 경우가 있다.