[MPlayer-dev-eng] Sync problems switching mpeg1 streams
D Richard Felker III
dalias at aerifal.cx
Sat Jan 11 21:07:36 CET 2003
My best recommendation would be to implement (at least basic) mpeg ps
parsing in feeder and switch over at a valid point rather than
wherever the file position happens to be. I'm having to do something
similar with ogg audio for a radio server I'm working on because the
ogg format is so brain damaged.
Rich
On Sun, Jan 12, 2003 at 03:07:09AM +1000, David Toso wrote:
> Hi mplayer developers,
>
> Arpi <arpi at thot.banki.hu> wrote:
> > no wonder - have you ever heard/think of audio buffering? :)
> > and it's not even in mplayer, it's done by the soundcard (hw or driver).
>
> Ok I think I now have some idea of what is happening, but have no idea of how
> to fix it. (It does not appear to be audio buffering in HW/driver).
>
> A little background for those who have not followed the previous related thread:
>
> ./feeder | mplayer -delay 0.216 -demuxer 2 -
>
> The feeder program presents a prompt, to which I enter:
>
> load 1.mpg
>
> The feeder program opens 1.mpg, reads from it and sends the data to mplayer,
> which starts playing, which also causes mplayer to initialise its vo module, and
> displays 1.mpg playing in its window.
>
> At some point (say 30 seconds) later I type at the feeder prompt:
>
> load 2.mpg
>
> Internally, feeder closes 1.mpg, opens 2.mpg and starts sending that to mplayer
> instead. Since these are mpeg files, mplayer hapilly treats the 2nd file as a
> (slightly broken) part of the original stream, and just skips ahead to valid frames.
> There is no noticable artifact on the switch between streams.
>
> The "-delay -0.216" is to compensate for PAL 3:2 pulldown, as these mpeg files
> are actually rips from PAL (region 4) DVD's. This does not have any effect on the
> problem I am having (other than to correct lip-sync).
>
> The problem is that when I switch from stream 1 to stream 2, mplayer takes a
> _long_ time, say 10-15 seconds, to regain synchronisation between the video
> and audio.
>
> I have verified this by looking at the A-V field from the running statistics output
> of mplayer. I would normally see rapid fluctuation between say "A-V: 0.022" and
> "A-V: -0.045", when the audio and video _are_ in sync.
>
> Upon switching to the second stream (30 seconds later) that field goes up to
> some abnormally high figure like "A-V: 0.725" and gradually (over 10-15
> seconds) settles back down to the normal range, after which the video &
> audio do look to be in sync again.
>
> I wonder if there is any way to ensure that there will be no large loss of sync
> when switching mpeg streams?
>
> I have tried -cache but, of course, that just results in the effect of the feeder
> commands being delayed by some time proportional to the cache size.
>
> Any help would be much apreciated.
>
> David Toso.
> _______________________________________________
> MPlayer-dev-eng mailing list
> MPlayer-dev-eng at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
More information about the MPlayer-dev-eng
mailing list