Answers.Body: <h1>What is Ogg Skeleton?</h1>
  
  <p>From <a href="http://wiki.xiph.org/Ogg_Skeleton_4" rel="nofollow">Ogg Skeleton 4</a>:</p>
  
  <blockquote>
    <p>Ogg Skeleton provides structuring information for multitrack Ogg
    files. It is compatible with Ogg Theora and provides extra clues for
    synchronization and content negotiation such as language selection.
    The latest version of Skeleton, version 4.0, also provides keyframe
    indexes to enable optimal seeking over high-latency connections, such
    as the internet.</p>
  </blockquote>
  
  <p>So basically the Ogg container can support multiple tracks of multiple track types types. However:</p>
  
  <blockquote>
    <p>Ogg does not know anything about the content it carries and leaves it
    to the media mapping of each codec to declare and describe itself.
    There is no meta information available at the Ogg level about the
    content tracks encapsulated within an Ogg physical bitstream.</p>
  </blockquote>
  
  <p>Ogg Skeleton attempts to deal with these issues by providing information about the other streams that allows parsing and (de)muxing <strong>without having to decode</strong>.</p>
  
  <h1>What is stored inside such a stream?</h1>
  
  <blockquote>
    <p>Ogg Skeleton is a logical bitstream within an Ogg stream that contains
    information about the other encapsulated logical bitstreams. For each
    logical bitstream it provides information such as its media type, and
    explains the way the granulepos field in Ogg pages is mapped to time.</p>
  </blockquote>
  
  <p>See <a href="http://svn.annodex.net/standards/draft-pfeiffer-oggskeleton-current.txt" rel="nofollow">The "skeleton" meta information track for Ogg</a> for more details.</p>
  
  <h1>Is it necessary to play the media file?</h1>
  
  <p>Continuing from the second quoted paragraph:</p>
  
  <blockquote>
    <p>This is particularly a problem if you don't have all the decoder
    libraries available and just want to parse an Ogg file (such as with <code>file</code>)  to find out what type of data it encapsulates.</p>
  </blockquote>
  
  <ul>
  <li><p>For playback <strong>you are decoding</strong>.</p></li>
  <li><p>You're using (libogg/libvorbis/libtheora and) the FFmpeg cli tools (or should be; I don't recommend Libav) to demux and decode. You have the various decoder libraries available. You can <a href="https://ffmpeg.org/download.html" rel="nofollow">download a recent build of <code>ffmpeg</code></a>.</p></li>
  <li><p>Your file is not complicated. It just contains one video stream, one video stream, and one data stream (the Ogg Skeleton). It does not contain multiple streams of video, audio, subtitles, etc.</p></li>
  <li><p>Ogg Skeleton 4.0 can index keyframes for seeking in high latency situations. Given the information you (did not) provide I'm going to assume this does not apply to you.</p></li>
  </ul>
  
  <p>So the answer here is: <strong>Ogg Skeleton is not necessary to play this media file</strong>.</p>
  
  <p>You can test this by remuxing the file while excluding the data stream with a negative mapping:</p>
  
  <pre><code>ffmpeg -i input.ogv -map 0 -map -0:d -c copy output.ogv
  </code></pre>
  
  <p>Now try playing it.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-03-17T03:07:35.783Z
Answers.LastActivityDate: 2015-03-17T03:13:13.127Z
Answers.LastEditDate: 2015-03-17T03:13:13.127Z
Answers.UserDisplayName: llogan
Body: <p><strong>My Question:</strong> I made a screencast with <a href="http://recordmydesktop.sourceforge.net/news.php" rel="nofollow">recordmydesktop</a> (Version 0.3.8.1). When I investigate the rendered file with <a href="https://duckduckgo.com/l/?kh=-1&amp;uddg=https%3A%2F%2Flibav.org%2Favprobe.html" rel="nofollow"><code>avprobe</code></a> I see, that there is <code>Stream #0.0: Data: skeleton</code> in the produced file. I guess <code>ffprobe</code> will produce the same results...</p>
  
  <p>What is "Data: Skeleton"? What is stored inside such a stream? Is it necessary to play the media file?</p>
  
  <p><strong>What I did:</strong> First I record a part of my screen via</p>
  
  <p>recordmydesktop --height 10 --width 10 -y 50</p>
  
  <p>Now I run <code>avprobe out.ogv</code> an I get as a result</p>
  
  <pre><code>avprobe version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
    built on Aug 10 2014 18:19:26 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  [ogg @ 0x93aa700] Multiple fisbone for the same stream is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
  [ogg @ 0x93aa700] 22 bytes of comment header remain
  [ogg @ 0x93aa700] truncated comment header, 1 comments not found
  [ogg @ 0x93aa700] max_analyze_duration reached
  Input #0, ogg, from 'out.ogv':
    Duration: 00:00:06.93, start: 0.000000, bitrate: 9 kb/s
      Stream #0.0: Data: skeleton
      Stream #0.1: Video: theora, yuv420p, 16x16 [PAR 1:1 DAR 1:1], 15 tbn, 15 tbc
      Stream #0.2: Audio: vorbis, 22050 Hz, mono, fltp, 89 kb/s
  Unsupported codec with id 0 for input stream 0
  </code></pre>
  
  <p>When you want to investigate the video file by yourself, you can download it at <a href="http://www38.zippyshare.com/d/BaItXEdB/2145/out.ogv" rel="nofollow">http://www38.zippyshare.com/d/BaItXEdB/2145/out.ogv</a></p>
  
Tags: <ffmpeg><codec><avconv>
Title: What means "Data: Skeleton" in an .ogv file?
UserDisplayName: Stephan Kulla
ThreadText: # What means "Data: Skeleton" in an .ogv file?
  
  (Asked by: username_0 on 2015-03-16)
  
  **My Question:** I made a screencast with [recordmydesktop](http://recordmydesktop.sourceforge.net/news.php) (Version 0.3.8.1). When I investigate the rendered file with [`avprobe`](https://duckduckgo.com/l/?kh=-1&uddg=https%3A%2F%2Flibav.org%2Favprobe.html) I see, that there is `Stream #0.0: Data: skeleton` in the produced file. I guess `ffprobe` will produce the same results...
  
  What is "Data: Skeleton"? What is stored inside such a stream? Is it necessary to play the media file?
  
  **What I did:** First I record a part of my screen via
  
  recordmydesktop --height 10 --width 10 -y 50
  
  Now I run `avprobe out.ogv` an I get as a result
  
  ```
  avprobe version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
    built on Aug 10 2014 18:19:26 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  [ogg @ 0x93aa700] Multiple fisbone for the same stream is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
  [ogg @ 0x93aa700] 22 bytes of comment header remain
  [ogg @ 0x93aa700] truncated comment header, 1 comments not found
  [ogg @ 0x93aa700] max_analyze_duration reached
  Input #0, ogg, from 'out.ogv':
    Duration: 00:00:06.93, start: 0.000000, bitrate: 9 kb/s
      Stream #0.0: Data: skeleton
      Stream #0.1: Video: theora, yuv420p, 16x16 [PAR 1:1 DAR 1:1], 15 tbn, 15 tbc
      Stream #0.2: Audio: vorbis, 22050 Hz, mono, fltp, 89 kb/s
  Unsupported codec with id 0 for input stream 0
  
  ```
  
  When you want to investigate the video file by yourself, you can download it at <http://www38.zippyshare.com/d/BaItXEdB/2145/out.ogv>
  
  **Tags:** ffmpeg, codec, avconv
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2015-03-17. Score: 2 | Accepted answer
  
  # What is Ogg Skeleton?
  
  From [Ogg Skeleton 4](http://wiki.xiph.org/Ogg_Skeleton_4):
  
  > Ogg Skeleton provides structuring information for multitrack Ogg
  > files. It is compatible with Ogg Theora and provides extra clues for
  > synchronization and content negotiation such as language selection.
  > The latest version of Skeleton, version 4.0, also provides keyframe
  > indexes to enable optimal seeking over high-latency connections, such
  > as the internet.
  
  So basically the Ogg container can support multiple tracks of multiple track types types. However:
  
  > Ogg does not know anything about the content it carries and leaves it
  > to the media mapping of each codec to declare and describe itself.
  > There is no meta information available at the Ogg level about the
  > content tracks encapsulated within an Ogg physical bitstream.
  
  Ogg Skeleton attempts to deal with these issues by providing information about the other streams that allows parsing and (de)muxing **without having to decode**.
  
  # What is stored inside such a stream?
  
  > Ogg Skeleton is a logical bitstream within an Ogg stream that contains
  > information about the other encapsulated logical bitstreams. For each
  > logical bitstream it provides information such as its media type, and
  > explains the way the granulepos field in Ogg pages is mapped to time.
  
  See [The "skeleton" meta information track for Ogg](http://svn.annodex.net/standards/draft-pfeiffer-oggskeleton-current.txt) for more details.
  
  # Is it necessary to play the media file?
  
  Continuing from the second quoted paragraph:
  
  > This is particularly a problem if you don't have all the decoder
  > libraries available and just want to parse an Ogg file (such as with `file`) to find out what type of data it encapsulates.
  
  * For playback **you are decoding**.
  * You're using (libogg/libvorbis/libtheora and) the FFmpeg cli tools (or should be; I don't recommend Libav) to demux and decode. You have the various decoder libraries available. You can [download a recent build of `ffmpeg`](https://ffmpeg.org/download.html).
  * Your file is not complicated. It just contains one video stream, one video stream, and one data stream (the Ogg Skeleton). It does not contain multiple streams of video, audio, subtitles, etc.
  * Ogg Skeleton 4.0 can index keyframes for seeking in high latency situations. Given the information you (did not) provide I'm going to assume this does not apply to you.
  
  So the answer here is: **Ogg Skeleton is not necessary to play this media file**.
  
  You can test this by remuxing the file while excluding the data stream with a negative mapping:
  
  ```
  ffmpeg -i input.ogv -map 0 -map -0:d -c copy output.ogv
  
  ```
  
  Now try playing it.
  
  
  ---
  
  