-# TODO: libzmq ?
#
# How to deal with ffmpeg/opencv checken-egg problem:
# 1. make-request -r --without opencv ffmpeg.spec
%bcond_with nonfree # non free options of package (currently: faac)
%bcond_with aacplus # AAC+ encoding via libaacplus (requires nonfree)
%bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree)
+%bcond_without bs2b # BS2B audio filter support
%bcond_without caca # textual display using libcaca
+%bcond_without decklink # Blackmagic DeskLink output support
%bcond_without flite # flite voice synthesis support
%bcond_without frei0r # frei0r video filtering
+%bcond_without fribidi # fribidi support
%bcond_without gme # Game Music Emu support
%bcond_without ilbc # iLBC de/encoding via WebRTC libilbc
%bcond_without ladspa # LADSPA audio filtering
%bcond_without ssh # SFTP protocol support via libssh
%bcond_without openal # OpenAL 1.1 capture support
-%bcond_with opencl # OpenCL code [OpenCL 1.2, but Mesa 9.1.x headers don't suffice]
+%bcond_without opencl # OpenCL 1.2 code
+%bcond_without opengl # OpenGL rendering support
%bcond_without opencv # OpenCV video filtering
%bcond_without pulseaudio # PulseAudio input support
%bcond_without quvi # quvi input support
%bcond_without shine # shine fixed-point MP3 encoder
+%bcond_with smb # SMB support via libsmbclient
%bcond_without soxr # SoX Resampler support
-%bcond_without x264 # x264 encoder
+%bcond_without x264 # H.264 x264 encoder
+%bcond_without x265 # H.265/HEVC x265 encoder
%bcond_without utvideo # Ut Video decoder
%bcond_without va # VAAPI (Video Acceleration API)
%bcond_without vidstab # vid.stab video stabilization support
%bcond_without vpx # VP8, a high-quality video codec
%bcond_without wavpack # wavpack encoding support
+%bcond_without webp # WebP encoding support
%bcond_without zmq # 0MQ message passing
%bcond_without zvbi # teletext via libzvbi
%bcond_without doc # don't build docs
+%ifnarch %{ix86} %{x8664} arm
+%undefine with_x265
+%endif
+%ifarch i386 i486
+%undefine with_x265
+%endif
Summary: FFmpeg - a very fast video and audio converter
Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
Name: ffmpeg
-Version: 2.1.1
-Release: 2.2
+Version: 2.4
+Release: 1
# LGPL or GPL, chosen at configure time (GPL version is more featured)
-# (postprocessing, some filters, x264, xavs, xvid, x11grab)
+# (postprocessing, some filters, x264, x265, xavs, xvid, x11grab)
# using v3 allows Apache-licensed libs (opencore-amr, libvo-*enc)
License: GPL v3+ with LGPL v3+ parts
Group: Applications/Multimedia
Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.bz2
-# Source0-md5: 2719ab2b3311ac3775b9cdeb66c54849
+# Source0-md5: 89a9c464cdf572f9028285eee605454d
Source1: ffserver.init
Source2: ffserver.sysconfig
Source3: ffserver.conf
Patch0: %{name}-opencv24.patch
URL: http://www.ffmpeg.org/
+%{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK}
%{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
%{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
+%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
BuildRequires: SDL-devel >= 1.2.1
BuildRequires: alsa-lib-devel
BuildRequires: bzip2-devel
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
%{?with_frei0r:BuildRequires: frei0r-devel}
+%{?with_fribidi:BuildRequires: fribidi-devel}
%{?with_gme:BuildRequires: game-music-emu-devel}
%ifarch ppc
# require version with altivec support fixed
%{?with_aacplus:BuildRequires: libaacplus-devel >= 2.0.0}
BuildRequires: libass-devel
BuildRequires: libavc1394-devel
+%{?with_bs2b:BuildRequires: libbs2b-devel}
BuildRequires: libbluray-devel
%{?with_caca:BuildRequires: libcaca-devel}
BuildRequires: libcdio-paranoia-devel >= 0.90-2
BuildRequires: libraw1394-devel >= 2
BuildRequires: librtmp-devel
%{?with_ssh:BuildRequires: libssh-devel}
+%{?with_smb:BuildRequires: libsmbclient-devel}
BuildRequires: libtheora-devel >= 1.0-0.beta3
BuildRequires: libtool >= 2:1.4d-3
BuildRequires: libv4l-devel
%{?with_va:BuildRequires: libva-devel >= 1.0.3}
BuildRequires: libvdpau-devel >= 0.2
BuildRequires: libvorbis-devel
-%{?with_vpx:BuildRequires: libvpx-devel >= 0.9.7}
+%{?with_vpx:BuildRequires: libvpx-devel >= 1.3.0}
+%{?with_webp:BuildRequires: libwebp-devel}
# X264_BUILD >= 118
%{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245}
+# X265_BUILD >= 17
+%{?with_x265:BuildRequires: libx265-devel >= 1.3}
%ifarch %{ix86}
%ifnarch i386 i486
BuildRequires: nasm
%{?with_doc:BuildRequires: texinfo}
BuildRequires: twolame-devel
%{?with_utvideo:BuildRequires: utvideo-devel >= 12}
-%{?with_vidstab:BuildRequires: vid.stab-devel}
+%{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
BuildRequires: vo-aacenc-devel
BuildRequires: vo-amrwbenc-devel
%{?with_wavpack:BuildRequires: wavpack-devel}
Summary: ffmpeg libraries
Summary(pl.UTF-8): Biblioteki ffmpeg
Group: Libraries
+%if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
+# uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
+Requires: gnutls-libs >= 3.0.20
+%endif
+%{?with_vpx:Requires: libvpx >= 1.3.0}
%description libs
This package contains the ffmpeg shared libraries:
Requires: %{name}-libs = %{version}-%{release}
# Libs.private from *.pc (unreasonably they are all the same)
%{?with_opencl:Requires: OpenCL-devel >= 1.2}
+%{?with_opengl:Requires: OpenGL-devel}
Requires: SDL-devel >= 1.2.1
Requires: alsa-lib-devel
Requires: bzip2-devel
%{?with_flite:Requires: flite-devel >= 1.4}
Requires: fontconfig-devel
Requires: freetype-devel
+%{?with_fribidi:Requires: fribidi-devel}
%{?with_gme:Requires: game-music-emu-devel}
Requires: jack-audio-connection-kit-devel
Requires: lame-libs-devel >= 3.98.3
Requires: libass-devel
Requires: libavc1394-devel
Requires: libbluray-devel
+%{?with_bs2b:Requires: libbs2b-devel}
%{?with_caca:Requires: libcaca-devel}
Requires: libcdio-paranoia-devel >= 0.90-2
Requires: libdc1394-devel >= 2
%{?with_quvi:Requires: libquvi-devel}
Requires: libraw1394-devel >= 2
Requires: librtmp-devel
+%{?with_smb:Requires: libsmbclient-devel}
Requires: libtheora-devel >= 1.0-0.beta3
%{?with_va:Requires: libva-devel >= 1.0.3}
Requires: libvorbis-devel
-%{?with_vpx:Requires: libvpx-devel >= 0.9.7}
+%{?with_vpx:Requires: libvpx-devel >= 1.3.0}
+%{?with_webp:Requires: libwebp-devel}
%{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245}
+%{?with_x265:Requires: libx265-devel >= 0.7}
Requires: opencore-amr-devel
%{?with_opencv:Requires: opencv-devel}
Requires: openjpeg-devel >= 1.5
Requires: speex-devel >= 1:1.2-rc1
Requires: twolame-devel
%{?with_utvideo:Requires: utvideo-devel >= 12}
-%{?with_vidstab:Requires: vid.stab-devel}
+%{?with_vidstab:Requires: vid.stab-devel >= 0.98}
Requires: vo-aacenc-devel
Requires: vo-amrwbenc-devel
%{?with_wavpack:Requires: wavpack-devel}
dużej przestrzeni na dane skonfigurowanej w ffserver.conf).
%package doc
-Summary: Manual for ffmpeg
-Summary(fr.UTF-8): Documentation pour ffmpeg
-Summary(it.UTF-8): Documentazione di ffmpeg
-Summary(pl.UTF-8): Podręcznik dla ffmpeg
+Summary: FFmpeg documentation in HTML format
+Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
Group: Documentation
%if "%{_rpmversion}" >= "5"
BuildArch: noarch
%endif
%description doc
-Documentation for ffmpeg.
-
-%description doc -l fr.UTF-8
-Documentation pour ffmpeg.
-
-%description doc -l it.UTF-8
-Documentazione di ffmpeg.
+FFmpeg documentation in HTML format.
%description doc -l pl.UTF-8
-Dokumentacja do ffmpeg.
+Dokumentacja pakietu FFmpeg w formacie HTML.
%prep
%setup -q
--libdir=%{_libdir} \
--shlibdir=%{_libdir} \
--mandir=%{_mandir} \
- --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags} -I/usr/include/freetype2" \
+ --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}" \
--extra-ldflags="%{rpmcflags} %{rpmldflags}" \
--cc="%{__cc}" \
--disable-debug \
--disable-stripping \
--enable-avfilter \
--enable-avresample \
+ %{?with_decklink:--enable-decklink} \
--enable-gnutls \
--enable-gpl \
--enable-version3 \
%{?with_aacplus:--enable-libaacplus} \
--enable-libass \
--enable-libbluray \
+ %{?with_bs2b:--enable-libbs2b} \
%{?with_caca:--enable-libcaca} \
--enable-libcelt \
--enable-libcdio \
%{?with_fdk_aac:--enable-libfdk-aac} \
%{?with_flite:--enable-libflite} \
--enable-libfreetype \
+ %{?with_fribidi:--enable-libfribidi} \
%{?with_gme:--enable-libgme} \
--enable-libgsm \
--enable-libiec61883 \
--enable-librtmp \
--enable-libschroedinger \
%{?with_shine:--enable-libshine} \
+ %{?with_smb:--enable-libsmbclient} \
%{?with_soxr:--enable-libsoxr} \
--enable-libspeex \
%{?with_ssh:--enable-libssh} \
--enable-libvorbis \
%{?with_vpx:--enable-libvpx} \
%{?with_wavpack:--enable-libwavpack} \
+ %{?with_webp:--enable-libwebp} \
%{?with_x264:--enable-libx264} \
+ %{?with_x265:--enable-libx265} \
--enable-libxavs \
--enable-libxvid \
%{?with_zmq:--enable-libzmq} \
%{?with_zvbi:--enable-libzvbi} \
%{?with_openal:--enable-openal} \
%{?with_opencl:--enable-opencl} \
+ %{?with_opengl:--enable-opengl} \
--enable-postproc \
--enable-pthreads \
--enable-shared \
# install nonstandard, non-public headers manually
cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
-for a in libavutil/*/bswap.h; do
+for a in libavutil/*/{asm,bswap}.h; do
install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
done
cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
# simple to do (by querying pkgconfig), but why?
install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
+# packaged as %doc in -doc
+%{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.html
+
+install -d $RPM_BUILD_ROOT%{_examplesdir}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc CREDITS LICENSE MAINTAINERS README doc/{APIchanges,RELEASE_NOTES}
+%doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
%attr(755,root,root) %{_bindir}/ffmpeg
%attr(755,root,root) %{_bindir}/ffprobe
%attr(755,root,root) %{_bindir}/qt-faststart
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.55
+%attr(755,root,root) %ghost %{_libdir}/libavcodec.so.56
%attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.55
+%attr(755,root,root) %ghost %{_libdir}/libavdevice.so.56
%attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.3
+%attr(755,root,root) %ghost %{_libdir}/libavfilter.so.5
%attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavformat.so.55
+%attr(755,root,root) %ghost %{_libdir}/libavformat.so.56
%attr(755,root,root) %{_libdir}/libavresample.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavresample.so.1
+%attr(755,root,root) %ghost %{_libdir}/libavresample.so.2
%attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavutil.so.52
+%attr(755,root,root) %ghost %{_libdir}/libavutil.so.54
%attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.52
+%attr(755,root,root) %ghost %{_libdir}/libpostproc.so.53
%attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libswresample.so.0
+%attr(755,root,root) %ghost %{_libdir}/libswresample.so.1
%attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libswscale.so.2
+%attr(755,root,root) %ghost %{_libdir}/libswscale.so.3
%files devel
%defattr(644,root,root,755)
%{_mandir}/man3/libswresample.3*
%{_mandir}/man3/libswscale.3*
%endif
+%{_examplesdir}/%{name}-%{version}
%files static
%defattr(644,root,root,755)