Adventures in concatenating ogg files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've for months now been struggling (like Don Quixote, it appears) to find a way to RELIABLY, and with tolerance of any kind of error, concatenate several Ogg Vorbis files-- some with multiple streams in them-- into one.

At first I was trying to do it without decoding. Wrote a bunch of tools in several languages attempting to do that. None of them worked for all cases (some worked for a few, some worked for none).

The existing tools out there--  sox, mplayer, ffmpeg--  all require decoding/re-encoding, but even with that they failed on various edge cases (multiple streams in a file, streams with zero audio data, empty files, etc).

I finally ended up with the only thing that sort of worked and handled ALL the edge cases, even though it requires decoding and recoding audio, which wastes CPU and also might introduce artifacts, which was this magical pipeline:

 ogg123 --audio-buffer 0 -q -d wav  -f - files-to-concat/*ogg  | oggenc -Q - > total-file.ogg

Except for one problem.

Any shows longer than 3:22:53 get concatenated to 3:22:53. What's special about that number? Oh, I bet it is a size_t overflow in probably the total number of decoded bytes at 44.1khz.

If my math is correct,  44.1khz, 2 channels, 16 bits, 3:22:53 is 2,147,317,200 bytes. Ding.

Now what? Go digging through the source of ogg123 or oggenc looking for the problem, and try to patch it?

Ogg Vorbis has been a released standard since, what, 2000? Is it possible in 2014 that I'm the only person who has ever run into this problem?

-ken

 
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user




[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux