Slashdot Mirror


Ogg Format Accusations Refuted

SergeyKurdakov sends in a followup to our discussion a couple of months ago on purported shortcomings to the Ogg format. The inventor of the format, Monty "xiphmont" Montgomery of the Xiph Foundation, now refutes those objections in detail, with the introduction: "Earnest falsehoods left unchallenged risk being accepted as fact." The refutation has another advantage besides authoritativeness: it's far better written than the attack.

66 of 248 comments (clear)

  1. Obligatory by Anonymous Coward · · Score: 5, Funny
    1. Re:Obligatory by noidentity · · Score: 2, Funny

      That is so fitting, especially because this rebuttal quotes the original with numbered lines! I can't stop laughing.

  2. Re:tl;dr by gknoy · · Score: 3, Informative

    Summary so far:

    Many of the complaints levied against Ogg were not about its technical merits, but about its inadequate documentation -- a feature Matroska shares. Other complaints were about features of Ogg (such as mappings) which nearly every other container format has as well. ... I've only gotten about a quarter of the way through, so far.

  3. Well written, and informative, but... by Dragoniz3r · · Score: 4, Informative

    ... the last time we discussed this, didn't the consensus eventually become that ogg isn't a fun container to work with, despite the fact that the guy who wrote the rant about it was a moron for wanting to trim headers that contribute fractions of percents to the overall size of files? I know I personally have worked with ogg, and it was a pain in the ass, mostly because (as the author of the format admits) the documentation blows.

    1. Re:Well written, and informative, but... by imsabbel · · Score: 5, Interesting

      Yeah.
      Also, for some reason there seems to exist no player in the world that can skip or jump in a video inside an OGM container without severe slowdowns and pauses even on an Core i7. Something that does simply not happen for avi, mp4, mkv or even mov (which is more or less mp4).

      --
      HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
    2. Re:Well written, and informative, but... by BikeHelmet · · Score: 4, Interesting

      I've noticed the same thing. MP4, MKV, AVI, etc. are instant, but ogv (ogm according to GSpot) has multi-second delays when seeking to specific parts of the video.

      I must be doing something wrong... and yet it's the same for every media player I try.

    3. Re:Well written, and informative, but... by Slotty · · Score: 2

      This was well written?

      The authors response in no way enticed the audience to keep reading.

      Informative yes... Well written I don't believe so. But his admission to poor documentation is a nice sign of humility you rarely see in today's world

    4. Re:Well written, and informative, but... by Dragoniz3r · · Score: 5, Insightful

      Certainly better written than Rullgard's hatchet-job. Maybe I'm just used to reading technical documentation (RFCs and the like), but I really dislike reading the flippant opinions of some hack with an axe to grind. Much prefer reading the technicalities of the topic and making up my own mind.

    5. Re:Well written, and informative, but... by EMN13 · · Score: 4, Informative

      As the article notes, .ogm isn't actually a normal ogg container, so the author isn't disputing issues with ogm (he calls it an ugly windows specific hack). And in any case, if you use a codec set to use few keyframes, you'll get poor seek performance in *any* container format - it's quite likely the issues you saw had everything to do with the encoding choices made and little with the (deprecated) ogm container.

    6. Re:Well written, and informative, but... by Hatta · · Score: 3, Informative

      Have you tried it with MPlayer? I just tried it with an OGV from archive.org. Seeking was instantaneous.

      --
      Give me Classic Slashdot or give me death!
    7. Re:Well written, and informative, but... by poetmatt · · Score: 2, Interesting

      uh, OGM is not ogg. So of course you cant' help but not have problems with it. It's a horrible attempt at getting WMV to work in ogg, basically. Try OGG instead of OGM and what do you know! skipping and jumping works wonderfully!

      Helps to read the article because then you'd actually know that.

    8. Re:Well written, and informative, but... by evilviper · · Score: 4, Interesting

      And in any case, if you use a codec set to use few keyframes, you'll get poor seek performance in *any* container format - it's quite likely the issues you saw had everything to do with the encoding choices made and little with the (deprecated) ogm container.

      Not at all. Every other format listed as having good seek performance has an INDEX. Ogg/Ogm does not. Lacking an index generally results in broken frames when seeking as well.

      The are a couple efforts to get Ogg files indexed, but Xiph.org remains utterly indifferent, so you can expect it to remain an unsupported bastard step child like OGM, which is also only unofficial because Xiph can't be bothered with other people's needs.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    9. Re:Well written, and informative, but... by BikeHelmet · · Score: 2, Informative

      Yes, I have. I can only conclude that I'm encoding it wrong.

      But I seem capable of making streamable/seekable vids in other formats, so why is it so difficult with ffmpeg2theora?

    10. Re:Well written, and informative, but... by BikeHelmet · · Score: 2, Interesting

      And in any case, if you use a codec set to use few keyframes, you'll get poor seek performance in *any* container format - it's quite likely the issues you saw had everything to do with the encoding choices made and little with the (deprecated) ogm container.

      That's quite possible. I'm just having trouble finding settings that let it be seekable, without torpedoing the quality.

      Tons of keyframes does work, but the bitrate required goes up quite a bit.

    11. Re:Well written, and informative, but... by Trepidity · · Score: 4, Insightful

      It's a different kind of flaw, though. Rullgard was arguing that Ogg is inherently technically flawed. Arguing that it's technically fine but unusable due to a lack of documentation is a different argument.

    12. Re:Well written, and informative, but... by Thinboy00 · · Score: 2, Insightful

      Where, exactly, is the boundary line between a file format and its documentation/specs?

      --
      $ make available
    13. Re:Well written, and informative, but... by Jesus_666 · · Score: 2, Informative

      Except that TFA mentions they're likely to put an index in the next revision of Ogg.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    14. Re:Well written, and informative, but... by evilviper · · Score: 2, Informative

      So your need is a video container format only for Windows?

      No, Monty is simply lying about this point.

      While the fields in Ogm are based on Window's VfW, they can be created and parsed on any platform quite easily. I've NEVER used Ogm one Windows, I've ALWAYS used it under Unix systems. Ogmtools can be used to generate such files, and MPlayer (which works on damn near every platform, from Linux, Windows, and OSX to VMS and OS/2) will play them out of the box, with no additional dependencies.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    15. Re:Well written, and informative, but... by Daengbo · · Score: 3, Informative

      I guess you didn't RTFA (Don't feel bad -- I only got 80% through before throwing in the towel). OGM's status is thoroughly explained, and the author talks about adding indexes in the next version of OGG, due to concerns about HTTP over satellite.

    16. Re:Well written, and informative, but... by Dan+Ost · · Score: 2, Informative

      A previous responder to your earlier post explained that ffmpeg puts a bogus value in the OGG header which causes the entire OGG vid to be parsed.

      If that's true, then you're using a broken tool to create your OGG vids. File a bug report or switch tools.

      --

      *sigh* back to work...
  4. And don't forget by Anonymous Coward · · Score: 5, Funny

    "Whenever you want information on the 'net, don't ask a question; just post a wrong answer."

    -- Cancer Omega

  5. Re:tl;dr by fusiongyro · · Score: 2, Informative

    The article is itself basically a summary of the format. If you don't care enough to read the article, probably all you should be worried about is what your iPod will and won't play.

  6. Re:tl;dr by Anonymous Coward · · Score: 5, Informative

    Nearly every other container format+codec has exactly two bits that are codec dependent: an identifier (e.g. 'XVID' or "V_MPEG4/ISO/AVC" or a number) and binary private data/codec-specific init data/whatever you want to call it. Some codecs in some containers additionally define one bitstream, if the codec has multiple possible (h.264).

    Timestamps, dimensions, aspect ratio, framerate, samplerate, etc. are stored in codec-independant ways in the container.

    Ogg is not like that at all. The only thing it stores in a codec-independant manner is framing. Every other piece of information you might expect a container to have is stored in a codec-dependant manner. Even metadata!

    I have no fucking clue why the creator does not see this as the problem that it is for everyone that tries to work with ogg.

  7. Re:Really? by amicusNYCL · · Score: 2, Funny

    Oh, it's far worse than that: one of his competitors thinks it's not a good format.

    --
    "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
  8. Re:tl;dr by dgatwood · · Score: 4, Interesting

    What possible use could you have for obtaining time stamps within a video stream that you cannot decode? As far as I'm concerned, a container format should provide enough information to determine two things:

    1. A CODEC identifier (magic/FOURCC)
    2. The physical length of each frame's data so that decoders that don't understand a particular CODEC can skip it.

    Although there might be advantages of having other data encoded in a consistent fashion for people writing debug tools, when it comes to general software, as long as the CODEC software provides a standard set of accessor functions that return the data in a consistent way across all CODECs, it is by no means a requirement that they be stored in the same way, and in terms of the format's long-term flexibility, it is advantageous to allow the data to be stored in a codec-specific fashion.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  9. The goal by DaMattster · · Score: 4, Insightful

    Funny, I thought the goal was to get away from a patent encumbered format. Does Ogg work? Is it reasonably close to MP3/4? I believe the answer is yes to both. Now is Ogg as efficient as MP3/4, I cannot really comment because I am not that technically versed. If a standard HTML5 Video is adopted, it should and must be patent unencumbered. Rather than this nitpciking, I would love to see that same energy poured into improving Ogg. Like any design, Ogg can be improved upon to reach the same robustness of MP3/4.

    1. Re:The goal by kiwieater · · Score: 4, Interesting

      I've always found Ogg/Vorbis to be superior to MP3. Using semi-good gear(electrostatic headphones, for the geeky folk), I find Ogg at q6(average of ~192kbps) to be nearer to CD quality than an MP3 at any bitrate - it's transparent in 95%+ of tracks.. Some music isn't transparent on either format regardless of bitrate, but Ogg has always tended to give better quality for a given filesize. All in my experience...

    2. Re:The goal by jasonwc · · Score: 4, Insightful

      The problem with this argument is that it somewhat misses the point. MP3 is "good enough" for the vast majority of users at LAME V0/V2. I would venture a guess that 95-99% of persons couldn't ABX at V0 in perfect conditions (expensive amp, DAC, and high-end headphones), yet if we're talking about the use of a DAP and earbuds, it is quite clear qualtiy isn't relevant.

      MP3's primary advantage is its effective standardization and universal support in all hardware and software. This single advantage far outweighs any benefit Ogg Vorbis can provide. An MP3 can be played on any DAP, on any operating system (with the right codecs), and all music software. It's therefore the preferred lossy sharing format. On the large music trackers, Vorbis makes up fewer than 1% of lossy downloads by file size and # of downloads. MP3 is the clear preference.

      The fact is that, while Ogg Vorbis, may be better than MP3 quality-wise at V0 or 320 CBR, this is not the main point of lossy audio. If your primary concern is quality and archival, you shouldn't use any lossy format. You should use FLAC - it is open source and has superior error detection features (MD5/CRC for each frame, use with Accuraterip to verify any disk).

      I use FLAC on my desktop and only download EAC rips with 100% logs, or try to, at least. This ensures that my downloads are "perfect rips", and the encoding process has not reduced quality at all. With a single click, I can verify my FLACs against the Accuraterip database to ensure they are perfect.

      No lossy format provides this benefit. If I want to put the music on my iPod, I can convert it quickly with my Core i7 (45 seconds an album). I can convert my entire collectoin in several hours.

      So, why use OggVorbis over FLAC?

    3. Re:The goal by Yaur · · Score: 2, Interesting

      My opinion is based on implementing software around OGG and I stand by it. That the original developer says something different 10 years after the fact is interesting but not definitive.

    4. Re:The goal by SanityInAnarchy · · Score: 2, Insightful

      And that's exactly what TFA was refuting. Why is Matroska better?

      --
      Don't thank God, thank a doctor!
    5. Re:The goal by AtlantaSteve · · Score: 2, Insightful

      So, why use OggVorbis over FLAC?

      Because:

      • You may not need absolute-100%-CD-quality, but you're still more demanding than the majority of users
      • You have a decent (i.e. non-Apple) media player that supports a variety of formats, and Ogg happens to be one of them

      • You don't see the point of wasting space with a FLAC that's half the size of a ripped WAV, when you could just use an Ogg file that's less than ten-percent the size of a ripped WAV

      [shrug]... That's my reasoning for using Ogg, anyway.

    6. Re:The goal by jasonwc · · Score: 2, Informative

      Your points are good ones. However, you and other make reference to "low bitrate MP3s". Isn't that somewhat besides the point? If you're going to compare Ogg Vorbis q6 or q8 to MP3, you should compare to the best and most widely available codec and encoding options.

      By far, the most popular MP3 encoder is LAME, and the preferred format is V0 or V2. V0 generally has the most downloads on the popular private bittorrent trackers, but V2 is the choice of "scene" release groups.

      Neither is low quality. V2 averages around 192 kbit/sec and V0 around 245 kbit/sec. There is very little perceptible difference between LAME at V0 v. 320.

      While Ogg Vorbis using the aoTuv encoder can achieve transparency at a slightly lower bitrate, from my ABX tests, and reading on Hydrogenaudio, you save, at most around 5%.

      I grant that this may be valuable on a DAP. While there are DAPs with Ogg Vorbis support, lets be honest here. What's the most popular DAC on the market? Apples iPod or Touch/iPhone, most likely. The vast majority of people I see with DAPs use an Apple product. Unless you use the third party Rockbox firmware, which substantially reduces the UI quality, one of the reasons people pay a premium for Apple products, you're not going to have Ogg Vorbis support.

      So, while it is possible to buy a DAP that supports Ogg Vorbis, you have to make your hardware purchase based on your codec choice, which really shouldn't be the case.

      You suggest that Ogg Vorbis support is only a problem if you're looking at cheap DACs. This clearly isn't the case. If you want to use an iPhone, Apple Touch, an iPod or any other popular DAC, you have two lossy choices - MP3 or AAC.

      So, while you do gain some space by using Ogg Vorbis, IMHO it's not worth the limitations in hardware and software choice.

      As for desktop usage, conventional hard drive storage is so cheap, that it is really inexpensive to simply rip to FLAC and your choice of lossy format. In fact dBpoweramp can rip a CD to both FLAC and any lossy format of your choosing in one simple step, and it will use the Accuraterip database to confirm the rip was accurate.

      Or you can use EAC, which is free, and then use dbpoweramp or another tool to batch convert at a later point. While my i7 makes the process very quick, even a mid-range Core 2 Duo can transcode a large FLAC collection in a few hours, and certainly overnight.

      With 1.5 TB drives at $100, hard drive space simply isn't a meaningful concern.

      The market for lossy audio formats on private bittorrent trackers shows the strong preference for MP3. A recent statistical analysis at what.cd showed that MP3 was by far the most popular lossy format, accounting for at least 98% of all downloads.

      Ogg Vorbis had very few downloads, and Ogg Vorbis uploads were the most likely to have 0 downloads. It's just not a popular sharing format for the reasons I raise above.

      That doesn't mean nobody is using it. FLAC has become much more popular as of late, and lossless formats provides the benefit of being able to transcode to any lossy format retaining tags and album art.

      I still think downloading, and certainly, riping to FLAC makes the most sense. You then can purchase any DAP of your choice, and know that you'll be able to convert your music to a supported lossy format. Even a relatively old computer can rip to MP3 relatively quickly. Foobar2000 even has a plugin that will do this for you automatically, for DAPs, including the iPod that don't support your format of choice.

      BTW, I'm only referring to encoding for personal use. Obviously, when widespread distribution is a concern, you must consider licensing costs, and size becomes a greater issue.

      As a matter of practicality, I don't see why FOSS advocates continually argue for Ogg Vorbis and don't talk much about FLAC. It is probably because MP3, and lossy formats in general are considered to be so popular. But, from my experience at what.cd, a private music tracker with over 120,000 members, FLAC is most certainly po

  10. Re:tl;dr by Anonymous Coward · · Score: 2, Interesting

    A better question is: why should the demuxer care about whether or not you can decode a given codec?

    There has been absolutely nothing new with regards to codec timestamps since MPEG-1 introduced the concept of out-of-order coding and B frames. ogg was developed nearly a decade after that. Thus, there is and was no reason whatsoever to make timestamps codec-dependant.

    And you're ignoring the problem that with ogg you have to hunt down and read the spec of every single codec that you want to implement demuxing support for, and that it is impossible to have, say, a generic lightweight file analyzer that tells you duration, codecs used, metadata, samplerate, framerate, etc.

  11. Re:Really? by postbigbang · · Score: 4, Insightful

    And more importantly, they're wrong, in the eyes of its developer.

    It's a cogent flame of his critics, but it also exposes what are plainly design differences-- and his critic's non-nuanced eye. You have to appreciate someone that can split hairs so finely when taking a set of arguments apart. I like thinkers.

    --
    ---- Teach Peace. It's Cheaper Than War.
  12. This matches my experience by Anonymous Coward · · Score: 5, Funny

    The best way to get documentation out of a project is trash talk it until a developer gets into such a frothy rage he explains it in a manner "even an idiot could understand." Used to do this all the time in the early years of Linux, worked like a charm :-)

  13. Re:tl;dr by Rockoon · · Score: 3, Interesting

    As far as I'm concerned, a container format should provide enough information to determine two things:

    Basically, what you just wrote is "there shouldn't be containers."

    Is that really your position? I certainly can understand it. It has that quality to it that any hack can go ahead and start coding to handle it immediately, which is great. But checking with reality, we seem to have so many container formats because ID/LEN is just not enough for purposes.

    --
    "His name was James Damore."
  14. Re:tl;dr by MrLint · · Score: 2, Insightful

    I want to prepend my ignorance in this area, however one thing that occrs to me in your complaint is that isnt this really how the OSI model works? The higher level (container) has the info it needs to pass its payload along to the next level. http, being a payload in the data of IP, and so on. Now I cannot speak to if this makes sense in the contact of media storage, but parsing deep into the media itself would seem to be out of scope of a container, and then end up being a crutch that could break later for yet unimagined content.

  15. Ogg format considered not as good as MPEG by kegon · · Score: 3, Insightful

    From the article:

    When Xiph started out in the early ninties, MPEG was hardly dominant.

    When MPEG-1 started it closely followed H.261. H.261 was very well written. Back in 1994 when Xiph started, MPEG-1 had already been going 6 years.

    Ogg is full of strange fields and difficult to read structures. The author of the criticism is right to question it, especially when Ogg used similar fields but changed the names. There was never any need to change terminologies. H.261 and MPEG-1 were well written standards but not freely available and included patented technologies. The "not freely available" means that you have to buy it, not that it's secret.

    If Xiph wanted to produce a free standard for video coding they could easily have adopted the same terminologies and similar structures, defining their own versions of them and recommending unpatented technologies. Instead they chose their weird terminology and rushed to come out with something different without spending the time to work out how difficult it would be for users to implement and what quality it would give. H.261 and MPEG were backed up by masses of research by companies and universities of which much was freely available in journals and conference proceedings.

    The idea that "MPEG was hardly dominant" is the thought of someone who either didn't do his homework at the time or a revisionist. VCD (created 1993) was massively popular in the second half of the nineties, or doesn't that count ?

    From the summary:

    it's far better written than the attack.

    I wish it had been. If you want to refute a rant, pick some illustrative points and clearly answer them. Don't pick apart the text, all of it, sentence by sentence. Fancy colouring and highlighting don't make it better written.

    1. Re:Ogg format considered not as good as MPEG by Haeleth · · Score: 4, Interesting

      VCD (created 1993) was massively popular in the second half of the nineties

      Really? I don't think I ever saw a single VCD on a store shelf. I recall they existed, and I think I even watched one once, but basically they were a brief fad that completely failed to make a measurable dent in the VHS market and rapidly disappeared without a trace. That's not what I'd call "massively popular".

      If you want to refute a rant, pick some illustrative points and clearly answer them.

      That is exactly the wrong thing to do. If you don't answer every point, then your opponents will simply pick out the points you omitted and claim that your failure to refute them proves that they are valid.

      Fancy colouring and highlighting don't make it better written.

      Who said they did? What makes it better-written is the higher quality of the prose. The supporting references and the real-world measurements help, too.

    2. Re:Ogg format considered not as good as MPEG by Toonol · · Score: 2, Informative

      The idea that "MPEG was hardly dominant" is the thought of someone who either didn't do his homework at the time or a revisionist. VCD (created 1993) was massively popular in the second half of the nineties, or doesn't that count ?

      Doesn't count... in America. I've never seen a VCD for sale, except in obscure import shops. It was big in Asia.

    3. Re:Ogg format considered not as good as MPEG by NoMaster · · Score: 2, Informative

      Really? I don't think I ever saw a single VCD on a store shelf. I recall they existed, and I think I even watched one once, but basically they were a brief fad that completely failed to make a measurable dent in the VHS market and rapidly disappeared without a trace. That's not what I'd call "massively popular".

      It may not have been popular in the US (it certainly wasn't obvious here in Australia) - but just about every Chinese home in Australia I went to (in the course of my job) from the mid-90's onwards had at least 1 VCD player (and often one for each TV), and discs were common in the local Asian shops and markets.

      Even now, if you buy Asian movies from any of the on-line Asian retailers you'll see plenty of VCD versions.

      --
      What part of "a well regulated militia" do you not understand?
    4. Re:Ogg format considered not as good as MPEG by diamondsw · · Score: 2, Informative

      Really? I don't think I ever saw a single VCD on a store shelf. I recall they existed, and I think I even watched one once, but basically they were a brief fad that completely failed to make a measurable dent in the VHS market and rapidly disappeared without a trace. That's not what I'd call "massively popular".

      Just because *you* never saw them doesn't mean they weren't successful. Head to Asia - they still sell them by the truckload aside DVD and Blu-Ray, and displaced VHS over 15 years ago. I bought a few dozen a couple months back because they were cheap and easy to copy to the computer. Then I remembered just how awful MPEG-1 looked.

      --
      I don't know what kind of crack I was on, but I suspect it was decaf.
    5. Re:Ogg format considered not as good as MPEG by kegon · · Score: 2, Interesting

      > I'm guessing that he didn't use the same names in his design partly because that would be inviting a patent infringement lawsuit. It would be trivial to convince a judge (let alone a jury) to bring down the legal hammer because the two specs use the same terminology.

      It wouldn't happen, you can't patent terminology. You might be able to copyright names, if they are specific enough.

      MPEG is commonly thought of as "patent encumbered" but the patents only refer to some specific components. These components are not necessary for implementing a codec but if you do use these valuable methods then you get better results. Think of it like the patents that apply to glyph hinting for TrueType fonts: We still have lib FreeType and use TTF in Linux.

  16. It still doesn't address many real world problems by pslam · · Score: 5, Informative

    My rant with Ogg is not so much the minute details of the format itself but that it works badly in a few common real world cases:

    • Resizing metadata. It's stored at the beginning, so resizing the metadata requires moving the majority of the file around (or rewriting it).
    • Metadata growing across a page boundary (64KB). Not unlikely if you're storing anything substantial such as album art. I know, that's slightly abusing it, but it's convenient to go there and it's common practice. The trouble is this affects the page numbering, requiring every page in the stream to be renumbered, and then every page including its contents to have its CRC recalculated. Very expensive.
    • No index. Seriously, why can't we have an index? It doesn't have to be at the beginning of stream - the end is fine too. Which leads me to...
    • Random access video across a high latency link. Think that's uncommon? What about cell phones playing a web-hosted video, where 1000ms+ is the norm? Or even laptops with a 3G access dongle? An index (even a small one) mitigates the issue, even if placed at the end of stream.
    • Mandatory per-page CRC forces low-latency streaming to use single packet per page. Demux cannot continue before an entire page is received, which increases latency by the number of packets in a page (minus 1). Per-packet or even no CRC would be more appropriate.

    I know it's all been said before, but these are pretty common cases and Ogg isn't great when you have to deal with them. Everything else is nit-picking. I'm not a fan of the minute details of the format either, to be honest, but the above are real world examples of where it falls a little short. I should add that none of these issues make it unusable in any of those situations: just annoying.

  17. Re:Really? by icebraining · · Score: 3, Insightful

    He didn't say it was good, he explained why it is good.

  18. Re:tl;dr by Anonymous Coward · · Score: 4, Informative

    And you're ignoring the problem that with ogg you have to hunt down and read the spec of every single codec that you want to implement demuxing support for, and that it is impossible to have, say, a generic lightweight file analyzer that tells you duration, codecs used, metadata, samplerate, framerate, etc.

    From the article:

    "This is commonly asserted by detractors, but a combination of false and missing the point.

    Ogg transport is based entirely on the page structure primitive, described accurately above. There are no other structures in the container transport itself. Higher level structures are built out of pages, not built into them. All Ogg streams conform to this page structure and all Ogg streams are parseable and demuxable without knowing anything about the codec. "Drop the needle" anywhere in an Ogg stream and start demuxing; you get the codec data out without knowing anything about the codec. You possibly won't know what exactly to do with that data without the codec mapping and the data is possibly useless without the codec anyway, but that's true of every container.

    To avoid being accused of sidestepping the issue, I posit that the actual [if unstated] objection is that the Ogg container does not fully specify the granule position in the transport specification. Beyond a few requirements, a codec mapping defines the granule position spec for that codec's streams, not the Ogg spec. In theory, this would mean that without codec knowledge or some other place to find the granule position definition, a decoder missing the codec for a given stream would not be able to determine the timestamp on the stream that it is not capable of decoding anyway. In practice, the granule position mapping does in fact exist in the stream metadata within the Skeleton header[7] (as it would be in Matroska or NUT). Additionally, the Ogg design allows implementations to ignore the pretty design theory and just do things the way other containers do by building granule position calculation into the mux implementation.

    There's specific considered reasons for the granulepos design which take some space to explain accurately. Because Mr. Rullgard also wrote a lengthy diatribe against Ogg timestamping[8], I'll leave the explanation for there and link to it here when my response to the other article is live."

  19. MPEG-LA bad mouthing? by bit01 · · Score: 2, Insightful

    Just how much money is MPEG-LA making on their patent pool? How much are they spending on bad mouthing OGG to preserve/increase their income?

    Treat any criticism of proprietary product competitors with a very large grain of salt.

    Particularly against free competitors since it's legally safer as they often don't have the legal resources to fight half-truths and innuendo.

    Good to see Monty's refutation.

    ---

    Anonymous company communication is unethical and can and should be highly illegal. Company legal structures require accountability.

    1. Re:MPEG-LA bad mouthing? by Blazewardog · · Score: 2, Insightful

      People aren't arguing to use mp4 over ogg (at least most aren't). They are arguing to use Matroska instead. Matroska is also a patent free container that is more flexible, can hold any stream, and is apparently much nicer to work with.

    2. Re:MPEG-LA bad mouthing? by diamondsw · · Score: 2, Insightful

      Well that was a load of paranoia. There are clearly technical problems with the format - but according to you any criticism must be funded by the evil MPEG-LA!

      --
      I don't know what kind of crack I was on, but I suspect it was decaf.
  20. Re:tl;dr by tgd · · Score: 2, Insightful

    I wouldn't assume because the OSI model works that way means its the right model for a video container format.

    And, given the plethora of systems out there that have had to add functionality to introspect higher layers while routing lower layers, I wouldn't even assume the OSI model is actually the right one for networking, either.

  21. Re:tl;dr by Anonymous Coward · · Score: 2, Interesting

    >Ogg transport is based entirely on the page structure primitive, described accurately above. There are no other structures in the container transport itself. Higher level structures are built out of pages, not built into them.

    And my argument is that a container should provide more than just framing. Hell, many codecs provide framing themselves and don't need container framing.

    >All Ogg streams conform to this page structure and all Ogg streams are parseable and demuxable without knowing anything about the codec.

    Only in the sense that you can find frame boundaries, not in the sense that you can do anything useful with them whatsoever. And indeed, the only thing you can do is drop and ignore pages for streams with codecs you don't recognize.

    >and the data is possibly useless without the codec anyway, but that's true of every container.

    Dead wrong. As a trivial example, remuxing.

    And didn't you just say that you can parse streams without knowing about the codec?

    >In practice, the granule position mapping does in fact exist in the stream metadata within the Skeleton header

    Too bad that in practice, I've seen a skeleton header maybe once. And anything optional is guaranteed to be missing in many cases. Thus to demux a new codec you still have to find the codec spec, find the ogg mapping, write the granule demangler, write a parser for the codec headers, etc. instead of adding a single entry to a table like you would for sane containers.

    >Additionally, the Ogg design allows implementations to ignore the pretty design theory and just do things the way other containers do by building granule position calculation into the mux implementation.

    I'm not really sure what he's talking about here, but ogg certainly doesn't allow you to do like other containers do and store the unmangled timestamp.

  22. In a nutshell by iris-n · · Score: 2, Funny

    Mans Rullgard:

    "Ogg considered harmful"

    Monty Montgomery:

    ""Ogg considered harmful" considered harmful"

    --
    entropy happens
  23. Re:tl;dr by Anpheus · · Score: 2, Interesting

    It looks like it's depending on the information from each codec though. What happens if you don't have one of the codecs installed?

  24. Re:OSS dev fails to see flaws, news at 11 by MrHanky · · Score: 2, Funny

    You're wrong, but instead of pointing out why, I'll just note that my teeth and hairstyle are better than yours, and that my opinion is the opinion of a proven winner. Only disagreeable people would disagree with me!

    (This comment is known to cause cancer in the state of California.)

  25. Re:tl;dr by Anonymous Coward · · Score: 3, Informative

    Too bad that in practice, I've seen a skeleton header maybe once. And anything optional is guaranteed to be missing in many cases. Thus to demux a new codec you still have to find the codec spec, find the ogg mapping, write the granule demangler, write a parser for the codec headers, etc. instead of adding a single entry to a table like you would for sane containers.

    I think this speaks to your own inexperience more than anything else. Here's an ogg video with a Skeleton stream:

    http://videos.videoonwikipedia.org/video/275/cell-phone-engineerguyogv

    You can find many more with Skeleton streams at http://videos.videoonwikipedia.org or http://openvideo.dailymotion.com or http://www.archive.org or many other sites. I can only conclude that you are not very knowledgeable about ogg usage in practice.

  26. Re:tl;dr by Anonymous Coward · · Score: 2, Informative

    Okay, I'll uninstall libtheora from my Fedora 12 desktop:

    # rpm --nodeps -e libtheora-1.1.0-1.fc12.x86_64 libtheora-1.1.0-1.fc12.i686

    Totem no longer plays Elephants_Dream.ogg because libtheora is not installed. It outputs a warning:

    $ totem Elephants_Dream.ogg

    (totem:8219): GStreamer-WARNING **: Failed to load plugin '/usr/lib64/gstreamer-0.10/libgsttheora.so': libtheoraenc.so.1: cannot open shared object file: No such file or directory

    Let's try ogginfo now:

    $ ogginfo Elephants_Dream.ogg
    Processing file "Elephants_Dream.ogg"...

    New logical stream (#1, serial: 1e05b679): type skeleton
    New logical stream (#2, serial: 72ba3177): type theora
    New logical stream (#3, serial: 30fa15ff): type vorbis
    Theora headers parsed for stream 2, information follows...
    Version: 3.2.1
    Vendor: Xiph.Org libThusnelda I 20081201
    Width: 426
    Height: 240
    Total image: 432 by 240, crop offset (0, 0)
    Framerate 24/1 (24.00 fps)
    Aspect ratio undefined
    Colourspace: Rec. ITU-R BT.470-6 Systems B and G (PAL)
    Pixel format 4:2:0
    Target bitrate: 0 kbps
    Nominal quality setting (0-63): 32
    User comments section follows...
                    ENCODER=ffmpeg2theora-0.24
    Vorbis headers parsed for stream 3, information follows...
    Version: 0
    Vendor: Xiph.Org libVorbis I 20080501
    Channels: 2
    Rate: 48000

    Nominal bitrate: 80.000000 kb/s
    Upper bitrate not set
    Lower bitrate not set
    User comments section follows...
                    ENCODER=ffmpeg2theora-0.24
    Logical stream 1 ended
    Vorbis stream 3:
                    Total data length: 4986375 bytes
                    Playback length: 10m:53.696s
                    Average bitrate: 61.023779 kb/s
    Logical stream 3 ended
    Theora stream 2:
                    Total data length: 30621851 bytes
                    Playback length: 10m:53.791s
                    Average bitrate: 374.698578 kb/s
    Logical stream 2 ended

    Information output is the same. Reinstall libtheora:

    # yum install libtheora.x86_64 libtheora.i686

    And totem plays Elephants_Dream.ogg once again.

  27. Re:Does MPEG-TS have indexes? by NoMaster · · Score: 4, Informative

    That's because MPEG Transport Streams have an easily-accessible Presentation Time Stamp (PTS) in each GOP header, and it's reasonably easy to calculate the increment between PTSs (which will vary with framerate). The simplistic explanation is that the GOP header has the bit rate* & framerate; you can calculate the PTS increment either from the framerate or examining adjacent blocks, you then check the current PTS, calculate the desired PTS from that, and can then jump to the appropriate part of the file to find the PTS you're after.

    (That's assuming you're working with a TS file, where the player can examine the first & last block to determine file length. With streaming, you're restricted to working with what's in the buffer (& hopefully your app knows how long the buffer is, since it allocated it!))

    Ogg, AFAIK, doesn't have that info in the block header - IIRC it relies on the bitstream having presentation timing stored in it (i.e. none, in the case of most audio formats), which means you have to decode the block to find it. It was done that way to allow for variable framerates to be stored without having to build a huge index. MKV is a bit better in this respect, but it's a remarkably fragile container.

    * It falls down a bit sometimes, particularly where the bitrate in the block header is set to max (15Mbps), or where you're using VBR. With the latter the calculation will usually get you in the ballpark; with both cases, some splitters/decoders calculate the bitrate themselves while playing, store it, and use that for seeking.

    --
    What part of "a well regulated militia" do you not understand?
  28. Re:VP8 Codec by NoMaster · · Score: 2, Informative

    That's great. What container are they going to put it in again?

    (Less snarky version: VP8 is a codec. Ogg (& MKV, & AVI, & etc) are container formats that hold data encoded with various codecs. The situation is muddied somewhat with MPEG, as the various versions encompass both a codec and a container. DivX too, but the DivX container is nothing more than a bastardised .AVI container containing video encoded with the DivX codec.)

    --
    What part of "a well regulated militia" do you not understand?
  29. Re:tl;dr by dgatwood · · Score: 2, Informative

    No, that's not at all what I wrote. The fundamental purpose of a container is to consolidate multiple pieces of information into a single file. Without containers, you would need one file for your audio data and a separate one for your video data. You should not need to understand the video data to play the audio data; it is sufficient to know its length. And *that* is what I wrote.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  30. Re:It still doesn't address many real world proble by Anonymous Coward · · Score: 2, Interesting

    * Mandatory per-page CRC forces low-latency streaming to use single packet per page. Demux cannot continue before an entire page is received, which increases latency by the number of packets in a page (minus 1). Per-packet or even no CRC would be more appropriate.

    I don't know anything about Ogg, but you're forced to single "bigger unit per codec packet" for very low latency with all most all containers, CRC or not. What forces you is either length coding (either coding of the whole bigger unit size or the individual packet sizes), or the encoding of the "bigger unit" timing information. At least ogg does appear to support moderately low latency for that single packet case.

    Can you suggest another format which does zero (container) latency better while still being low overhead? I can think of some things which are about half the overhead compared to ogg in the single packet case, but they retain the high (several percent) overhead even when you don't care about very low overhead.

  31. Re:tl;dr by Rockoon · · Score: 3, Insightful

    ID and LENGTH is not a "container" by any definition that I have ever heard of or used in practice.

    What you are describing is a common ordinary linked list.

    None of the containers that I am aware of require you to understand the video data in order to play the audio data, so what the heck are you actually getting on about? That "containers" should be ordinary linked lists?

    In reality, thats not fit for purpose. That media file contains at least two stream, and while each stream can be treatable as independent, they can also be treatable as semi-dependent. There exists information that is shared between streams. For example, metadata.

    If I am not required to decode the video stream, then you can't put the shared metadata in the video stream. If I am not required to decode the audio stream, then you can't put the shared metadata in the audio stream. So what then?

    And thus, the media container is born. Linked lists just don't cut it. These formats are more than linked lists for a real (and I gave only one of them) reason.

    --
    "His name was James Damore."
  32. RTFA. by SanityInAnarchy · · Score: 5, Informative

    From TFA:

    An index is only marginally useful in Ogg for the complexity added; it adds no new functionality and seldom improves performance noticeably. Why add extra complexity if it gets you nothing?

    You can do seeking without an index:

    A binary search is discussed in the spec for ease of comprehension; implementation documents suggest an interpolated bisection search. So far, this is the same as Matroska and NUT.

    The only difference being, Matroska implementers tend to be lazy about implementing the indexless seeking properly, and people tend to use indexes, thus propagating this myth even more.

    The Vorbis source distribution includes an example program called 'seeking_example' that does a stress-test of 5000 seeks of different kinds within an Ogg file. Testing here with SVN r17178, 5000 seeks within a 10GB Ogg file constructed by concatenating 22 short Ogg videos of varying bitrates together results in 17459 actual seek system calls. This yields a result of just under 3.5 real seeks per Ogg seek request when doing exact positioning within an Ogg file. Most actual seeking within an Ogg file would be more appropriately implemented by scrubbing with a single physical seek.

    And there you go. I don't know WTF is wrong with your players, but really, how can a total of four seeks bring your system to a crawl?

    --
    Don't thank God, thank a doctor!
  33. Re:tl;dr by Anpheus · · Score: 4, Informative

    Ah, the gotcha is in the source:

    http://svn.xiph.org/trunk/vorbis-tools/ogginfo/ogginfo2.c

    Ogginfo's source includes information on how to process the metadata for various codecs.

    So, the grandparent's complaint is still valid. Ogginfo appears to require recompilation for every stream that they want to support inside an ogg container.

  34. Re:Does MPEG-TS have indexes? by Wumpus · · Score: 3, Informative

    A DVD is MPEG-PS, not MPEG-TS. Your cable system and satellite feed are TS. Both are built on top of the PES layer.

    MPEG-2 is the reason I have no hair left on my head.

  35. Re:Does MPEG-TS have indexes? by Wumpus · · Score: 2, Informative

    The PTS isn't stored in the GOP header. The GOP header is defined in part 2 of the spec, the PTS is in part 1. So the PTS and the DTS are in the PES header. MPEG frames are typically sent out of order. You'll need to do a lot of decoding to figure out the frame rate from the PTS. The bitrate is just as tricky to determine if you're just looking at one layer. A transport multiplexer needs to know a lot about the video it's multiplexing to be able to maintain the proper bitrate and order the frames correctly, etc. etc.

    So basically, without understanding your elementary stream to some degree, you can't do much with it in the system layer. Even something seemingly simple, like remuxing, isn't easy to do without knowing something about the structure of the elementary stream. I'm guessing that this is why Ogg doesn't even try to pretend like you can abstract the codec enough to do something meaningful with data you know nothing about - other than skip it, that is.

    I've dealt with proprietary data that was multiplexed in MPEG-2 TS before, and there's not a whole lot you can do with it without knowing what it is.

  36. Re:tl;dr by radtea · · Score: 2, Insightful

    What possible use could you have for obtaining time stamps within a video stream that you cannot decode?

    Right, so much for Ogg.

    This kind of answer, which amounts to "You shouldn't want to do that", is an absolutely certain indicator of a product that doesn't solve the problem that poeople actually have and never will, because when the inadequacies of the solution are pointed out, users are told they should have a different problem.

    Every time I have ever been told by anyone anything like that it has been a sure indication that they have simply failed to understand the domain I am working in.

    --
    Blasphemy is a human right. Blasphemophobia kills.