|
|
different framerate with each audio track
With which container format is it possible?
Let's say I have two audio tracks of different length, but both fit to the same video stream, only that track A would fit at 25 FPS and track B would fit at 23.976 FPS. Isn't the framerate bound with the video stream?
Still I would like to mux all three streams together, what muxing software and what container must I choose?
There is no such thing as framerate for audio
See the general audio FAQ Q19
mkvmerge is able to stretch an audio track by a given floating point factor while muxing it into the matroska container, though i don't know how this is performed or which audio formats it works with
Originally posted by gircobain
There is no such thing as framerate for audio
See the general audio FAQ Q19That is highly debatable. Virtually every audio format uses samples with a fixed length that are played at a constant rate (Vorbis is the only exception to that I know). In most cases such samples are indeed referred to as frames. *Changing* the framerate of an audio stream might prove to be more difficult though.
Originally posted by gircobain
mkvmerge is able to stretch an audio track by a given floating point factor while muxing it into the matroska container, though i don't know how this is performed or which audio formats it works with
I think you didn't understand want I meant. I don't want to change the speed and the length of the audio track! I want to change the speed and the length of the video, depending on what audio track is quot;activequot; at the moment. This way there is no stupid transcoding necessary, actually that's what video players do all the time: changing the framerate depending on what you have told them in the container's meta data. With one difference, one video file - two framerates, as I said, I have two audio tracks they both fit perfectly to the same video stream, only that they both need the video to be played at different framerates to be in synch.
So is there a container format (and a player that supports this feature) that changes the framerate when the audio track is changed? Audio track A needs the video at 25 FPS and audio track B needs the video at 23.976 FPS, there is theoretically no need for stretching the audio and that's exactly what I don't want to do in order to have both audio streams together with the video stream anyway, I don't want to convert the streams. So when I play the video and I listen to track A the film is displayed faster and when I change to audio track B the film gets slower. I want to know if matroska and the mkv tools are able to handle more than one framerate in a video file, or maybe ogg can or mp4?
The alternative would be to have two versions (=two files) of the film (which is the case right now), one with track A and the video at 25FPS and one with track B and the video at 23.976FPS. I wanted to have all three together in order to save some more space. I mean theoretically it's no big deal at all to have this done, although I doubt someone have implemented it yet.Originally posted by stephanV
In most cases such samples are indeed referred to as frames. *Changing* the framerate of an audio stream might prove to be more difficult though.
Right, and it should not be necessary, you can simply drop or raise the framerate of the video, when you change the audio track.
well you could do that with mpeg-4 systems afaik in .mp4, but you will have to learn how to write a bifs script, which is not an easy task for joe average
if you want to learn bifs have a look at the gpac project and their tutorial
this:
mkvmerge is able to stretch an audio track by a given floating point factor while muxing it into the matroska container, though i don't know how this is performed or which audio formats it works with
does not transcode the audio, it only speeds or slows down the audio playback rate. So unless you have less problems with the video being sped up than the audio being sped up it might be a workable solution for you. Although im not sure if any decoder would support this.
Maybe this can be done in another way. I think youre better off asking question like this on Matroska mailing list or IRC. |
|