2 # - libnut enabled no (http://www.nut-container.org/)
5 %bcond_with nonfree # non free options of package
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 v3+ with LGPL v3+ parts
17 Group: Applications/Multimedia
18 Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2
19 # Source0-md5: d6142a9a5821d6a6262a6edb903faa24
20 Source1: ffserver.init
21 Source2: ffserver.sysconfig
22 Source3: ffserver.conf
23 Patch0: %{name}-bug-803.patch
24 Patch1: %{name}-gsm.patch
25 Patch2: faadbin-libfaadname.patch
26 # vhook is gone. this patch needs different approach
27 #PatchX: imagewidth.patch
28 URL: http://www.ffmpeg.org/
29 BuildRequires: SDL-devel
30 BuildRequires: dirac-devel >= 1.0.0
31 BuildRequires: faac-devel
32 BuildRequires: faad2-devel
33 BuildRequires: freetype-devel
35 # require version with altivec support fixed
36 BuildRequires: gcc >= 5:3.3.2-3
38 %{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0}
39 BuildRequires: lame-libs-devel
40 BuildRequires: libdc1394-devel
41 BuildRequires: libgsm-devel
42 BuildRequires: libraw1394-devel
43 BuildRequires: libtheora-devel >= 1.0-0.beta3
44 BuildRequires: libtool >= 2:1.4d-3
45 BuildRequires: libva-devel >= 1.0.3
46 BuildRequires: libvdpau-devel
47 BuildRequires: libvorbis-devel
48 BuildRequires: libvpx-devel >= 0.9.1
50 BuildRequires: libx264-devel >= 0.1.3-1.20100424_2245.1
51 BuildRequires: opencore-amr-devel
52 BuildRequires: openjpeg-devel >= 1.3-2
53 BuildRequires: speex-devel >= 1:1.2-rc1
59 BuildRequires: perl-Encode
60 BuildRequires: perl-tools-pod
61 BuildRequires: pkgconfig
62 BuildRequires: rpmbuild(macros) >= 1.470
63 BuildRequires: schroedinger-devel
65 BuildRequires: texi2html
66 BuildRequires: texinfo
67 BuildRequires: xvid-devel >= 1:1.1.0
68 BuildRequires: zlib-devel
69 %{?with_autoreqdep:BuildConflicts: libpostproc}
70 Requires: %{name}-libs = %{version}-%{release}
71 Requires: xvid >= 1:1.1.0
72 Obsoletes: libpostproc
73 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75 %define _noautoreqdep libGL.so.1 libGLU.so.1
77 %define specflags -fno-strict-aliasing
79 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
80 %define specflags_ia32 -fomit-frame-pointer
81 # -mmmx is needed to enable <mmintrin.h> code.
82 %define specflags_i586 -mmmx
83 %define specflags_i686 -mmmx
84 %define specflags_ppc -fPIC
87 FFmpeg is a complete solution to record, convert and stream audio and
88 video. It is a command line tool to convert one video file format to
89 another. It also supports grabbing and encoding in real time from a TV
92 %description -l pl.UTF-8
93 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym
94 oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane
95 ze standardowego urządzenia Video4Linux i przekonwertować je w kilka
96 formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk
97 jest kompresowany do strumienia MPEG audio layer 2 lub używając
98 strumienia kompatybilnego z AC3.
101 Summary: ffmpeg libraries
102 Summary(pl.UTF-8): Biblioteki ffmpeg
106 This package contains:
107 - the codec library from the ffmpeg project. It supports most existing
108 encoding formats (MPEG, DivX, MPEG4, AC3, DV...),
109 - demuxer library from the ffmpeg project. It supports most existing
110 file formats (AVI, MPEG, OGG, Matroska, ASF...),
111 - video postprocessing library from the ffmpeg project.
113 %description libs -l pl.UTF-8
114 Ten pakiet zawiera biblioteki współdzielone ffmpeg.
117 Summary: ffmpeg header files
118 Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
119 Group: Development/Libraries
120 Requires: %{name}-libs = %{version}-%{release}
122 Requires: dirac-devel
124 Requires: faad2-devel
125 Requires: lame-libs-devel
126 Requires: libgsm-devel
127 Requires: libraw1394-devel
128 Requires: libtheora-devel >= 1.0-0.alpha7
129 Requires: libvorbis-devel
130 Requires: libx264-devel >= 0.1.2-1.20060828_2245.1
131 Requires: xvid-devel >= 1:1.1.0
133 Obsoletes: libpostproc-devel
138 %description devel -l pl.UTF-8
139 Pliki nagłówkowe ffmpeg.
142 Summary: ffmpeg static libraries
143 Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
144 Group: Development/Libraries
145 Requires: %{name}-devel = %{version}-%{release}
148 ffmpeg static libraries (libavcodec and libavformat).
150 %description static -l pl.UTF-8
151 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
154 Summary: FFplay - SDL-based media player
155 Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
156 Group: Applications/Multimedia
157 Requires: %{name}-libs = %{version}-%{release}
160 FFplay is a very simple and portable media player using the FFmpeg
161 libraries and the SDL library. It is mostly used as a test bench for
162 the various APIs of FFmpeg.
164 %description ffplay -l pl.UTF-8
165 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
166 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
167 testowania różnych API FFmpeg.
170 Summary: FFserver video server
171 Summary(pl.UTF-8): FFserver - serwer strumieni obrazu
173 Requires(post,preun): /sbin/chkconfig
174 Requires: %{name}-libs = %{version}-%{release}
175 Requires: rc-scripts >= 0.4.0.10
177 %description ffserver
178 FFserver is a streaming server for both audio and video. It supports
179 several live feeds, streaming from files and time shifting on live
180 feeds (you can seek to positions in the past on each live feed,
181 provided you specify a big enough feed storage in ffserver.conf).
183 %description ffserver -l pl.UTF-8
184 FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka
185 źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w
186 czasie dla źródeł na żywo (można przeskakiwać na położenia w
187 przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio
188 dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
196 # package the grep result for mplayer, the result formatted as ./mplayer/configure
197 cat <<EOF > ffmpeg-avconfig
199 _libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
200 _libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
201 _libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
202 _libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`"
203 _libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
204 _libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
205 _libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`"
207 cat <<'EOF' >> ffmpeg-avconfig
211 echo $_libavdecoders_all
214 echo $_libavencoders_all
217 echo $_libavparsers_all
223 echo $_libavdemuxers_all
226 echo $_libavmuxers_all
229 echo $_libavprotocols_all
251 # - it's not autoconf configure
252 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
254 --arch=%{_target_base_arch} \
255 --prefix=%{_prefix} \
256 --libdir=%{_libdir} \
257 --shlibdir=%{_libdir} \
258 --mandir=%{_mandir} \
260 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}" \
261 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
263 --disable-optimizations \
264 --disable-stripping \
271 --enable-libfaadbin \
273 --enable-libmp3lame \
274 --enable-libschroedinger \
281 --enable-libopencore-amrnb \
282 --enable-libopencore-amrwb \
283 --enable-libopenjpeg \
290 %ifnarch %{ix86} %{x8664}
300 --enable-runtime-cpudetect
302 # force oldscaler build
303 sed -i -e 's|#define.*CONFIG_OLDSCALER.*0|#define CONFIG_OLDSCALER 1|g' config.h
308 rm -rf $RPM_BUILD_ROOT
309 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
310 $RPM_BUILD_ROOT%{_includedir}/ffmpeg \
311 $RPM_BUILD_ROOT/var/{cache,log}/ffserver
314 DESTDIR=$RPM_BUILD_ROOT
316 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
317 cp -a libavutil/intreadwrite.h $RPM_BUILD_ROOT%{_includedir}/libavutil
318 cp -a libavutil/bswap.h $RPM_BUILD_ROOT%{_includedir}/libavutil
319 cp -a libavutil/common.h $RPM_BUILD_ROOT%{_includedir}/libavutil
320 cp -a libavutil/mem.h $RPM_BUILD_ROOT%{_includedir}/libavutil
321 for a in libavutil/*/bswap.h; do
322 install -D $a $RPM_BUILD_ROOT%{_includedir}/$a
324 cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
325 cp -a libavformat/avio.h $RPM_BUILD_ROOT%{_includedir}/libavformat
327 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ffserver
328 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ffserver
329 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/ffserver.conf
330 mv -f $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/ffserver
332 # install as ffmpeg-avconfig to avoid with possible programs looking for
333 # ffmpeg-config and expecting --libs output from it which is not implemented
334 # simple to do (by querying pkgconfig), but why?
335 install ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
338 rm -rf $RPM_BUILD_ROOT
340 %post libs -p /sbin/ldconfig
341 %postun libs -p /sbin/ldconfig
344 %groupadd -g 167 ffserver
345 %useradd -g ffserver -u 167 ffserver
348 /sbin/chkconfig --add ffserver
349 %service ffserver restart
352 if [ "$1" = 0 ]; then
353 %service ffserver stop
354 /sbin/chkconfig --del ffserver
358 if [ "$1" = 0 ]; then
360 %groupremove ffserver
364 %defattr(644,root,root,755)
365 %doc Changelog README doc/*.html doc/TODO
366 %attr(755,root,root) %{_bindir}/ffmpeg
367 %attr(755,root,root) %{_bindir}/ffprobe
368 %dir %{_datadir}/ffmpeg
369 %{_datadir}/ffmpeg/*.ffpreset
370 %{_mandir}/man1/ffmpeg.1*
371 %{_mandir}/man1/ffprobe.1*
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.52
377 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.52
379 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.1
381 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.52
383 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.50
385 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.51
387 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.0
391 %defattr(644,root,root,755)
392 %doc doc/optimization.txt
393 %attr(755,root,root) %{_libdir}/libavcodec.so
394 %attr(755,root,root) %{_libdir}/libavdevice.so
395 %attr(755,root,root) %{_libdir}/libavfilter.so
396 %attr(755,root,root) %{_libdir}/libavformat.so
397 %attr(755,root,root) %{_libdir}/libavutil.so
398 %attr(755,root,root) %{_libdir}/libpostproc.so
399 %attr(755,root,root) %{_libdir}/libswscale.so
400 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
401 %{_includedir}/ffmpeg
402 %{_includedir}/libavcodec
403 %{_includedir}/libavdevice
404 %{_includedir}/libavfilter
405 %{_includedir}/libavformat
406 %{_includedir}/libavutil
407 %{_includedir}/libpostproc
408 %{_includedir}/libswscale
409 %{_pkgconfigdir}/*.pc
412 %defattr(644,root,root,755)
416 %defattr(644,root,root,755)
417 %attr(755,root,root) %{_bindir}/ffplay
418 %{_mandir}/man1/ffplay.1*
421 %defattr(644,root,root,755)
422 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ffserver.conf
423 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ffserver
424 %attr(755,root,root) %{_sbindir}/ffserver
425 %attr(754,root,root) /etc/rc.d/init.d/ffserver
426 %{_mandir}/man1/ffserver.1*
427 %dir %attr(770,root,ffserver) /var/cache/ffserver
428 %dir %attr(770,root,ffserver) /var/log/ffserver