mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
merge
Originally committed as revision 6 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
de6d9b6404
commit
85f07f223d
42
Makefile
Normal file
42
Makefile
Normal file
@ -0,0 +1,42 @@
|
||||
# Main ffmpeg Makefile
|
||||
# (c) 2000, 2001 Gerard Lantau
|
||||
#
|
||||
include config.mk
|
||||
|
||||
CFLAGS= -O2 -Wall -g -I./libavcodec -I./libav
|
||||
LDFLAGS= -g
|
||||
ifdef CONFIG_GPROF
|
||||
CFLAGS+=-p
|
||||
LDFLAGS+=-p
|
||||
endif
|
||||
|
||||
PROG= ffmpeg ffserver
|
||||
|
||||
all: lib $(PROG)
|
||||
|
||||
lib:
|
||||
make -C libavcodec all
|
||||
make -C libav all
|
||||
|
||||
ffmpeg: ffmpeg.o libav/libav.a libavcodec/libavcodec.a
|
||||
gcc $(LDFLAGS) -o $@ $^ -lm
|
||||
|
||||
ffserver: ffserver.o libav/libav.a libavcodec/libavcodec.a
|
||||
gcc $(LDFLAGS) -o $@ $^ -lm
|
||||
|
||||
%.o: %.c
|
||||
gcc $(CFLAGS) -c -o $@ $<
|
||||
|
||||
install: all
|
||||
install -s -m 755 $(PROG) $(PREFIX)/bin
|
||||
|
||||
clean:
|
||||
make -C libavcodec clean
|
||||
make -C libav clean
|
||||
rm -f *.o *~ gmon.out TAGS $(PROG)
|
||||
|
||||
distclean: clean
|
||||
rm -f Rules.mk config.h
|
||||
|
||||
TAGS:
|
||||
etags *.[ch] libav/*.[ch] libavcodec/*.[ch]
|
73
README
Normal file
73
README
Normal file
@ -0,0 +1,73 @@
|
||||
FFmpeg - (c) 2000,2001 Gerard Lantau.
|
||||
|
||||
1) Introduction
|
||||
---------------
|
||||
|
||||
ffmpeg is a hyper fast realtime audio/video encoder, a streaming
|
||||
server and a generic audio and video file converter.
|
||||
|
||||
It can grab from a standard Video4Linux video source and convert it
|
||||
into several file formats based on DCT/motion compensation
|
||||
encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
|
||||
compatible stream.
|
||||
|
||||
What makes ffmpeg interesting ?
|
||||
|
||||
- Innovative streaming technology : multiformat, real time encoding,
|
||||
simple configuration.
|
||||
|
||||
- Simple and efficient video encoder: outputs MPEG1, H263, Real
|
||||
Video(tm), MPEG4, DIVX and MJPEG compatible bitstreams using the
|
||||
same encoder core.
|
||||
|
||||
- Real time encoding (25 fps in 352x288 on a K6 500) using the
|
||||
video4linux API.
|
||||
|
||||
- Generates I and P frames, which means it is far better than a MJPEG
|
||||
encoder.
|
||||
|
||||
- Hyper fast MPEG audio layer 2 compression (50 times faster than
|
||||
realtime on a K6 500).
|
||||
|
||||
- Hyper fast AC3 compatible encoder.
|
||||
|
||||
- simple and very small portable C source code, easy to understand and
|
||||
to modify. It be may the smallest decent MPEG encoder :-)
|
||||
|
||||
- optional non real time higher quality encoding (different motion
|
||||
estimators available).
|
||||
|
||||
- Audio and Video decoders are in development.
|
||||
|
||||
ffmpeg is made of two programs:
|
||||
|
||||
* ffmpeg: soft VCR which encodes in real time to several formats. It
|
||||
can also encode from any supported input file format to any input
|
||||
supported format.
|
||||
|
||||
* ffserver: high performance live broadcast streaming server based on
|
||||
the ffmpeg core encoders.
|
||||
|
||||
2) Documentation
|
||||
----------------
|
||||
|
||||
* Read doc/ffmpeg.txt and doc/ffserver.txt to learn the basic features.
|
||||
|
||||
* Read doc/TODO to know what are the know bugs and missing features.
|
||||
|
||||
* Read doc/README.dev if you want to contribute or use the codec or
|
||||
format libraries.
|
||||
|
||||
3) Licensing:
|
||||
------------
|
||||
|
||||
* See the file COPYING. ffmpeg and the associated library are licensed
|
||||
under the GNU General Public License. I may change the license of
|
||||
libavcodec and libav to LGPL if many people ask it (and if they
|
||||
submit good patches!).
|
||||
|
||||
* This code should be patent free since it is very simple. I took care
|
||||
to use the same video encoder/decoder core for all formats to show
|
||||
that they really ARE THE SAME except for the encoding huffman codes.
|
||||
|
||||
Gerard Lantau (glantau@yahoo.fr).
|
46
doc/README.tech
Normal file
46
doc/README.tech
Normal file
@ -0,0 +1,46 @@
|
||||
Technical notes:
|
||||
---------------
|
||||
|
||||
Video:
|
||||
-----
|
||||
|
||||
- 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.
|
||||
|
||||
- MPEG4 is supported, as an extension of the H263 encoder. MPEG4 DC
|
||||
prediction is used, but not AC prediction. Specific VLC are used for
|
||||
intra pictures. The output format is compatible with Open DIVX
|
||||
version 47.
|
||||
|
||||
- MJPEG is supported, but in the current version the huffman tables
|
||||
are not optimized. It could be interesting to add this feature for
|
||||
the flash format.
|
||||
|
||||
- To increase speed, only motion vectors (0,0) are tested for real
|
||||
time compression. NEW: now motion compensation is done with several
|
||||
methods : none, full, log, and phods. The code is mmx/sse optimized.
|
||||
|
||||
- In high quality mode, full search is used for motion
|
||||
vectors. Currently, only fcode = 1 is used for both H263/MPEG1. Half
|
||||
pel vectors are used.
|
||||
|
||||
I also plan to improve the bitrate control which is too simplistic.
|
||||
|
||||
Audio:
|
||||
-----
|
||||
|
||||
- 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. There
|
||||
are still some problems of overflow. A minimal psycho acoustic model
|
||||
could be added. Currently, stereo is supported, but not joint
|
||||
stereo.
|
||||
|
||||
- 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.
|
63
doc/TODO
Normal file
63
doc/TODO
Normal file
@ -0,0 +1,63 @@
|
||||
ffmpeg TODO list:
|
||||
----------------
|
||||
|
||||
(in approximate decreasing priority order)
|
||||
|
||||
Planned in next release:
|
||||
|
||||
(DONE) - apply header fixes
|
||||
(DONE) - mpeg audio decoder.
|
||||
(DONE) - fix decode/encode codec string.
|
||||
(DONE) - fix EINTR error if VIDIOCSYNC.
|
||||
(DONE) - add CONFIG system.
|
||||
(DONE) - merge mplayer mmx accel.
|
||||
(DONE) - fix emms bug.
|
||||
(DONE) - add I263 handling
|
||||
(DONE) - add RV10 decoding.
|
||||
(DONE) - add true pgm support.
|
||||
(DONE) - msmpeg4 0x18 fix.
|
||||
- add qscale out.
|
||||
- add format autodetect with content (for example to distinguish
|
||||
mpegvideo/mpegmux).
|
||||
- add external alloc for libavcodec (avifile request).
|
||||
- fix -sameq in grabbing
|
||||
- find a solution to clear feed1.ffm if format change.
|
||||
- new grab architecture : use avformat instead of audio: and video:
|
||||
protocol.
|
||||
- correct PTS handling to sync audio and video.
|
||||
- fix 0 size picture in AVIs = skip picture
|
||||
|
||||
BUGS:
|
||||
|
||||
- fix audio/video synchro (including real player synchro bugs)
|
||||
|
||||
- Improve the bit rate control for video codecs.
|
||||
|
||||
- see ov511.o YUV problem (420 instead of 420P).
|
||||
|
||||
- fix file caching pb in windows (add correct headers)
|
||||
|
||||
- add low pass filter to suppress noise coming from cheap TV cards.
|
||||
|
||||
- test/debug audio in flash format
|
||||
|
||||
- sort out ASF streaming pbs.
|
||||
|
||||
- Improve psycho acoustic model for AC3 & mpeg audio.
|
||||
|
||||
FEATURES:
|
||||
|
||||
- add MPEG4 in mpegmux support.
|
||||
|
||||
- add RTP / multicast layer.
|
||||
|
||||
- demux streams for CCTV : N streams in one stream. Add option to
|
||||
generate multiple streams.
|
||||
|
||||
- add disconnect user option in stat.html.
|
||||
|
||||
- deny & allow + password in ffserver.
|
||||
|
||||
- graphical user interface.
|
||||
|
||||
- animated gif as output format
|
181
doc/ffmpeg.txt
Normal file
181
doc/ffmpeg.txt
Normal file
@ -0,0 +1,181 @@
|
||||
*************** FFMPEG soft VCR documentation *****************
|
||||
|
||||
0) Introduction
|
||||
---------------
|
||||
|
||||
FFmpeg is a very fast video and audio encoder. It can grab from
|
||||
files or from a live audio/video source.
|
||||
|
||||
The command line interface is designed to be intuitive, in the sense
|
||||
that ffmpeg tries to figure out all the paramters, when
|
||||
possible. You have usually to give only the target bitrate you want.
|
||||
|
||||
FFmpeg can also convert from any sample rate to any other, and
|
||||
resize video on the fly with a high quality polyphase filter.
|
||||
|
||||
1) Video and Audio grabbing
|
||||
---------------------------
|
||||
|
||||
* ffmpeg can use a video4linux compatible video source and any Open
|
||||
Sound System audio 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. You must also set correctly the
|
||||
audio recording levels with a standard mixer.
|
||||
|
||||
2) Video and Audio file format convertion
|
||||
-----------------------------------------
|
||||
|
||||
* ffmpeg can use any supported file format and protocol as input :
|
||||
|
||||
examples:
|
||||
|
||||
ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
|
||||
|
||||
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. You must specify the size of the image with the '-s' option
|
||||
if ffmpeg cannot guess it.
|
||||
|
||||
* You can set several input files and output files:
|
||||
|
||||
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
|
||||
|
||||
Convert the audio file a.wav and the raw yuv video file a.yuv to mpeg file a.mpg
|
||||
|
||||
* you can also do audio and video convertions at the same time:
|
||||
|
||||
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
|
||||
|
||||
Convert the sample rate of a.wav to 22050 Hz and encode it to MPEG audio.
|
||||
|
||||
* you can encode to several formats at the same time and define a
|
||||
mapping from input stream to output streams:
|
||||
|
||||
ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
|
||||
|
||||
convert a.wav to a.mp2 at 64 kbits and b.mp2 at 128 kbits. '-map
|
||||
file:index' specify which input stream is used for each output
|
||||
stream, in the order of the definition of output streams.
|
||||
|
||||
NOTE: to see the supported input formats, use 'ffmpeg -formats'.
|
||||
|
||||
2) Invocation
|
||||
-------------
|
||||
|
||||
* The generic syntax is :
|
||||
|
||||
ffmpeg [[options][-i input_file]]... {[options] output_file}...
|
||||
|
||||
If no input file is given, audio/video grabbing is done.
|
||||
|
||||
As a general rule, options are applied to the next specified
|
||||
file. For example, if you give the '-b 64' option, it sets the video
|
||||
bitrate of the next file. Format option may be needed for raw input
|
||||
files.
|
||||
|
||||
By default, ffmpeg tries to convert as losslessly as possible: it
|
||||
uses the same audio and video parameter fors the outputs as the one
|
||||
specified for the inputs.
|
||||
|
||||
* Main options are:
|
||||
|
||||
-h show help
|
||||
-formats show available formats, codecs and protocols
|
||||
-L print the LICENSE
|
||||
-i filename input file name
|
||||
-y overwrite output files
|
||||
-t duration set recording time in seconds
|
||||
-f format set encoding format [guessed]
|
||||
-title string set the title
|
||||
-author string set the author
|
||||
-copyright string set the copyright
|
||||
-comment string set the comment
|
||||
|
||||
* Video Options are:
|
||||
|
||||
-s size set frame size [160x128]
|
||||
-r fps set frame rate [25]
|
||||
-b bitrate set the video bitrate in kbit/s [200]
|
||||
-vn disable video recording [no]
|
||||
|
||||
* Audio Options are:
|
||||
|
||||
-ar freq set the audio sampling freq [44100]
|
||||
-ab bitrate set the audio bitrate in kbit/s [64]
|
||||
-ac channels set the number of audio channels [1]
|
||||
-an disable audio recording [no]
|
||||
|
||||
Advanced options are:
|
||||
|
||||
-map file:stream set input stream mapping
|
||||
-g gop_size set the group of picture size [12]
|
||||
-intra use only intra frames [no]
|
||||
-qscale q use fixed video quantiser scale (VBR)
|
||||
-c comment set the comment string
|
||||
-vd device set video4linux device name [/dev/video]
|
||||
-vcodec codec force audio codec
|
||||
-me method set motion estimation method
|
||||
-ad device set audio device name [/dev/dsp]
|
||||
-acodec codec force audio codec
|
||||
|
||||
The output file can be "-" to output to a pipe. This is only possible
|
||||
with mpeg1 and h263 formats.
|
||||
|
||||
3) Protocols
|
||||
|
||||
ffmpeg handles also many protocols specified with the URL syntax.
|
||||
|
||||
Use 'ffmpeg -formats' to have a list of the supported protocols.
|
||||
|
||||
The protocol 'http:' is currently used only to communicate with
|
||||
ffserver (see the ffserver documentation). When ffmpeg will be a
|
||||
video player it will also be used for streaming :-)
|
||||
|
||||
4) File formats and codecs
|
||||
--------------------------
|
||||
|
||||
Use 'ffmpeg -formats' to have a list of the supported output
|
||||
formats. Only some formats are handled as input, but it will improve
|
||||
in the next versions.
|
||||
|
||||
5) Tips
|
||||
-------
|
||||
|
||||
- For streaming at very 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.
|
||||
|
||||
- If your computer is not fast enough, you can speed up the
|
||||
compression at the expense of the compression ratio. You can use
|
||||
'-me zero' to speed up motion estimation, and '-intra' to disable
|
||||
completly motion estimation (you have only I frames, which means it
|
||||
is about as good as JPEG compression).
|
||||
|
||||
- To have very low bitrates in audio, reduce the sampling frequency
|
||||
(down to 22050 kHz for mpeg audio, 22050 or 11025 for ac3).
|
||||
|
||||
- To have a constant quality (but a variable bitrate), use the option
|
||||
'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
|
||||
quality).
|
||||
|
||||
- When converting video files, you can use the '-sameq' option which
|
||||
uses in the encoder the same quality factor than in the decoder. It
|
||||
allows to be almost lossless in encoding.
|
261
doc/ffserver.conf
Normal file
261
doc/ffserver.conf
Normal file
@ -0,0 +1,261 @@
|
||||
# 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 8090
|
||||
|
||||
# Address on which the server is bound. Only useful if you have
|
||||
# several network interfaces.
|
||||
|
||||
BindAddress 0.0.0.0
|
||||
|
||||
# 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 -
|
||||
|
||||
##################################################################
|
||||
# Definition of the live feeds. Each live feed contains one video
|
||||
# and/or audio sequence coming from an ffmpeg encoder or another
|
||||
# ffserver. This sequence may be encoded simultaneously with several
|
||||
# codecs at several resolutions.
|
||||
|
||||
<Feed feed1.ffm>
|
||||
|
||||
# You must use 'ffmpeg' to send a live feed to ffserver. In this
|
||||
# example, you can type:
|
||||
#
|
||||
# ffmpeg http://localhost:8090/feed1.ffm
|
||||
|
||||
# ffserver can also do time shifting. It means that it can stream any
|
||||
# previously recorded live stream. The request should contain:
|
||||
# "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify
|
||||
# a path where the feed is stored on disk. You also specify the
|
||||
# maximum size of the feed (100M bytes here). Default:
|
||||
# File=/tmp/feed_name.ffm FileMaxSize=5M
|
||||
|
||||
File /tmp/feed1.ffm
|
||||
FileMaxSize 50M
|
||||
|
||||
</Feed>
|
||||
|
||||
##################################################################
|
||||
# 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>
|
||||
|
||||
# coming from live feed 'feed1'
|
||||
Feed feed1.ffm
|
||||
|
||||
# Format of the stream : you can choose among:
|
||||
# mpeg : MPEG1 multiplexed video and audio
|
||||
# mpegvideo : 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). Not finished yet.
|
||||
# swf : Macromedia flash(tm) compatible stream
|
||||
# avi : AVI format (open divx video, mpeg audio sound)
|
||||
# master : special ffmpeg stream used to duplicate a server
|
||||
|
||||
Format mpeg
|
||||
|
||||
# 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 (default: 160x128)
|
||||
# W : width, H : height
|
||||
# The following abbreviation are defined : sqcif, qcif, cif, 4cif
|
||||
VideoSize 160x128
|
||||
|
||||
# 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
|
||||
|
||||
# Suppress audio
|
||||
#NoAudio
|
||||
|
||||
# Suppress video
|
||||
#NoVideo
|
||||
|
||||
</Stream>
|
||||
|
||||
# second mpeg stream with high frame rate
|
||||
|
||||
<Stream test2.mpg>
|
||||
Feed feed1.ffm
|
||||
Format mpegvideo
|
||||
VideoBitRate 128
|
||||
VideoFrameRate 25
|
||||
#VideoSize 352x240
|
||||
VideoGopSize 25
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# A stream coming from a file : you only need to set the input
|
||||
# filename and optionnally a new format. Supported conversions:
|
||||
# avi -> asf
|
||||
#
|
||||
|
||||
<Stream file.asf>
|
||||
|
||||
#File "/tmp/file.avi"
|
||||
File "tmp/file.avi"
|
||||
# avi must be converted to asf to be streamed
|
||||
Format asf
|
||||
|
||||
</Stream>
|
||||
|
||||
# another file streaming
|
||||
<Stream file.mp3>
|
||||
|
||||
File "tmp/file.mp3"
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Real with audio only at 32 kbits
|
||||
|
||||
<Stream test.ra>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format rm
|
||||
AudioBitRate 32
|
||||
NoVideo
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Real with audio and video at 64 kbits
|
||||
|
||||
<Stream test.rm>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format rm
|
||||
|
||||
AudioBitRate 32
|
||||
VideoBitRate 20
|
||||
VideoFrameRate 2
|
||||
VideoIntraOnly
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Mpeg audio layer 2 at 64 kbits.
|
||||
|
||||
<Stream test.mp2>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format mp2
|
||||
AudioBitRate 64
|
||||
AudioSampleRate 44100
|
||||
|
||||
</Stream>
|
||||
|
||||
<Stream test1.mp2>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format mp2
|
||||
AudioBitRate 32
|
||||
AudioSampleRate 16000
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Multipart JPEG
|
||||
|
||||
<Stream test.mjpg>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format mpjpeg
|
||||
|
||||
VideoFrameRate 2
|
||||
VideoIntraOnly
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Multipart JPEG
|
||||
|
||||
<Stream test.jpg>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format jpeg
|
||||
|
||||
# the parameters are choose here to take the same output as the
|
||||
# Multipart JPEG one.
|
||||
VideoFrameRate 2
|
||||
VideoIntraOnly
|
||||
#VideoSize 352x240
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Another stream : Flash
|
||||
|
||||
<Stream test.swf>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format swf
|
||||
|
||||
VideoFrameRate 2
|
||||
VideoIntraOnly
|
||||
|
||||
</Stream>
|
||||
|
||||
|
||||
##################################################################
|
||||
# Another stream : ASF compatible
|
||||
|
||||
<Stream test.asf>
|
||||
|
||||
Feed feed1.ffm
|
||||
Format asf
|
||||
|
||||
AudioBitRate 64
|
||||
AudioSampleRate 44100
|
||||
VideoFrameRate 2
|
||||
VideoIntraOnly
|
||||
|
||||
</Stream>
|
||||
|
||||
##################################################################
|
||||
# Special stream : server status
|
||||
|
||||
<Stream stat.html>
|
||||
|
||||
Format status
|
||||
|
||||
</Stream>
|
1577
ffserver.c
Normal file
1577
ffserver.c
Normal file
File diff suppressed because it is too large
Load Diff
22
libav/Makefile
Normal file
22
libav/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
include ../config.mk
|
||||
CFLAGS= -O2 -Wall -g -I../libavcodec
|
||||
|
||||
OBJS= rm.o mpeg.o asf.o avienc.o jpegenc.o swf.o wav.o raw.o \
|
||||
avidec.o ffm.o \
|
||||
avio.o aviobuf.o utils.o \
|
||||
udp.o http.o file.o grab.o audio.o img.o
|
||||
|
||||
LIB= libav.a
|
||||
|
||||
all: $(LIB)
|
||||
|
||||
$(LIB): $(OBJS)
|
||||
rm -f $@
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -f *.o *~ *.a
|
||||
|
Loading…
Reference in New Issue
Block a user