2012-06-05 9 views
1

왜 Vorbis에 컨테이너가 필요한 이유가 궁금합니다. 나는 당신이 Ogg 컨테이너 나 Matroska 컨테이너에 Vorbis를 붙일 수 있다는 것을 알고 있지만, 어떤 비디오 나 다른 멀티미디어와 함께 사용하지 않는다면 왜 Vorbis 데이터가 자체 파일에 홀로 서 있지 못합니까?Ogg없이 Vorbis를 사용 하시겠습니까?

아무도이 일을 해 본 경험이 있습니까? 내가 검색하기 전에 봤어 그리고 난 단지 세부 사항없이 oggvorbis 메일 링리스트에서 하나의 언급을 발견.

+0

당신을 막을 수는 없지만 자신의 디코더 바이너리를 작성해야 할 수도 있습니다. 마치 하드 코드 된 것을 미리 알고 있다면 헤더와 다양한 필드없이 원시 압축 된 gzip 데이터를 사용할 수 있는지 묻는 것과 같습니다. 기술적으로 네, 그리고 당신은 몇 바이트 더 작은 데이터 파일로 끝날 수도 있지만, 바퀴를 재발견 할 필요가 없기 때문에, 일반적으로 그렇게 쉽지 않습니다. –

+2

나는 실제로 디스크 공간을 절약하려는 의도로 이것을 요구하지 않고있다. 나는 (라이센스 이유 때문에) 오디오 용으로 자체 디코더를 작성해야하기 때문에 묻고 있는데, 오그 래퍼를 다루는 추가 된 복잡성이 그럴 가치가없는 것처럼 보입니다. – DynamiteReed

답변

2

완전히 가능합니다. 헤더 나 오디오와 같은 Vorbis 패킷의 길이를 미리 알아야만 디코드 할 수 있습니다. 오그 래퍼 (또는 다른 래퍼)이 없다면 당신은 몇 가지를 놓치지하지만 그들은 당신의 응용 프로그램에 중요하지 않을 수 있습니다

  • 페이지 체크섬 - 너무 중요하지 않습니다 당신이 디스크에서 읽는 경우 또는 다른 오히려 신뢰할 수있는 원본
  • 페이지 과립/마지막 샘플 위치 - 원하는 성능을 개선하고, 당신이 아주 하찮게 만이 주어진 (A OGG 파일에서 순수 보비스 바이트 스트림을 만들 수 있습니다

그러나 지정에 유용 하나의 Vorbis 스트림) :

  1. 건너 뛰는 26 바이트
  2. n은 = 1 바이트
  3. 다음 n 바이트 countOfBytesToRead = 합
  4. 오그 파일이 소진 읽기 당신의 보비스 바이트 스트림에 countOfBytesToRead 바이트
  5. 반복 1-4까지
읽기