On Fri, Nov 13, 2009 at 03:20:55PM +0100, Colin Rosenthal wrote: > Reimar D?ffinger wrote: > > I realized that you unfortunately can't use quite the same code. > > You could test this: > > Index: mencoder.c > > =================================================================== > > --- mencoder.c (revision 29907) > > +++ mencoder.c (working copy) > > @@ -552,6 +552,14 @@ > > mencoder_exit(1,NULL); > > } > > > > + if (ts_prog) { > > + demux_program_t prog = { .progid = ts_prog }; > > + if (demux_control(demuxer, DEMUXER_CTRL_IDENTIFY_PROGRAM, &prog) != DEMUXER_CTRL_NOTIMPL) { > > + audio_id = prog.aid; // switching is handled by select_audio below > > + video_id = prog.vid; > > + demuxer_switch_video(demuxer, video_id); > > + } > > + } > > select_audio(demuxer, audio_id, audio_lang); > > > > if (dvdsub_id == -1 && dvdsub_lang) > This works great. Unfortunately the resulting file plays weird - > jittering and jerking back and forwards. > Command line was: > mplayer/mencoder -tsprog 2005 -demuxer lavf -oac pcm -ovc copy -of avi > -o out.avi mux2.share.ts MPlayer will try to correct A-V desync by duplicating or dropping frames, that obviously is unlikely to work right with compressed data. You'd have to use -mc 0 -noskip , though that might cause desync.