summaryrefslogtreecommitdiff
path: root/doc/ffmpeg.txt
blob: b7fffcdd29640e589361882b3545f5ffe0cd82c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
* ffmpeg can use YUV files as input : 

  ffmpeg /tmp/out.mpg /tmp/test

If will use the files: 
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, 
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...

The Y files use twice the resolution of the U and V files. They are
raw files, without header. They can be generated by all decent video
decoders.

* ffmpeg can use a video4linux compatible video source : 

  ffmpeg /tmp/out.mpg 

  Note that you must activate the right video source and channel
  before launching ffmpeg. You can use any TV viewer such as xawtv by
  Gerd Knorr which I find very good.

* There are some importants options to know:

-s size      set frame size                [160x128]
-f format    set encoding format           [mpeg1]
-r fps       set frame rate                [25]
-b bitrate   set the bitrate in kbit/s     [100]
-t time      set recording time in seconds [10.0]

The frame size can also be: cif, qcif, sqcif and 4cif.
The encoding format can be mpeg1, h263 or rv10.

Advanced options are:

-d device    set video4linux device name
-g gop_size  set the group of picture size. 
             An 'intra' frame is generated every gop_size frames.
-i           use only intra images (speed up compression, but lower quality).
-c comment   set the comment string.

Comment strings are only used for Real Video(tm) encoding. Tags are
used in the comment string. A typical comment string is:

"+title=Test Video +author=FFMpeg +copyright=Free +comment=Generated by FFMpeg 1.0"

The output file can be "-" to output to a pipe. This is only possible
with mpeg1 and h263 formats. 

* Tips:

- For low bit rate application, use a low frame rate and a small gop
  size. This is especially true for real video where the Linux player
  does not seem to be very fast, so it can miss frames. An example is:

  ffmpeg -g 3 -r 3 -t 10 -b 50 -s qcif -f rv10 /tmp/b.rm

- The parameter 'q' which is displayed while encoding is the current
  quantizer. The value of 1 indicates that a very good quality could
  be achieved. The value of 31 indicates the worst quality. If q=31
  too often, it means that the encoder cannot compress enough to meet
  your bit rate. You must either increase the bit rate, decrease the
  frame rate or decrease the frame size.