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 Summary: FFmpeg is a very fast video and audio converter
10 Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni
14 # LGPL or GPL, chosen at configure time (GPL version is more featured)
15 # (postprocessing, ac3, xvid, x264, faad)
16 License: GPL v2+ with LGPL v2.1+ parts
17 Group: Applications/Multimedia
18 Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
19 # Source0-md5: be8503f15c3b81ba00eb8379ca8dcf33
20 Source1: ffserver.init
21 Source2: ffserver.sysconfig
22 Source3: ffserver.conf
23 Patch0: %{name}-x264.patch
24 Patch1: %{name}-bug-803.patch
25 Patch2: imagewidth.patch
26 URL: http://www.ffmpeg.org/
27 BuildRequires: SDL-devel
29 BuildRequires: amrnb-devel >= 6.1.0.4
30 BuildRequires: amrwb-devel >= 7.0.0.1
32 BuildRequires: dirac-devel >= 1.0.0
33 BuildRequires: faac-devel
34 BuildRequires: faad2-devel
35 BuildRequires: freetype-devel
37 # require version with altivec support fixed
38 BuildRequires: gcc >= 5:3.3.2-3
40 %{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
41 BuildRequires: lame-libs-devel
42 BuildRequires: libdc1394-devel
43 BuildRequires: libgsm-devel
44 BuildRequires: libraw1394-devel
45 BuildRequires: libtheora-devel >= 1.0-0.beta3
46 BuildRequires: libtool >= 2:1.4d-3
47 BuildRequires: libvorbis-devel
48 BuildRequires: libx264-devel >= 0.1.3
49 BuildRequires: speex-devel
55 BuildRequires: perl-Encode
56 BuildRequires: perl-tools-pod
57 BuildRequires: pkgconfig
58 BuildRequires: rpmbuild(macros) >= 1.470
59 BuildRequires: schroedinger-devel
60 BuildRequires: speex-devel
62 BuildRequires: texi2html
63 BuildRequires: texinfo
64 %{?with_amr:BuildRequires: unzip}
65 BuildRequires: xvid-devel >= 1:1.1.0
66 BuildRequires: zlib-devel
67 %{?with_autoreqdep:BuildConflicts: libpostproc}
68 Requires: %{name}-libs = %{version}-%{release}
69 Requires: xvid >= 1:1.1.0
70 Obsoletes: libpostproc
71 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
73 %define _noautoreqdep libGL.so.1 libGLU.so.1
75 %define specflags -fno-strict-aliasing
77 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
78 %define specflags_ia32 -fomit-frame-pointer
79 # -mmmx is needed to enable <mmintrin.h> code.
80 %define specflags_i586 -mmmx
81 %define specflags_i686 -mmmx
82 %define specflags_ppc -fPIC
85 FFmpeg is a complete solution to record, convert and stream audio and
86 video. It is a command line tool to convert one video file format to
87 another. It also supports grabbing and encoding in real time from a TV
90 %description -l pl.UTF-8
91 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
92 oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
93 ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
94 formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
95 jest kompresowany do strumienia MPEG audio layer 2 lub używając
96 strumienia kompatybilnego z AC3.
99 Summary: ffmpeg libraries
100 Summary(pl.UTF-8): Biblioteki ffmpeg
104 This package contains:
105 - the codec library from the ffmpeg project. It supports most existing
106 encoding formats (MPEG, DivX, MPEG4, AC3, DV...),
107 - demuxer library from the ffmpeg project. It supports most existing
108 file formats (AVI, MPEG, OGG, Matroska, ASF...),
109 - video postprocessing library from the ffmpeg project.
111 %description libs -l pl.UTF-8
112 Ten pakiet zawiera biblioteki współdzielone ffmpeg.
115 Summary: ffmpeg header files
116 Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
117 Group: Development/Libraries
118 Requires: %{name}-libs = %{version}-%{release}
121 Requires: amrnb-devel
122 Requires: amrwb-devel >= 5.3.0
124 Requires: dirac-devel
126 Requires: faad2-devel
127 Requires: lame-libs-devel
128 Requires: libgsm-devel
129 Requires: libraw1394-devel
130 Requires: libtheora-devel >= 1.0-0.alpha7
131 Requires: libvorbis-devel
132 Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
133 Requires: xvid-devel >= 1:1.1.0
135 Obsoletes: libpostproc-devel
140 %description devel -l pl.UTF-8
141 Pliki nagłówkowe ffmpeg.
144 Summary: ffmpeg static libraries
145 Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
146 Group: Development/Libraries
147 Requires: %{name}-devel = %{version}-%{release}
150 ffmpeg static libraries (libavcodec and libavformat).
152 %description static -l pl.UTF-8
153 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
156 Summary: FFplay - SDL-based media player
157 Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
158 Group: Applications/Multimedia
159 Requires: %{name}-libs = %{version}-%{release}
162 FFplay is a very simple and portable media player using the FFmpeg
163 libraries and the SDL library. It is mostly used as a test bench for
164 the various APIs of FFmpeg.
166 %description ffplay -l pl.UTF-8
167 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
168 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
169 testowania różnych API FFmpeg.
171 %package vhook-imlib2
172 Summary: imlib2 based hook
173 Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2
175 Requires: %{name}-libs = %{version}-%{release}
177 %description vhook-imlib2
178 This module implements a text overlay for a video image. Currently it
179 supports a fixed overlay or reading the text from a file. The string
180 is passed through strftime so that it is easy to imprint the date and
183 %description vhook-imlib2 -l pl.UTF-8
184 Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie
185 obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest
186 przepuszczany przez strftime, więc łatwo umieścić datę i czas na
190 Summary: FFserver video server
191 Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
193 Requires(post,preun): /sbin/chkconfig
194 Requires: %{name}-libs = %{version}-%{release}
195 Requires: rc-scripts >= 0.4.0.10
197 %description ffserver
198 FFserver is a streaming server for both audio and video. It supports
199 several live feeds, streaming from files and time shifting on live
200 feeds (you can seek to positions in the past on each live feed,
201 provided you specify a big enough feed storage in ffserver.conf).
203 %description ffserver -l pl.UTF-8
204 FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
205 źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
206 czasie dla źródeł na żywo (można przeskakiwać na położenia w
207 przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
208 dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
216 # package the grep result for mplayer, the result formatted as ./mplayer/configure
217 cat <<EOF > ffmpeg-avconfig
219 _libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
220 _libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
221 _libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
222 _libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
223 _libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
224 _libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
225 _libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
227 cat <<'EOF' >> ffmpeg-avconfig
231 echo $_libavdecoders_all
234 echo $_libavencoders_all
237 echo $_libavparsers_all
243 echo $_libavdemuxers_all
246 echo $_libavmuxers_all
249 echo $_libavprotocols_all
271 # - it's not autoconf configure
272 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
274 --arch=%{_target_base_arch} \
275 --prefix=%{_prefix} \
276 --libdir=%{_libdir} \
277 --shlibdir=%{_libdir} \
278 --mandir=%{_mandir} \
280 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
281 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
283 --disable-optimizations \
284 --disable-stripping \
291 --enable-libfaadbin \
293 --enable-libmp3lame \
294 --enable-libschroedinger \
304 %ifnarch %{ix86} %{x8664}
316 # force oldscaler build
317 sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
322 rm -rf $RPM_BUILD_ROOT
323 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
324 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
325 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
328 DESTDIR=$RPM_BUILD_ROOT
330 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
331 cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
332 cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
333 cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
334 cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
335 for a in libavutil/*/bswap.h; do
336 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
338 cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
339 cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
341 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
342 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
343 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
344 mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
346 # install as ffmpeg-avconfig to avoid with possible programs looking for
347 # ffmpeg-config and expecting --libs output from it which is not implemented
348 # simple to do (by querying pkgconfig), but why?
349 install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
352 rm -rf $RPM_BUILD_ROOT
354 %post libs -p /sbin/ldconfig
355 %postun libs -p /sbin/ldconfig
358 %groupadd -g 167 ffserver
359 %useradd -g ffserver -u 167 ffserver
362 /sbin/chkconfig --add ffserver
363 %service ffserver restart
366 if [ "$1" = 0 ]; then
367 %service ffserver stop
368 /sbin/chkconfig --del ffserver
372 if [ "$1" = 0 ]; then
374 %groupremove ffserver
378 %defattr(644,root,root,755)
379 %doc Changelog README doc/*.html doc/TODO
380 %attr(755,root,root) %{_bindir}/ffmpeg
381 %dir %{_datadir}/ffmpeg
382 %{_datadir}/ffmpeg/*.ffpreset
383 %{_mandir}/man1/ffmpeg.1*
386 %defattr(644,root,root,755)
387 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
389 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
391 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.0
393 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
395 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.49
397 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
398 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
399 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
400 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
402 %dir %{_libdir}/vhook
403 %attr(755,root,root) %{_libdir}/vhook/drawtext.so
404 %attr(755,root,root) %{_libdir}/vhook/fish.so
405 %attr(755,root,root) %{_libdir}/vhook/null.so
406 %attr(755,root,root) %{_libdir}/vhook/ppm.so
407 %attr(755,root,root) %{_libdir}/vhook/watermark.so
410 %defattr(644,root,root,755)
411 %doc doc/optimization.txt
412 %attr(755,root,root) %{_libdir}/libavcodec.so
413 %attr(755,root,root) %{_libdir}/libavdevice.so
414 %attr(755,root,root) %{_libdir}/libavfilter.so
415 %attr(755,root,root) %{_libdir}/libavformat.so
416 %attr(755,root,root) %{_libdir}/libavutil.so
417 %attr(755,root,root) %{_libdir}/libpostproc.so
418 %attr(755,root,root) %{_libdir}/libswscale.so
419 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
420 %{_includedir}/ffmpeg
421 %{_includedir}/libavcodec
422 %{_includedir}/libavdevice
423 %{_includedir}/libavfilter
424 %{_includedir}/libavformat
425 %{_includedir}/libavutil
426 %{_includedir}/libpostproc
427 %{_includedir}/libswscale
428 %{_pkgconfigdir}/*.pc
431 %defattr(644,root,root,755)
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{_bindir}/ffplay
437 %{_mandir}/man1/ffplay.1*
441 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_libdir}/vhook/imlib2.so
446 %defattr(644,root,root,755)
447 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
448 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
449 %attr(755,root,root) %{_sbindir}/ffserver
450 %attr(754,root,root) /etc/rc.d/init.d/ffserver
451 %{_mandir}/man1/ffserver.1*
452 %dir %attr(770,root,ffserver) /var/cache/ffserver
453 %dir %attr(770,root,ffserver) /var/log/ffserver