This is the command line I use:
Code: Select all
vlc -vvv -I dummy --extraintf http --http-port=9090 /home/npf/in.sdp --sout '#duplicate{dst="transcode{vcodec=UYVY}:std{mux=raw,access=file,dst=/tmp/video.uyvy422}",select="noaudio",dst="transcode{acodec=s16l}:std{mux=raw,access=file,dst=/tmp/audio.s16l}",select="novideo"}'
If I open the stream in the normal VLC desktop interface then it corrects this problem by duplicating video frames to fill the gaps left by the frames it could not decode.
I had a look for a command line option to do this and found two:
which appears to be related to the 'transcode' output module, and;audio-sync
When this option is enabled, VLC will drop/duplicate video frames to synchronize the video track on the audio track.
which I suppose is an '--sout' option.--sout-transcode-audio-sync, --no-sout-transcode-audio-sync
Synchronise on audio track (default disabled)
This option will drop/duplicate video frames to synchronise the video track on the audio track. (default disabled)
Having still not mastered the intricacies of the VLC command line, I've used them in places that seem correct and don't cause complaints from VLC:
Code: Select all
vlc -vvv -I dummy --extraintf http --http-port=9090 /home/npf/in.sdp --sout-transcode-audio-sync --sout '#duplicate{dst="transcode{vcodec=UYVY,audio-sync}:std{mux=raw,access=file,dst=/tmp/video.uyvy422}",select="noaudio",dst="transcode{acodec=s16l,audio-sync}:std{mux=raw,access=file,dst=/tmp/audio.s16l}",select="novideo"}'
Code: Select all
[0x7ffde8004bd8] stream_out_transcode stream out debug: drift is too high, resetting master sync
[0x7ffddc000ff8] avcodec encoder warning: almost fed libavcodec with two frames with the same PTS (4846610504)
VLC reports its version as: 2.0.8 Twoflower (2.0.8a-0-g68cf50b)
I'm running Ubuntu 12.04 with kernel 3.2.0-54-generic, in case that's relevant.
Many thanks.