Nick Burch
2014-Aug-23 05:35 UTC
[ogg-dev] Merging Ogg streams whilst updating the Skeleton?
On Sat, 23 Aug 2014, Silvia Pfeiffer wrote:> What does oggz-info tell you about the file when you've merged it > (without skeleton)? It may say that there are two logical video > bitstreams, because they've come from different files. So, two > skeletons may actually be correct.There should be (and are) two logical video streams - I'm trying to create a file with a "main" video, "alternate" video and a few different soundtracks.> I hear that ffmpeg has a a concat feature. Not sure how it does it.I'm trying to merge though, not concatinate!> Multiple skeletons are actually valid, so you should be able to deal > with it!If there is one file containing video #1 followed by video #2, I could see it wanting multiple skeletons. I may have mis-read the specs, but for one video with main video + alternate angle video + english audio + french audio, I would've thought that should be one skeleton with a fisbone per track, with the fisbone's describing the relations between the tracks? Thanks Nick
Silvia Pfeiffer
2014-Aug-23 10:54 UTC
[ogg-dev] Merging Ogg streams whilst updating the Skeleton?
Oh, sorry, I completely misunderstood. You want to make them time-parallel streams! I would merge them with oggz-merge without skeleton and then add skeleton using oggindex e.g. http://git.xiph.org/?p=OggIndex.git;a=summary . (oggindex is also available from http://firefogg.org/nightly/ ) Hope that helps. Silvia. On Sat, Aug 23, 2014 at 3:35 PM, Nick Burch <ogg at gagravarr.org> wrote:> On Sat, 23 Aug 2014, Silvia Pfeiffer wrote: >> What does oggz-info tell you about the file when you've merged it >> (without skeleton)? It may say that there are two logical video >> bitstreams, because they've come from different files. So, two >> skeletons may actually be correct. > > There should be (and are) two logical video streams - I'm trying to create > a file with a "main" video, "alternate" video and a few different > soundtracks. > >> I hear that ffmpeg has a a concat feature. Not sure how it does it. > > I'm trying to merge though, not concatinate! > >> Multiple skeletons are actually valid, so you should be able to deal >> with it! > > If there is one file containing video #1 followed by video #2, I could see > it wanting multiple skeletons. I may have mis-read the specs, but for one > video with main video + alternate angle video + english audio + french > audio, I would've thought that should be one skeleton with a fisbone per > track, with the fisbone's describing the relations between the tracks? > > Thanks > Nick > _______________________________________________ > ogg-dev mailing list > ogg-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/ogg-dev
Nick Burch
2014-Aug-24 07:21 UTC
[ogg-dev] Merging Ogg streams whilst updating the Skeleton?
On Sat, 23 Aug 2014, Silvia Pfeiffer wrote:> I would merge them with oggz-merge without skeleton and then add > skeleton using oggindex e.g. > http://git.xiph.org/?p=OggIndex.git;a=summary . (oggindex is also > available from http://firefogg.org/nightly/ )Ah, that looks like the tool I was looking for! Nearly there now... With a theora+speex file, or a theora+opus file, it fails with errors like: Writing output to 'testTheoraSPEEXSkeleton.ogg' FAIL: Unhandled stream type, serialno=478384172 aborting indexing! (The serial number given is the serial of the opus or speex stream) With a theora+theora+vorbis file, the message headers have both theora streams marked as the main stream and video_1: * Bone 1 - Message Headers: * Name = audio_1 * Role = audio/main * Content-Type = audio/vorbis * Bone 2 - Message Headers: * Name = video_1 * Role = video/main * Content-Type = video/theora * Bone 3 - Message Headers: * Name = video_1 * Role = video/main * Content-Type = video/theora How can I edit that to say which video is main and which is alternate? Are there options to pass to ogg-index for that? Or is there a magic fisbone-comment / skeleton-comment tool out there I need to use? Oh, and one other thing - I'm not sure that the fisbone's generated by ogg-index are quite right, at least not based on the description on the wiki. For skeletons generated with ffmpeg2theora or libtheora, the message header offset is set to 0x2c=44. That's the start offset of 52 within the bone, less the size of the fisbone\0 identifier. oggi-index is generating them with the message header offset of 52, so indcluding the fisbone length, *but* still seems to write the the message headers from 52 bytes in from the start of the fisbone (not 60 as the offset might suggest). Is that a bug, or am I just mis-understanding something? Thanks Nick