The same system is used for the other image formats.
-(Note: you need -f image2 for all image formats except GIF; see next section).
+@section How do I encode movie to single pictures ?
-@section Only GIF is listed by -format. Is that the only accepted image format?
+Use:
-No, there are more; they are listed among the video codecs:
- jpeg, png, ppm, pbm, pam, pgm.
-
-For example:
@example
- ffmpeg -f image2 -i menu.png -f image2 menu.jpg
+ ffmpeg -i movie.mpg movie%d.jpg
@end example
-The @file{menu.png} used as input will be converted to @file{menu.jpg}.
+The @file{movie.mpg} used as input will be converted to
+@file{movie1.jpg}, @file{movie2.jpg}, etc...
Instead of relying on file format self-recognition, you may also use
@table @option
Applying that to the previous example:
@example
- ffmpeg -f image2 -vcodec png -i menu.png -f image2 -vcodec mjpeg menu.jpg
+ ffmpeg -i movie.mpg -f image2 -vcodec mjpeg menu%d.jpg
@end example
Beware that there is no "jpeg" codec. Use "mjpeg" instead.
No. FFmpeg only supports open source codecs. Windows DLLs are not
portable, bloated and often slow.
+@section I get "Unsupported codec (id=86043) for input stream #0.1". What is the problem ?
+
+This is the Qcelp codec, FFmpeg has no support for that codec currently. Try mencoder/mplayer it might work.
+
@section Why do I see a slight quality degradation with multithreaded MPEG* encoding ?
For multithreaded MPEG* encoding, the encoded slices must be independent,
@item non-working stuff
B-frames
@item example command line
-ffmpeg -i input -acodec aac -ab 128 -vcodec mpeg4 -b 1200 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4
+ffmpeg -i input -acodec aac -ab 128 -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4
@end table
@section How do I encode videos which play on the PSP?
@item non-working stuff
B-frames
@item example command line
-ffmpeg -i input -acodec aac -ab 128 -vcodec mpeg4 -b 1200 -ar 24000 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp output.mp4
+ffmpeg -i input -acodec aac -ab 128 -vcodec mpeg4 -b 1200kb -ar 24000 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp output.mp4
@item needed stuff for H.264
-acodec aac -vcodec h264 width*height<=76800 width%16=0? height%16=0? -ar 48000 -coder 1 -r 30000/1001 or 15000/1001 -f psp
@item working stuff for H.264
@item non-working stuff for H.264
CAVLC
@item example command line
-ffmpeg -i input -acodec aac -ab 128 -vcodec h264 -b 1200 -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp -flags loop -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 output.mp4
+ffmpeg -i input -acodec aac -ab 128 -vcodec h264 -b 1200kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp -flags loop -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 output.mp4
@end table
-@section How could I read DirectShow files?
+@section Which are good parameters for encoding high quality MPEG4?
+
+-mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -pass 1/2
+things to try: -bf 2, -flags qprd, -flags mv0, -flags skiprd
+
+@section Which are good parameters for encoding high quality MPEG1/MPEG2?
+
+-mbd rd -flags +trell -cmp 2 -subcmp 2 -g 100 -pass 1/2
+but beware the -g 100 might cause problems with some decoders
+things to try: -bf 2, -flags qprd, -flags mv0, -flags skiprd
-If you have built FFmpeg with @code{./configure --enable-avisynth} (only possible in MinGW/Cygwin platforms)
-then you may use as input any file that DirectShow reads.
-(Be aware that this feature has just been added, so you will need to support yourself for any query)
+@section Interlaced video looks very bad when encoded with ffmpeg, whats wrong?
+
+You should use -flags +ilme+ildct and maybe -flags +alt for interlaced
+material, and try -top 0/1 if the result looks really trashed
+
+
+@section How can I read DirectShow files?
+
+If you have built FFmpeg with @code{./configure --enable-avisynth}
+(only possible on MinGW/Cygwin platforms),
+then you may use any file that DirectShow can read as input.
+(Be aware that this feature has been recently added,
+so you will need to help yourself in case of problems.)
Just create an "input.avs" text file with this single line ...
@example
DirectShowSource("C:\path to your file\yourfile.asf")
@end example
-... and then feed that text file to ffmpeg:
+... and then feed that text file to FFmpeg:
@example
ffmpeg -i input.avs
@end example
You have to implement a URLProtocol, see libavformat/file.c in FFmpeg
and libmpdemux/demux_lavf.c in MPlayer sources.
+@section I get "No compatible shell script interpreter found." in MSys.
+
+The standard MSys bash (2.04) is broken. You need to install 2.05 or later.
+
@bye