Thanks for your help j-b. I think I have nearly solved the problem. It looks like Windows completely mangles the command line when it passes the parameters to VLC. VLC was trying to use a filename of "vlcfile.mpg}'" as the input file (see below). That is actually part of the output file name plus some extra punctuation characters on the end.
The only way I made it work was to put the whole string after --sout in
double quotes instead of single quotes.
Here's a summary of what I found to help others
1. In Windows, the command line will only work if the entire string after sout is in
*double* quotes and not single quotes.
2. If you start VLC from the command line and there is an error, then there is no useful feedback. VLC just opens and sits there. In the GUI the Messages window remains blank. This was solved by the suggestion from j-b. You can make VLC process the input over again by pressing the Play button. This time the message window will be filled in properly and you can see the errors.
3. The command line option -vvv is supposed to give verbose error messages. Maybe they go somewhere useful in Linux, but I haven't been able to find them in Windows.
Re point 2, Shouldn't the message window be updated on the *first* time the command line is executed. This would give immediate feedback as to what went wrong.
I found some of the documentation on the command line very difficult to understand. I would really like to contribute and improve this. Would this be helpful to the team?
Many thanks, Bob
Details of the original command line that didn't work.
Command line from my original post
Code: Select all
vlc -vvv "vts_01_0.vob" --sout='#transcode{vcodec=mp2v}:std{access=file, mux=ps,dst="C:\Users\Bob\vlcfile.mpg"}'
Message window
Code: Select all
main debug: processing request item vlcfile.mpg}' node Playlist skip 0
main debug: resyncing on vlcfile.mpg}'
main debug: vlcfile.mpg}' is at 1
main debug: starting new item
main debug: creating new input thread
main debug: Creating an input for 'vlcfile.mpg}''
main debug: thread (input) created at priority 1 (../.././src/input/input.c:230)
main debug: thread started
main debug: using sout chain=`standard{mux="",access="'#transcode{vcodec=mp2v}",dst="std{access=file,"}'
main debug: stream=`standard'
main debug: looking for sout stream module: 1 candidate
qt4 debug: IM: Setting an input
main warning: missing value for option mux
main debug: set config option: sout-standard-access to '#transcode{vcodec=mp2v}
main debug: set config option: sout-standard-dst to std{access=file,
stream_out_standard debug: creating `'#transcode{vcodec=mp2v}/(null)://std{access=file,'
stream_out_standard error: no mux specified or found by extension
main warning: no sout stream module matching "standard" could be loaded
main debug: TIMER module_need() : 10.000 ms - Total 10.000 ms / 1 intvls (Avg 10.000 ms)
main debug: destroying chain... (name=standard)
main debug: destroying chain done
main error: stream chain failed for `standard{mux="",access="'#transcode{vcodec=mp2v}",dst="std{access=file,"}'
main error: cannot start stream output instance, aborting
main debug: thread ended
main debug: dead input
main debug: thread times: real 0m0.010000s, kernel 0m0.000000s, user 0m0.000000s
main debug: changing item without a request (current 1/2)
main debug: nothing to play
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
qt4 debug: IM: Deleting the input
qt4 debug: Updating the geometry
qt4 debug: Updating the geometry
main debug: TIMER input launching for 'vlcfile.mpg}'' : 55.000 ms - Total 55.000 ms / 1 intvls (Avg 55.000 ms)
Command line that does work
Code: Select all
vlc -vvv "vts_01_0.vob" --sout "#transcode{vcodec=mp2v}:std{access=file, mux=ps,dst="C:\Users\Bob\vlcfile.mpg"}"