[ogg-dev] How to concatenate Ogg in the browser JS?
Vitaly Zdanevich
zdanevich.vitaly at ya.ru
Thu Nov 15 13:39:01 UTC 2018
Checked right now - my original Ogg chunks is playable and without warnings on ogginfo.
Can I fix headers or something after concat to have correct length in players? Not only VLC - if I open the same concated Ogg in Chrome I see the same length of the first chunk - but I can play full concated file without problem.
15.11.2018, 16:23, "Philipp Schafft" <phschafft at de.loewenfelsen.net>:
> Good afternoon,
>
> On Thu, 2018-11-15 at 15:22 +0300, Vitaly Zdanevich wrote:
>> Thank you, ogginfo returned:
>> -----
>> Note: Stream 1 has serial number 0, which is legal but may cause problems with some tools.
>> New logical stream (#1, serial: 00000000): type vorbis
>> Vorbis headers parsed for stream 1, information follows...
>> Version: 0
>> Vendor: ffmpeg
>> Channels: 1
>> Rate: 22050
>>
>> Nominal bitrate: 35.333000 kb/s
>> Upper bitrate not set
>> Lower bitrate not set
>> Vorbis stream 1:
>> Total data length: 25835 bytes
>> Playback length: 0m:06.338s
>> Average bitrate: 32.606833 kb/s
>> Logical stream 1 ended
>> WARNING: illegally placed page(s) for logical stream 1
>> This indicates a corrupt Ogg file: Page found for stream after EOS flag.
>> WARNING: sequence number gap in stream 1. Got page 1 when expecting page 27. Indicates missing data.
>> -----
>>
>> `Playback length` is incorrect here - this is the length of the first concatenated file, this file consists of multiple Oggs.
>>
>> So this is impossible to correctly concat Ogg with simple Javascript?
>
> It is possible.
>
> See the warnings ogginfo returns: There are pages AFTER the EOS flag but
> not after a new BOS page.
>
> So your file looks like this:
>
> BOS DATA... EOS Data...
>
> However it should like like this:
>
> BOS Data... EOS BOS Data... EOS
>
> You can try to save your second part only and try to play that back. If
> it does not work the second part is invalid to begin with (this is what
> ogginfo indicates).
>
> A. With best regards,
>
>> 15.11.2018, 15:13, "Philipp Schafft" <phschafft at de.loewenfelsen.net>:
>> > Good morning,
>> >
>> > On Thu, 2018-11-15 at 14:48 +0300, Vitaly Zdanevich wrote:
>> >> Good day, no answers in Google about that. I asked
>> >> https://stackoverflow.com/questions/53290693/how-to-alter-duration-of-ogg-with-js - in short I have Ogg Vorbis files on the client side (webapp) and I need to concatenate them in one file for downloading. I did concatenation with this line of code:
>> >>
>> >> const blob = new Blob(listOfChunksBlobs, {'type': 'audio/ogg'});
>> >>
>> >> And I play the final audio in VLC without problem,
>> >
>> > Yes. If the files are valid Ogg (this does not depend on the used
>> > codecs) you can just concatenate them.
>> >
>> >> BUT the length is incorrect, looks like I need to alter some header /
>> >> metadata for that? Can you please guide me, maybe I need to alter some
>> >> bytes as specific position?
>> >
>> > No.
>> > Note that there is a different between the playback time of the file and
>> > that of the tracks contained. Some software is not aware of that and
>> > only display the track playback time OR the file playback time.
>> >
>> > If you want a file with a single track you must splice the data on the
>> > codec level. This requires understanding of the codecs used as well as
>> > completly rewriting the Container (Ogg).
>> >
>> > This will also require that there is no change in parameters (including
>> > metadata).
>> >
>> > You can check your resulting file with e.g. ogginfo(1). It will tell you
>> > the parameters for each track and also if the file has errors on the
>> > container level.
>> >
>> > Generally I suspect that this is just a display problem in VLC.
>> >
>> > With best regards,
>> >
>> > --
>> > Philipp Schafft (CEO/Geschäftsführer)
>> > Telephon: +49.3535 490 17 92
>> >
>> > Löwenfelsen UG (haftungsbeschränkt) Registration number:
>> > Bickinger Straße 21 HRB 12308 CB
>> > 04916 Herzberg (Elster) VATIN/USt-ID:
>> > Germany DE305133015
>
> --
> Philipp Schafft (CEO/Geschäftsführer)
> Telephon: +49.3535 490 17 92
>
> Löwenfelsen UG (haftungsbeschränkt) Registration number:
> Bickinger Straße 21 HRB 12308 CB
> 04916 Herzberg (Elster) VATIN/USt-ID:
> Germany DE305133015
More information about the ogg-dev
mailing list