mirror of https://github.com/FFmpeg/FFmpeg.git
parent
de6d9b6404
commit
85f07f223d
9 changed files with 4344 additions and 0 deletions
@ -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]
|
@ -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). |
@ -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. |
@ -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 |
@ -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. |
@ -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> |
File diff suppressed because it is too large
Load Diff
@ -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