On December 9, 2002 11:19 pm, Jesse Kline wrote:

> I also tried the other example on the transcode site using the bbmpeg
> interface ( transcode [...] -V -y mpeg -F v,4 -E 44100 -b 224 -o test ).
> This seemed to work fine, but I ended up with videos that had serious
> A/V sync issues. I tried using both tcmplex and mplex but I had the same
> problem with both.

Well, if transcode managed to produce a valid MPEG1 video and audio stream you 
might be able to use the mplex -O SYNC option where SYNC is a positive or 
negative value in milliseconds to fine tune the A/V sync.

> It seems as though the script is now called mpegtranscode although the
> documentation refers to mjpegtranscode (I'm using mjpegtools 1.6). I
> installed all the dependencies and following the instructions but it
> kept passing bad options to mpeg2dec. I even installed the mjpegtools
> patched version of mpeg2dec. It was complaining that it didn't support
> YUVh, so I edited the mpegtranscode script and changed it to xv.

I was messing around with this last night and had similar problems at first.  
What I had to do to get mpeg2dec to work was to install the mjpegtools-dev 
package before doing a "./configure --prefix=/usr/local/ && make && make 
install" on the patched version of mpeg2dec.  If the configure script outputs 
the following line, then mpeg2dec should allow YUV output:

checking for mjpegtools-config... (cached) yes

I then ran the following to extract and convert the video stream from MPEG2 to 
a VCD compliant MPEG1:

$ mpeg2dec -s -o YUV original.mpg | yuvscaler -O VCD | mpeg2enc -f 1 -r 16 -o 
video_vcd.m1v

You might need the complete path to mpeg2dec if /usr/local/bin isn't in your 
path.

I tried to extract the audio stream using extract_ac3 but it wouldn't work for 
some reason.  No matter, instead I used mplayer to dump the decoded audio 
into a raw pcm file like so:

$ mplayer -vc null -vo null -ao pcm -aofile audio.pcm original.mpg

...and then encoded that into an mp2 audio stream:

$ cat audio.pcm | mp2enc -V -v 2 -o audio_vcd.mp2

At this point you _should_ have seperate playable video and audio streams.  
Multiplex them together with mplex to create a single stream:

$ mplex -f 1 -O SYNC_VALUE audio_vcd.mp2 video_vcd.m1v -o vcd_stream.mpg

Substitute different values for SYNC_VALUE if A/V sync is off and then create 
the VCD image:

$ vcdimager -v -l LABEL vcd_stream.mpg

Use a volume label ( all caps, numbers and underscores allowed ) if you plan 
on playing the VCD on different computer platforms, linux doesn't care but 
windows might think the cd is empty if there is no label.  

I did all this with a sample mpeg2 SVCD stream and it seemed to work out ok.  
If it doesn't work for you I'm afraid I'm all out of ideas.  Good luck.

~Scott 

Reply via email to