# TODO # - libnut enabled no (http://www.nut-container.org/) # # Conditional build: %bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable %bcond_without autoreqdep # don't care about package name deps generated by rpm %bcond_without imlib2 # don't build imlib2 vhook module # %define _snap 2008-09-08 %define snap %(echo %{_snap} | tr -d -) %define rel 1 Summary: Realtime audio/video encoder and streaming server Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni Name: ffmpeg Version: 0.4.9 Release: 4.%{snap}.%{rel} # LGPL or GPL, chosen at configure time (GPL version is more featured) # (postprocessing, ac3, xvid, x264, faad) License: GPL v2+ with LGPL v2.1+ parts Group: Applications/Multimedia #Source0: http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz Source0: http://ffmpeg.mplayerhq.hu/%{name}-export-snapshot.tar.bz2 # Source0-md5: 9b2ef1d3f550420264124836107fc008 Source1: ffserver.init Source2: ffserver.sysconfig Source3: ffserver.conf Patch0: %{name}-img_convert_symbol.patch URL: http://ffmpeg.mplayerhq.hu/ BuildRequires: SDL-devel %if %{with amr} BuildRequires: amrnb-devel >= 6.1.0.4 BuildRequires: amrwb-devel >= 7.0.0.1 %endif BuildRequires: dirac-devel BuildRequires: faac-devel BuildRequires: faad2-devel BuildRequires: freetype-devel %ifarch ppc # require version with altivec support fixed BuildRequires: gcc >= 5:3.3.2-3 %endif BuildRequires: a52dec-libs-devel %{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0} BuildRequires: lame-libs-devel BuildRequires: libdc1394-devel BuildRequires: libgsm-devel BuildRequires: libraw1394-devel BuildRequires: libtheora-devel >= 1.0-0.alpha7 BuildRequires: libtool >= 2:1.4d-3 BuildRequires: libvorbis-devel BuildRequires: libx264-devel >= 0.1.2-1.20080801 %ifarch %{ix86} %ifnarch i386 i486 BuildRequires: nasm %endif %endif BuildRequires: perl-tools-pod BuildRequires: pkgconfig BuildRequires: rpmbuild(macros) >= 1.470 BuildRequires: schroedinger-devel BuildRequires: tetex BuildRequires: texinfo %{?with_amr:BuildRequires: unzip} BuildRequires: xvid-devel >= 1:1.1.0 BuildRequires: zlib-devel %{?with_autoreqdep:BuildConflicts: libpostproc} Requires: %{name}-libs = %{version}-%{release} Requires: xvid >= 1:1.1.0 Obsoletes: libpostproc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _noautoreqdep libGL.so.1 libGLU.so.1 %define specflags -fno-strict-aliasing # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one) %define specflags_ia32 -fomit-frame-pointer # -mmmx is needed to enable code. %define specflags_i586 -mmmx %define specflags_i686 -mmmx %description ffmpeg is a hyper fast realtime audio/video encoder and streaming server. 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. %description -l pl.UTF-8 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane ze standardowego urządzenia Video4Linux i przekonwertować je w kilka formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk jest kompresowany do strumienia MPEG audio layer 2 lub używając strumienia kompatybilnego z AC3. %package libs Summary: ffmpeg libraries Summary(pl.UTF-8): Biblioteki ffmpeg Group: Libraries %description libs This package contains ffmpeg shared libraries. %description libs -l pl.UTF-8 Ten pakiet zawiera biblioteki współdzielone ffmpeg. %package devel Summary: ffmpeg header files Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} # for libavcodec: %if %{with amr} Requires: amrnb-devel Requires: amrwb-devel >= 5.3.0 %endif Requires: dirac-devel Requires: faac-devel Requires: faad2-devel Requires: lame-libs-devel Requires: libgsm-devel Requires: libtheora-devel >= 1.0-0.alpha7 Requires: libvorbis-devel Requires: libx264-devel >= 0.1.2-1.20060828_2245.1 Requires: xvid-devel >= 1:1.1.0 Requires: zlib-devel Obsoletes: libpostproc-devel %description devel ffmpeg header files. %description devel -l pl.UTF-8 Pliki nagłówkowe ffmpeg. %package static Summary: ffmpeg static libraries Summary(pl.UTF-8): Statyczne biblioteki ffmpeg Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static ffmpeg static libraries (libavcodec and libavformat). %description static -l pl.UTF-8 Statyczne biblioteki ffmpeg (libavcodec i libavformat). %package ffplay Summary: FFplay - SDL-based media player Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL Group: Applications/Multimedia Requires: %{name}-libs = %{version}-%{release} %description ffplay FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a test bench for the various APIs of FFmpeg. %description ffplay -l pl.UTF-8 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do testowania różnych API FFmpeg. %package vhook-imlib2 Summary: imlib2 based hook Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2 Group: Libraries Requires: %{name}-libs = %{version}-%{release} %description vhook-imlib2 This module implements a text overlay for a video image. Currently it supports a fixed overlay or reading the text from a file. The string is passed through strftime so that it is easy to imprint the date and time onto the image. %description vhook-imlib2 -l pl.UTF-8 Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest przepuszczany przez strftime, więc łatwo umieścić datę i czas na obrazie. %package ffserver Summary: FFserver video server Summary(pl.UTF-8): FFserver - serwer strumieni obrazu Group: Daemons Requires(post,preun): /sbin/chkconfig Requires: %{name}-libs = %{version}-%{release} Requires: rc-scripts >= 0.4.0.10 %description ffserver FFserver is a streaming server for both audio and video. It supports several live feeds, streaming from files and time shifting on live feeds (you can seek to positions in the past on each live feed, provided you specify a big enough feed storage in ffserver.conf). %description ffserver -l pl.UTF-8 FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w czasie dla źródeł na żywo (można przeskakiwać na położenia w przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio dużej przestrzeni na dane skonfigurowanej w ffserver.conf). %prep %setup -q -n %{name}-export-%{_snap} %patch0 -p1 # package the grep result for mplayer, the result formatted as mplayer/configure cat < ffmpeg-config #! /bin/sh _libavdecoders_all="`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`" _libavencoders_all="`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`" _libavparsers_all="`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`" _libavbsfs_all="`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'`" _libavdemuxers_all="`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`" _libavmuxers_all="`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`" _libavprotocols_all="`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'`" EOF cat <<'EOF' >> ffmpeg-config case "$1" in --decoders) echo $_libavdecoders_all ;; --encoders) echo $_libavencoders_all ;; --parsers) echo $_libavparsers_all ;; --bsfs) echo $_libavbsfs_all ;; --demuxers) echo $_libavdemuxers_all ;; --muxers) echo $_libavmuxers_all ;; --protocols) echo $_libavprotocols_all ;; *) cat <