From de6d9b6404bfd1c589799142da5a95428f146edd Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Sun, 22 Jul 2001 14:18:56 +0000 Subject: Initial revision Originally committed as revision 5 to svn://svn.ffmpeg.org/ffmpeg/trunk --- doc/README.dev | 20 ++++++++++++++ doc/bench.txt | 52 +++++++++++++++++++++++++++++++++++++ doc/ffserver.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 doc/README.dev create mode 100644 doc/bench.txt create mode 100644 doc/ffserver.txt (limited to 'doc') diff --git a/doc/README.dev b/doc/README.dev new file mode 100644 index 0000000000..ae28bc03be --- /dev/null +++ b/doc/README.dev @@ -0,0 +1,20 @@ +1) API +------ + +* libavcodec is the library containing the codecs (both encoding and + decoding). See libavcodec/apiexample.c to see how to use it. + +* libav is the library containing the file formats handling (mux and + demux code for several formats). (no example yet, the API is likely + to evolve). + +2) Coding Rules +--------------- + +ffmpeg is programmed in ANSI C language. GCC extension are +tolerated. TAB size is 4. The identation is the one specified by +'indent -i4 -kr'. + +Main priority in ffmpeg is simplicity and small code size (=less +bugs). + diff --git a/doc/bench.txt b/doc/bench.txt new file mode 100644 index 0000000000..a60572e54c --- /dev/null +++ b/doc/bench.txt @@ -0,0 +1,52 @@ + +source: MarsAttack, divx, 800 kbit/s + +q=10 constant: + +* full motion search, fcode=1, half pel: + Video: opendivx (hq), 640x352, 25 fps, 200 kb/s +frame= 500 q=10 size= 1815kB time=20.0 bitrate= 743.6kbits/s + +* log motion search: + Video: opendivx (hq), 640x352, 25 fps, 200 kb/s +frame= 500 q=10 size= 1995kB time=20.0 bitrate= 817.2kbits/s + +* no motion search: + Video: opendivx, 640x352, 25 fps, 200 kb/s +frame= 500 size= 3197kB time=20.0 fps=25.0 bitrate=1309.6kbits/s q=10 + +* log motion search: + Video: opendivx (hq), 640x352, 25 fps, 200 kb/s +frame= 500 q=10 size= 1995kB time=20.0 bitrate= 817.2kbits/s + +./ffmpeg -me log -t 20 -g 100 -qscale 10 -i img:%d.pgm -an /tmp/b.avi + Stream #0.0: Video: msmpeg4, 640x352, 25 fps, 200 kb/s +frame= 500 q=10 size= 1833kB time=20.0 bitrate= 750.9kbits/s + +./ffmpeg -me full -t 20 -g 100 -qscale 10 -i img:%d.pgm -an /tmp/b.avi + Stream #0.0: Video: msmpeg4, 640x352, 25 fps, 200 kb/s +frame= 500 q=10 size= 1793kB time=20.0 bitrate= 734.8kbits/s + +------------------------------------------- + +* with -sameq, -me log + +./ffmpeg -g 100 -t 20 -sameq -i MarsAttacks_f800.avi -an /tmp/a.avi + Stream #0.0: Video: msmpeg4, 640x352, 25 fps, 200 kb/s +frame= 500 q= 5 size= 2605kB time=20.0 bitrate=1067.1kbits/s + +./ffmpeg -g 100 -t 20 -sameq -i MarsAttacks_f800.avi -f mpeg1video -an /tmp/a.mpg + Stream #0.0: Video: mpeg1video, 640x352, 25 fps, 200 kb/s +frame= 500 q= 5 size= 2655kB time=20.0 bitrate=1087.7kbits/s + +./ffmpeg -g 100 -t 20 -sameq -i MarsAttacks_f800.avi -vcodec opendivx -an /tmp/a.avi +frame= 500 q= 5 size= 2774kB time=20.0 bitrate=1136.2kbits/s + + +the matrix, complete, video only: + +source=14147kB + +ffmpeg: + mpeg1 17154kB (20%) + msmpeg4 17229kB diff --git a/doc/ffserver.txt b/doc/ffserver.txt new file mode 100644 index 0000000000..7019556043 --- /dev/null +++ b/doc/ffserver.txt @@ -0,0 +1,79 @@ +*************** FFserver live broadcast server ***************** + +0) Introduction + +ffserver is a streaming server for both audio and video. It supports +several live feeds, streaming from files and time shifting on live +feeds (you can seek to positions in the past on each live feed, +provided you specify a big enough feed storage in ffserver.conf). + +1) Quick help + +- First you must ensure that your grab system is OK. Verify with + 'xawtv' that your TV card is tuned on a correct video source. + +- Try with ffmpeg that you can record correctly. For example: + + ffmpeg /tmp/a.mpg + +will record a ten seconds mpeg file from your TV card and audio +card. Use for example the mpegtv player or MPlayer to view the created +MPEG file. + +- Launch ffserver on your PC with the sample config file: + + ffserver -f doc/ffserver.conf + +- Verify with your browser that ffserver is working correctly. For + that purpose, explore: http://localhost:8090/stat.html . + +- Now launch ffmpeg to do real time encoding : + + ffmpeg http://localhost:8090/feed1.ffm + +- Then, use your favorite players to see each generated stream: + + mtvp http://localhost:8090/test1.mpg + + mpg123 http://localhost:8090/test.mp2 + + netscape http://localhost:8090/test.swf + + realplayer http://localhost:8090/test.rm + + etc... + + Note that ffserver generate multiple streams in multiple formats AT + THE SAME TIME. It should be able to handle hundreds of users at the + same time if you internet connection is fast enough. + +- Now you can configure ffserver for your real needs. Edit the + ffserver.conf file to use only the formats you want. Read the ffmpeg + documentation (ffmpeg.txt) to learn more about the codec and format + stuff. + +- Report any bug you find (and the fix if you have it!). + +2) URL Format + + ffserver supports that you seek in some formats. The syntax is to + add a '?' option to the URL. Only the 'date' option is supported. + + The date format is [YYYY-MM-DDT][[HH:]MM:]SS[.m...] (clost to ISO + date format). For live streams, the date is absolute and give in + GMT. If the day is not specified, the current day is used. + + example: + + mpg123 http://localhost:8090/test.mp2?date=10:00 + + play the stream starting at 10:00 AM GMT today. + + mpg123 http://localhost:8090/test.mp2?date=2001-06-23T23:00 + + is also a valid date. + + For file streams, the date is relative to the start of the file. No + day can be specified. + + -- cgit v1.2.3