Page 1 of 1

List of supported codecs and containers for command line

Posted: 18 Nov 2005 14:09
by Polyphem
On the streaming feature page there is an overview of supported codecs, containers and muxers, but these are of course not the values you have to use for command line input. Thus I started to gether the values in this thread:

vcodec
-------------
DivX 1 video = div1 (???)
DivX 2 video = div2 (???)
DivX 3 video = div3
MPEG-1 video = mp1v
MPEG-2 video = mp2v
MPEG-4 video = mp4v
MJPEG = ???
H263 = h263 (???)
H264 = h264
I263 = i263 (???)
WMV 1 = wmv1 (???)
WMV 2 = wmv2
Theora = ???

acodec
-------------
MPEG Audio = mpga
MP3 Audio = mp3
MPEG-4 audio (i.e. AAC) = mp4a
Vorbis = vorb
Speex = ???
Flac = ???
AAC = ???
A52 = ???

Muxer
-------------
??? = mp2t
MPEG2/TS = ts
MPEG2/PS = ps
MPEG 1 = mpeg1
Ogg = ogg
Microsoft AVI = avi
Multipart Jpeg = mpjpeg
RAW = raw
Microsoft ASF = asf
Microsoft ASF for MMSH streaming = asfh
MP4 (???) = mp4

Items marked with (???) are just plain guesses or not quiet clear to me.

I extracted all above mentioned values from samples, thus one or the other might be wrong, please post a correction in this thread.

For which Video/Audio/Muxer combinations are valid please also look up the mentioned feature-page
http://www.videolan.org/streaming/features.html
or this page in the docs:
http://www.videolan.org/doc/streaming-h ... /ch03.html

When finished, I'll transfer this thread to the Wiki.

Best Regards
Polyphem

Posted: 23 Nov 2005 10:15
by didi156
That's what I'm also looking for.
I compiled vlc from CVS and found some tutorials with sample commands, but no complete overview. I think the way the command line gets constructed is very interesting (modules, options, parameters), but to use it, it would be necessary to have some docs/manual describing in detail which moduls exist, which parameters exist, which of them are optional...
I think mplayer did a very well job regarding this. For all important parameters like video output, codec,... one can ask with <param> help for possible options. That's very useful since it depends on the personal configuration, whic codecs... are available.

I guess for vlc the command line is not so comfortable and not so well documented, because there's quite a good GUI. But if there's a good point of information, I would also be happy to know it!

Posted: 23 Nov 2005 10:45
by Polyphem
So than lets just start building our own documentation. Just post any additions or corrections in this thread and I'll summarize them in the first post.

Posted: 23 Nov 2005 11:31
by didi156
A way to find out cmd-line params is to start vlc with vlc -vvv and to let the GUI do what you want, e.g. File->Streaming Assistant->Transcoding,...
when you start the job, you get the constructed commandline on your console. Example:

Code: Select all

vlc /server/nfs/testfiles/encoding/mp4/canal+_mp3-audio_h.264-video.mp4 --sout '#transcode{vcodec=mp2v,vb=15000,acodec=a52,ab=192}:standard{mux=ts,url=/server/nfs/testfiles/encoding/ts/vlc.out,access=file}'
(edit: I just notice that I've altered the cmd constucted by the GUI, e.g. bitrate 15000 is not selectable in the GUI, but basically that's what the GUI constructs and what is written to the console.
From this cmd I also guess that the bitrates are an obligatory parameter when transcoding.)

It would be OK for me to use the GUI, but there are some important things missing. E.g. for video transcoding the maximum selectable bitrate is 3k. This is unusable for HD-resolutions.

To return to the issue of this thread:
In VLC-source directory is a file called "vlc-config".
There's a list of plugins. In the middle of the file one can see them sorted by category, e.g. codec, demux, mux,...
That may be a beginning, but it still doesn't tell the params for this modules.

Posted: 23 Nov 2005 12:00
by Polyphem
Also looked up the source and found the file
https://trac.videolan.org/vlc/file/trun ... g/ffmpeg.c
with lots of Video and Audio codecs (Codec fourcc -> ffmpeg_id mapping), but as I read the file these are decoder codecs and not encoder. Anyone have an opinion on this one?

Posted: 23 Nov 2005 15:55
by dionoea
but as I read the file these are decoder codecs and not encoder.
encoder and decoder fourccs are the same. I suggest that you have a look at the fourcc list here : http://www.fourcc.org (click on "Video Codecs")

for the mux format, you should have a look at the modules/mux/ and modules/demux/ folders in VLC source code.

good luck !

Posted: 23 Nov 2005 16:39
by Polyphem
encoder and decoder fourccs are the same. I suggest that you have a look at the fourcc list here : http://www.fourcc.org (click on "Video Codecs")
Thanks for the link, the principle is shortly described here:
http://en.wikipedia.org/wiki/FOURCC
But I guess what you wanted to say is, that encoding and decoding naming conventions for the fourcc's are the same, nevertheless as I interpret it, the fourcc's mentioned in the ffmpeg.c file are purly supported by VLC to decode files. I want to create a list of fourcc's which VLC supports for encoding (with the command line interface).
for the mux format, you should have a look at the modules/mux/ and modules/demux/ folders in VLC source code.
/mux for encoding, /demux for decoding, right? Thanks for the input.

Posted: 23 Nov 2005 17:12
by dionoea
ffmpeg is used for both encoding and decoding in VLC (well, some formats use other libraries), see modules/codec.

the ffmpeg.c file just maps the fourcc (VLC_FOURCC(?,?,?,?)) to the ffmpeg codec name. Some of those can only be decoded, others can be encoded and decoded by ffmpeg. You'll have to look at the ffmpeg source code for more info (in the libavcodec/ directory).

hope that helps