Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2000-12-20 03:02:47 +0300
committerFabrice Bellard <fabrice@bellard.org>2000-12-20 03:02:47 +0300
commit9aeeeb63f7e1ab7b0b7bb839a5f258667a2d2d78 (patch)
tree133769894d45da35e05ded6ea39d33bb81e7ae18 /doc
parent77bb6835ba752bb9335d208963a53227bbb1bc63 (diff)
Initial revision
Originally committed as revision 2 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'doc')
-rw-r--r--doc/BUGS14
-rw-r--r--doc/README.tech25
-rw-r--r--doc/TODO19
-rw-r--r--doc/ffmpeg.txt62
-rw-r--r--doc/ffserver.conf214
5 files changed, 334 insertions, 0 deletions
diff --git a/doc/BUGS b/doc/BUGS
new file mode 100644
index 0000000000..0c9ef63267
--- /dev/null
+++ b/doc/BUGS
@@ -0,0 +1,14 @@
+- Sound is only handled in mono. The fixed psycho acoustic model is
+ very bad, although the quality is surpringly good for such a model !
+
+- the bit rate control is really not correct.
+
+- Only frame size multiple of 16 are handled.
+
+- If you want a specific format to be added (I am thinking about
+ MJPEG, H261) please tell me. Of course, the format you choose should
+ be based on MPEG to be easily integrated
+
+- ffmpeg can be used to generate streaming audio/video on a
+ server. Please tell me if you are interested.
+
diff --git a/doc/README.tech b/doc/README.tech
new file mode 100644
index 0000000000..8ba259d27a
--- /dev/null
+++ b/doc/README.tech
@@ -0,0 +1,25 @@
+Technical notes:
+---------------
+
+- To increase speed, only motion vectors (0,0) are tested
+
+- The decision intra/predicted macroblock is the algorithm suggested
+ by the mpeg 1 specification.
+
+- only Huffman based H263 is supported, mainly because of patent
+ issues.
+
+- Many options can be modified only in the source code.
+
+- I rewrote the mpeg audio layer 2 compatible encoder from scratch. It
+ is one of the simplest encoder you can imagine (800 lines of C code
+ !). It is also one of the fastest because of its simplicity. They
+ are still some problems of overflow. A minimal psycho acoustic model
+ could be added. Only mono stream can be generated. I may add stereo
+ if needed.
+
+- I rewrote the AC3 audio encoder from scratch. It is fairly naive,
+ but the result are quiet interesting at 64 kbit/s. It includes
+ extensions for low sampling rates used in some Internet
+ formats. Differential and coupled stereo is not handled. Stereo
+ channels are simply handled as two mono channels.
diff --git a/doc/TODO b/doc/TODO
new file mode 100644
index 0000000000..c57a4876d6
--- /dev/null
+++ b/doc/TODO
@@ -0,0 +1,19 @@
+ffmpeg TODO list:
+
+- Add ASF format.
+
+- add MJPEG codec.
+
+- fix skip frame bug in mpeg video
+
+- fix G2 audio problem (bad volume in AC3 ?)
+
+- use non zero motion vectors.
+
+- test fifo & master handling
+
+- deny & allow + password.
+
+- Improve psycho acoustic model for AC3 & mpeg audio.
+
+- Improve the bit rate control for video codecs.
diff --git a/doc/ffmpeg.txt b/doc/ffmpeg.txt
new file mode 100644
index 0000000000..b7fffcdd29
--- /dev/null
+++ b/doc/ffmpeg.txt
@@ -0,0 +1,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.
+
diff --git a/doc/ffserver.conf b/doc/ffserver.conf
new file mode 100644
index 0000000000..8b5d926a12
--- /dev/null
+++ b/doc/ffserver.conf
@@ -0,0 +1,214 @@
+# Port on which the server is listening. You must select a different
+# port from your standard http web server if it is running on the same
+# computer.
+
+Port 8080
+
+# Address on which the server is bound. Only useful if you have
+# several network interfaces.
+
+BindAddress 0.0.0.0
+
+# Host and port of the master server if you which that this server
+# duplicates another existing server. Otherwise, the server does the
+# audio/video grab itself. See the following options for the grab parameters
+
+#MasterServer http://localhost:80/index.html
+
+# Grab parameters
+
+#AudioDevice /dev/dsp
+#VideoDevice /dev/video
+
+# Number of simultaneous requests that can be handled. Since FFServer
+# is very fast, this limit is determined mainly by your Internet
+# connection speed.
+
+MaxClients 1000
+
+# Access Log file (uses standard Apache log file format)
+# '-' is the standard output
+
+CustomLog -
+
+##################################################################
+# Now you can define each stream which will be generated from the
+# original audio and video stream. Each format has a filename (here
+# 'test128.mpg'). FFServer will send this stream when answering a
+# request containing this filename.
+
+<Stream test1.mpg>
+
+# Format of the stream : you can choose among:
+# mpeg1 : MPEG1 multiplexed video and audio
+# mpeg1video : only MPEG1 video
+# mp2 : MPEG audio layer 2
+# mp3 : MPEG audio layer 3 (currently sent as layer 2)
+# rm : Real Networks compatible stream. Multiplexed audio and video.
+# ra : Real Networks compatible stream. Audio only.
+# mpjpeg : Multipart JPEG (works with Netscape without any plugin)
+# jpeg : Generate a single JPEG image.
+# asf : ASF compatible stream (Windows Media Player format)
+# swf : Macromedia flash(tm) compatible stream
+# master : special ffmpeg stream used to duplicate a server
+
+Format mpeg1
+
+# Bitrate for the audio stream. Codecs usually support only a few different bitrates.
+
+AudioBitRate 32
+
+# Number of audio channels : 1 = mono, 2 = stereo
+
+AudioChannels 1
+
+# Sampling frequency for audio. When using low bitrates, you should
+# lower this frequency to 22050 or 11025. The supported frequencies
+# depend on the selected audio codec.
+
+AudioSampleRate 44100
+
+# Bitrate for the video stream.
+VideoBitRate 64
+
+# Number of frames per second
+VideoFrameRate 3
+
+# Size of the video frame : WxH
+# W : width, H : height
+# The following abbreviation are defined : sqcif, qcif, cif, 4cif
+#VideoSize 352x240
+
+# transmit only intra frames (useful for low bitrates)
+VideoIntraOnly
+
+# If non intra only, an intra frame is transmitted every VideoGopSize
+# frames Video synchronization can only begin at an I frames.
+#VideoGopSize 12
+
+</Stream>
+
+# second mpeg stream with high frame rate
+
+<Stream test2.mpg>
+Format mpeg1video
+VideoBitRate 128
+VideoFrameRate 25
+#VideoSize 352x240
+VideoGopSize 25
+</Stream>
+
+##################################################################
+# Another stream : used to download data to another server which
+# duplicates this one
+
+<Stream master>
+
+Format master
+
+</Stream>
+
+##################################################################
+# Another stream : Real with audio only at 32 kbits
+
+<Stream test.ra>
+
+Format ra
+AudioBitRate 32
+
+</Stream>
+
+##################################################################
+# Another stream : Real with audio and video at 64 kbits
+
+<Stream test.rm>
+
+Format rm
+
+AudioBitRate 32
+VideoBitRate 20
+VideoFrameRate 2
+VideoIntraOnly
+
+</Stream>
+
+##################################################################
+# Another stream : Mpeg audio layer 2 at 64 kbits.
+
+<Stream test.mp2>
+
+Format mp2
+AudioBitRate 64
+AudioSampleRate 44100
+
+</Stream>
+
+<Stream test1.mp2>
+
+Format mp2
+AudioBitRate 32
+AudioSampleRate 16000
+
+</Stream>
+
+##################################################################
+# Another stream : Multipart JPEG
+
+<Stream test.mjpg>
+
+Format mpjpeg
+
+VideoFrameRate 2
+VideoIntraOnly
+
+</Stream>
+
+##################################################################
+# Another stream : Multipart JPEG
+
+<Stream test.jpg>
+
+Format jpeg
+
+# the parameters are choose here to take the same output as the
+# Multipart JPEG one.
+VideoFrameRate 2
+VideoIntraOnly
+
+</Stream>
+
+##################################################################
+# Another stream : Flash
+
+<Stream test.swf>
+
+Format swf
+
+VideoFrameRate 2
+VideoIntraOnly
+
+</Stream>
+
+
+##################################################################
+# Another stream : ASF compatible
+
+<Stream test.asf>
+
+Format asf
+
+AudioBitRate 64
+AudioSampleRate 44100
+VideoFrameRate 2
+VideoIntraOnly
+
+</Stream>
+
+##################################################################
+# Another stream : server status
+
+<Stream stat.html>
+
+Format status
+
+</Stream>