2 # - libnut enabled no (http://www.nut-container.org/)
5 %bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable
6 %bcond_without autoreqdep # don't care about package name deps generated by rpm
7 %bcond_without imlib2 # don't build imlib2 vhook module
9 %define _snap 2008-09-08
10 %define snap %(echo %{_snap} | tr -d -)
12 Summary: Realtime audio/video encoder and streaming server
13 Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
16 Release: 4.%{snap}.%{rel}
17 # LGPL or GPL, chosen at configure time (GPL version is more featured)
18 # (postprocessing, ac3, xvid, x264, faad)
19 License: GPL v2+ with LGPL v2.1+ parts
20 Group: Applications/Multimedia
21 #Source0: http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz
22 Source0: http://ffmpeg.mplayerhq.hu/%{name}-export-snapshot.tar.bz2
23 # Source0-md5: 9b2ef1d3f550420264124836107fc008
24 Source1: ffserver.init
25 Source2: ffserver.sysconfig
26 Source3: ffserver.conf
27 Patch0: %{name}-img_convert_symbol.patch
28 URL: http://ffmpeg.mplayerhq.hu/
29 BuildRequires: SDL-devel
31 BuildRequires: amrnb-devel >= 6.1.0.4
32 BuildRequires: amrwb-devel >= 7.0.0.1
34 BuildRequires: dirac-devel
35 BuildRequires: faac-devel
36 BuildRequires: faad2-devel
37 BuildRequires: freetype-devel
39 # require version with altivec support fixed
40 BuildRequires: gcc >= 5:3.3.2-3
42 BuildRequires: a52dec-libs-devel
43 %{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
44 BuildRequires: lame-libs-devel
45 BuildRequires: libdc1394-devel
46 BuildRequires: libgsm-devel
47 BuildRequires: libraw1394-devel
48 BuildRequires: libtheora-devel >= 1.0-0.alpha7
49 BuildRequires: libtool >= 2:1.4d-3
50 BuildRequires: libvorbis-devel
51 BuildRequires: libx264-devel >= 0.1.2-1.20080801
57 BuildRequires: perl-tools-pod
58 BuildRequires: pkgconfig
59 BuildRequires: rpmbuild(macros) >= 1.470
60 BuildRequires: schroedinger-devel
62 BuildRequires: texinfo
63 %{?with_amr:BuildRequires: unzip}
64 BuildRequires: xvid-devel >= 1:1.1.0
65 BuildRequires: zlib-devel
66 %{?with_autoreqdep:BuildConflicts: libpostproc}
67 Requires: %{name}-libs = %{version}-%{release}
68 Requires: xvid >= 1:1.1.0
69 Obsoletes: libpostproc
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define _noautoreqdep libGL.so.1 libGLU.so.1
74 %define specflags -fno-strict-aliasing
76 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
77 %define specflags_ia32 -fomit-frame-pointer
78 # -mmmx is needed to enable <mmintrin.h> code.
79 %define specflags_i586 -mmmx
80 %define specflags_i686 -mmmx
83 ffmpeg is a hyper fast realtime audio/video encoder and streaming
84 server. It can grab from a standard Video4Linux video source and
85 convert it into several file formats based on DCT/motion compensation
86 encoding. Sound is compressed in MPEG audio layer 2 or using an AC3
89 %description -l pl.UTF-8
90 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
91 oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
92 ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
93 formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
94 jest kompresowany do strumienia MPEG audio layer 2 lub używając
95 strumienia kompatybilnego z AC3.
98 Summary: ffmpeg libraries
99 Summary(pl.UTF-8): Biblioteki ffmpeg
103 This package contains ffmpeg shared libraries.
105 %description libs -l pl.UTF-8
106 Ten pakiet zawiera biblioteki współdzielone ffmpeg.
109 Summary: ffmpeg header files
110 Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
111 Group: Development/Libraries
112 Requires: %{name}-libs = %{version}-%{release}
115 Requires: amrnb-devel
116 Requires: amrwb-devel >= 5.3.0
118 Requires: dirac-devel
120 Requires: faad2-devel
121 Requires: lame-libs-devel
122 Requires: libgsm-devel
123 Requires: libtheora-devel >= 1.0-0.alpha7
124 Requires: libvorbis-devel
125 Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
126 Requires: xvid-devel >= 1:1.1.0
128 Obsoletes: libpostproc-devel
133 %description devel -l pl.UTF-8
134 Pliki nagłówkowe ffmpeg.
137 Summary: ffmpeg static libraries
138 Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
139 Group: Development/Libraries
140 Requires: %{name}-devel = %{version}-%{release}
143 ffmpeg static libraries (libavcodec and libavformat).
145 %description static -l pl.UTF-8
146 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
149 Summary: FFplay - SDL-based media player
150 Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
151 Group: Applications/Multimedia
152 Requires: %{name}-libs = %{version}-%{release}
155 FFplay is a very simple and portable media player using the FFmpeg
156 libraries and the SDL library. It is mostly used as a test bench for
157 the various APIs of FFmpeg.
159 %description ffplay -l pl.UTF-8
160 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
161 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
162 testowania różnych API FFmpeg.
164 %package vhook-imlib2
165 Summary: imlib2 based hook
166 Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
168 Requires: %{name}-libs = %{version}-%{release}
170 %description vhook-imlib2
171 This module implements a text overlay for a video image. Currently it
172 supports a fixed overlay or reading the text from a file. The string
173 is passed through strftime so that it is easy to imprint the date and
176 %description vhook-imlib2 -l pl.UTF-8
177 Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
178 obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
179 przepuszczany przez strftime, więc łatwo umieścić datę i czas na
183 Summary: FFserver video server
184 Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
186 Requires(post,preun): /sbin/chkconfig
187 Requires: %{name}-libs = %{version}-%{release}
188 Requires: rc-scripts >= 0.4.0.10
190 %description ffserver
191 FFserver is a streaming server for both audio and video. It supports
192 several live feeds, streaming from files and time shifting on live
193 feeds (you can seek to positions in the past on each live feed,
194 provided you specify a big enough feed storage in ffserver.conf).
196 %description ffserver -l pl.UTF-8
197 FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
198 źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
199 czasie dla źródeł na żywo (można przeskakiwać na położenia w
200 przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
201 dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
204 %setup -q -n %{name}-export-%{_snap}
207 # package the grep result for mplayer, the result formatted as mplayer/configure
208 cat <<EOF > ffmpeg-config
210 _libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
211 _libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
212 _libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
213 _libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
214 _libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
215 _libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
216 _libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
218 cat <<'EOF' >> ffmpeg-config
222 echo $_libavdecoders_all
225 echo $_libavencoders_all
228 echo $_libavparsers_all
234 echo $_libavdemuxers_all
237 echo $_libavmuxers_all
240 echo $_libavprotocols_all
262 # - it's not autoconf configure
263 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
265 --arch=%{_target_base_arch} \
266 --prefix=%{_prefix} \
267 --libdir=%{_libdir} \
268 --shlibdir=%{_libdir} \
269 --mandir=%{_mandir} \
271 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
272 --extra-ldflags="%{rpmldflags}" \
274 --disable-optimizations \
275 --disable-stripping \
281 --enable-libfaadbin \
285 --enable-libmp3lame \
286 --enable-libschroedinger \
295 %ifnarch %{ix86} %{x8664}
310 rm -rf $RPM_BUILD_ROOT
311 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
312 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
313 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
316 DESTDIR=$RPM_BUILD_ROOT
318 install config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
319 install libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
320 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
321 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
322 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
323 mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
325 # install as ffmpeg-avconfig to avoid with possible programs looking for
326 # ffmpeg-config and expecting --libs output from it which is not implemented
327 # simple to do (by querying pkgconfig), but why?
328 install ffmpeg-config $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
331 rm -rf $RPM_BUILD_ROOT
333 %post libs -p /sbin/ldconfig
334 %postun libs -p /sbin/ldconfig
337 %groupadd -g 167 ffserver
338 %useradd -g ffserver -u 167 ffserver
341 /sbin/chkconfig --add ffserver
342 %service ffserver restart
345 if [ "$1" = 0 ]; then
346 %service ffserver stop
347 /sbin/chkconfig --del ffserver
351 if [ "$1" = 0 ]; then
353 %groupremove ffserver
357 %defattr(644,root,root,755)
358 %doc Changelog README doc/*.html doc/TODO
359 %attr(755,root,root) %{_bindir}/ffmpeg
360 %{_mandir}/man1/ffmpeg.1*
363 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
365 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
366 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
367 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
368 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
369 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
370 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.51
371 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
372 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
373 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.49
374 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
375 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
376 %dir %{_libdir}/vhook
377 %attr(755,root,root) %{_libdir}/vhook/drawtext.so
378 %attr(755,root,root) %{_libdir}/vhook/fish.so
379 %attr(755,root,root) %{_libdir}/vhook/null.so
380 %attr(755,root,root) %{_libdir}/vhook/ppm.so
381 %attr(755,root,root) %{_libdir}/vhook/watermark.so
384 %defattr(644,root,root,755)
385 %doc doc/optimization.txt
386 %attr(755,root,root) %{_libdir}/libavcodec.so
387 %attr(755,root,root) %{_libdir}/libavdevice.so
388 %attr(755,root,root) %{_libdir}/libavformat.so
389 %attr(755,root,root) %{_libdir}/libavutil.so
390 %attr(755,root,root) %{_libdir}/libpostproc.so
391 %attr(755,root,root) %{_libdir}/libswscale.so
392 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
393 %{_includedir}/ffmpeg
394 %{_includedir}/libavcodec
395 %{_includedir}/libavdevice
396 %{_includedir}/libavformat
397 %{_includedir}/libavutil
398 %{_includedir}/libpostproc
399 %{_includedir}/libswscale
400 %{_pkgconfigdir}/*.pc
403 %defattr(644,root,root,755)
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_bindir}/ffplay
409 %{_mandir}/man1/ffplay.1*
413 %defattr(644,root,root,755)
414 %attr(755,root,root) %{_libdir}/vhook/imlib2.so
418 %defattr(644,root,root,755)
419 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
420 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
421 %attr(755,root,root) %{_sbindir}/ffserver
422 %attr(754,root,root) /etc/rc.d/init.d/ffserver
423 %{_mandir}/man1/ffserver.1*
424 %dir %attr(770,root,ffserver) /var/cache/ffserver
425 %dir %attr(770,root,ffserver) /var/log/ffserver