| 1 | # Note: this .spec is borrowed from ffmpeg-2.6.8-1.fc22.src.rpm (rpmfusion.org)
|
|---|
| 2 |
|
|---|
| 3 | # TODO: add make test to %%check section
|
|---|
| 4 |
|
|---|
| 5 | %global _without_frei0r 1
|
|---|
| 6 | %global _without_opencv 1
|
|---|
| 7 | %global _without_ladspa 1
|
|---|
| 8 | %global _without_openal 1
|
|---|
| 9 | %global _without_lame 1
|
|---|
| 10 | %global _without_cdio 1
|
|---|
| 11 | %global _without_theora 1
|
|---|
| 12 | %global _without_vorbis 1
|
|---|
| 13 | %global _without_vaapi 1
|
|---|
| 14 | %global _without_x264 1
|
|---|
| 15 | %global _without_x265 1
|
|---|
| 16 | %global _without_xvidcore 1
|
|---|
| 17 | %global _without_pulse 1
|
|---|
| 18 |
|
|---|
| 19 | %global _without_extra 1
|
|---|
| 20 |
|
|---|
| 21 | Summary: Digital VCR and streaming server
|
|---|
| 22 | Name: ffmpeg
|
|---|
| 23 | Version: 2.8.6
|
|---|
| 24 | Release: 2%{?dist}
|
|---|
| 25 | %if 0%{?_with_amr:1}
|
|---|
| 26 | License: GPLv3+
|
|---|
| 27 | %else
|
|---|
| 28 | License: GPLv2+
|
|---|
| 29 | %endif
|
|---|
| 30 | URL: http://ffmpeg.org/
|
|---|
| 31 | #Source0: http://ffmpeg.org/releases/ffmpeg-%{version}.tar.bz2
|
|---|
| 32 | Vendor: bww bitwise works GmbH
|
|---|
| 33 | Requires: %{name}-libs = %{version}-%{release}
|
|---|
| 34 |
|
|---|
| 35 | %define github_name FFmpeg
|
|---|
| 36 | %define github_url https://github.com/bitwiseworks/%{github_name}/archive
|
|---|
| 37 | %define github_rev 2587a3aa8d80fb40a0b96d84deda3140bdb4aac8
|
|---|
| 38 |
|
|---|
| 39 | Source: %{github_name}-%{github_rev}.zip
|
|---|
| 40 |
|
|---|
| 41 | BuildRequires: gcc make curl zip
|
|---|
| 42 |
|
|---|
| 43 | BuildRequires: bzip2-devel
|
|---|
| 44 | BuildRequires: freetype-devel
|
|---|
| 45 | BuildRequires: fontconfig-devel
|
|---|
| 46 | %{?_with_celt:BuildRequires: celt-devel}
|
|---|
| 47 | %{?_with_dirac:BuildRequires: dirac-devel}
|
|---|
| 48 | %{?_with_faac:BuildRequires: faac-devel}
|
|---|
| 49 | %{?_with_fdk_aac:BuildRequires: fdk-aac-devel}
|
|---|
| 50 | BuildRequires: freetype-devel
|
|---|
| 51 | %{!?_without_frei0r:BuildRequires: frei0r-devel}
|
|---|
| 52 | %{!?_without_extra:BuildRequires: gnutls-devel}
|
|---|
| 53 | %{!?_without_extra:BuildRequires: gsm-devel}
|
|---|
| 54 | %{!?_without_lame:BuildRequires: lame-devel >= 3.98.3}
|
|---|
| 55 | %{?_with_jack:BuildRequires: jack-audio-connection-kit-devel}
|
|---|
| 56 | %{!?_without_ladspa:BuildRequires: ladspa-devel}
|
|---|
| 57 | %{!?_without_extra:BuildRequires: libass-devel}
|
|---|
| 58 | %{!?_without_cdio:BuildRequires: libcdio-paranoia-devel}
|
|---|
| 59 | #libcrystalhd is currently broken
|
|---|
| 60 | %{?_with_crystalhd:BuildRequires: libcrystalhd-devel}
|
|---|
| 61 | %{!?_without_extra:BuildRequires: libdc1394-devel}
|
|---|
| 62 | %{!?_without_extra:Buildrequires: libmodplug-devel}
|
|---|
| 63 | %{?_with_rtmp:BuildRequires: librtmp-devel}
|
|---|
| 64 | %{!?_without_theora:BuildRequires: libtheora-devel}
|
|---|
| 65 | %{!?_without_extra:BuildRequires: libv4l-devel}
|
|---|
| 66 | %{!?_without_extra:BuildRequires: libvdpau-devel}
|
|---|
| 67 | %{!?_without_vorbis:BuildRequires: libvorbis-devel}
|
|---|
| 68 | %{!?_without_vpx:BuildRequires: libvpx-devel >= 0.9.1}
|
|---|
| 69 | %ifarch %{ix86} x86_64
|
|---|
| 70 | %{!?_without_extra:BuildRequires: libXvMC-devel}
|
|---|
| 71 | %{?!_without_vaapi:BuildRequires: libva-devel >= 0.31.0}
|
|---|
| 72 | %endif
|
|---|
| 73 | %{?_with_amr:BuildRequires: opencore-amr-devel vo-amrwbenc-devel}
|
|---|
| 74 | %{!?_without_openal:BuildRequires: openal-soft-devel}
|
|---|
| 75 | %{?_with_opencl:BuildRequires: opencl-headers ocl-icd-devel}
|
|---|
| 76 | %{!?_without_opencv:BuildRequires: opencv-devel}
|
|---|
| 77 | %{!?_without_extra:BuildRequires: openjpeg-devel}
|
|---|
| 78 | %{!?_without_extra:BuildRequires: opus-devel}
|
|---|
| 79 | %{!?_without_pulse:BuildRequires: pulseaudio-libs-devel}
|
|---|
| 80 | #BuildRequires: perl(Pod::Man)
|
|---|
| 81 | %{!?_without_extra:BuildRequires: schroedinger-devel}
|
|---|
| 82 | BuildRequires: SDL-devel
|
|---|
| 83 | %{!?_without_extra:BuildRequires: soxr-devel}
|
|---|
| 84 | %{!?_without_extra:BuildRequires: speex-devel}
|
|---|
| 85 | #BuildRequires: subversion
|
|---|
| 86 | #BuildRequires: texi2html
|
|---|
| 87 | BuildRequires: texinfo
|
|---|
| 88 | %{!?_without_x264:BuildRequires: x264-devel >= 0.0.0-0.31}
|
|---|
| 89 | %{!?_without_x265:BuildRequires: x265-devel}
|
|---|
| 90 | %{!?_without_xvidcore:BuildRequires: xvidcore-devel}
|
|---|
| 91 | BuildRequires: zlib-devel
|
|---|
| 92 | %ifarch %{ix86} x86_64
|
|---|
| 93 | #BuildRequires: yasm
|
|---|
| 94 | %endif
|
|---|
| 95 |
|
|---|
| 96 | %description
|
|---|
| 97 | FFmpeg is a complete and free Internet live audio and video
|
|---|
| 98 | broadcasting solution for Linux/Unix. It also includes a digital
|
|---|
| 99 | VCR. It can encode in real time in many formats including MPEG1 audio
|
|---|
| 100 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
|
|---|
| 101 |
|
|---|
| 102 | %package libs
|
|---|
| 103 | Summary: Libraries for %{name}
|
|---|
| 104 |
|
|---|
| 105 | %description libs
|
|---|
| 106 | FFmpeg is a complete and free Internet live audio and video
|
|---|
| 107 | broadcasting solution for Linux/Unix. It also includes a digital
|
|---|
| 108 | VCR. It can encode in real time in many formats including MPEG1 audio
|
|---|
| 109 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
|
|---|
| 110 | This package contains the libraries for %{name}
|
|---|
| 111 |
|
|---|
| 112 | %package -n libavdevice
|
|---|
| 113 | Summary: Special devices muxing/demuxing library
|
|---|
| 114 |
|
|---|
| 115 | %description -n libavdevice
|
|---|
| 116 | Libavdevice is a complementary library to libavf "libavformat". It provides
|
|---|
| 117 | various "special" platform-specific muxers and demuxers, e.g. for grabbing
|
|---|
| 118 | devices, audio capture and playback etc.
|
|---|
| 119 |
|
|---|
| 120 | %package devel
|
|---|
| 121 | Summary: Development package for %{name}
|
|---|
| 122 | Requires: %{name}-libs = %{version}-%{release}
|
|---|
| 123 | Requires: libavdevice = %{version}-%{release}
|
|---|
| 124 | Requires: pkgconfig
|
|---|
| 125 |
|
|---|
| 126 | %description devel
|
|---|
| 127 | FFmpeg is a complete and free Internet live audio and video
|
|---|
| 128 | broadcasting solution for Linux/Unix. It also includes a digital
|
|---|
| 129 | VCR. It can encode in real time in many formats including MPEG1 audio
|
|---|
| 130 | and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
|
|---|
| 131 | This package contains development files for %{name}
|
|---|
| 132 |
|
|---|
| 133 | %debug_package
|
|---|
| 134 |
|
|---|
| 135 | %global ff_configure \
|
|---|
| 136 | ./configure \\\
|
|---|
| 137 | --prefix=%{_prefix} \\\
|
|---|
| 138 | --bindir=%{_bindir} \\\
|
|---|
| 139 | --datadir=%{_datadir}/%{name} \\\
|
|---|
| 140 | --incdir=%{_includedir}/%{name} \\\
|
|---|
| 141 | --libdir=%{_libdir} \\\
|
|---|
| 142 | --mandir=%{_mandir} \\\
|
|---|
| 143 | --arch=%{_arch} \\\
|
|---|
| 144 | --optflags="$RPM_OPT_FLAGS" \\\
|
|---|
| 145 | %{?_with_amr:--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3} \\\
|
|---|
| 146 | --enable-bzlib \\\
|
|---|
| 147 | %{!?_with_crystalhd:--disable-crystalhd} \\\
|
|---|
| 148 | %{!?_without_frei0r:--enable-frei0r} \\\
|
|---|
| 149 | %{!?_without_extra:--enable-gnutls} \\\
|
|---|
| 150 | %{!?_without_ladspa:--enable-ladspa} \\\
|
|---|
| 151 | %{!?_without_extra:--enable-libass} \\\
|
|---|
| 152 | %{!?_without_cdio:--enable-libcdio} \\\
|
|---|
| 153 | %{?_with_celt:--enable-libcelt} \\\
|
|---|
| 154 | %{!?_without_extra:--enable-libdc1394} \\\
|
|---|
| 155 | %{?_with_dirac:--enable-libdirac} \\\
|
|---|
| 156 | %{?_with_faac:--enable-libfaac --enable-nonfree} \\\
|
|---|
| 157 | %{?_with_fdk-aac:--enable-libfdk-aac --enable-nonfree} \\\
|
|---|
| 158 | %{!?_with_jack:--disable-indev=jack} \\\
|
|---|
| 159 | --enable-libfreetype \\\
|
|---|
| 160 | --enable-fontconfig \\\
|
|---|
| 161 | %{!?_without_extra:--enable-libgsm} \\\
|
|---|
| 162 | %{!?_without_lame:--enable-libmp3lame} \\\
|
|---|
| 163 | %{?_with_nvenc:--enable-nvenc --enable-nonfree} \\\
|
|---|
| 164 | %{!?_without_openal:--enable-openal} \\\
|
|---|
| 165 | %{?_with_opencl:--enable-opencl} \\\
|
|---|
| 166 | %{!?_without_opencv:--enable-libopencv} \\\
|
|---|
| 167 | %{!?_without_extra:--enable-libopenjpeg} \\\
|
|---|
| 168 | %{!?_without_extra:--enable-libopus} \\\
|
|---|
| 169 | %{!?_without_pulse:--enable-libpulse} \\\
|
|---|
| 170 | %{?_with_rtmp:--enable-librtmp} \\\
|
|---|
| 171 | %{!?_without_extra:--enable-libschroedinger} \\\
|
|---|
| 172 | %{!?_without_extra:--enable-libsoxr} \\\
|
|---|
| 173 | %{!?_without_extra:--enable-libspeex} \\\
|
|---|
| 174 | %{!?_without_theora:--enable-libtheora} \\\
|
|---|
| 175 | %{!?_without_vorbis:--enable-libvorbis} \\\
|
|---|
| 176 | %{!?_without_extra:--enable-libv4l2} \\\
|
|---|
| 177 | %{!?_without_vpx:--enable-libvpx} \\\
|
|---|
| 178 | %{!?_without_x264:--enable-libx264} \\\
|
|---|
| 179 | %{!?_without_x265:--enable-libx265} \\\
|
|---|
| 180 | %{!?_without_xvidcore:--enable-libxvid} \\\
|
|---|
| 181 | %{!?_without_extra:--enable-x11grab} \\\
|
|---|
| 182 | --enable-avfilter \\\
|
|---|
| 183 | --enable-avresample \\\
|
|---|
| 184 | --enable-postproc \\\
|
|---|
| 185 | %{!?_without_extra:--enable-pthreads} \\\
|
|---|
| 186 | --disable-static \\\
|
|---|
| 187 | --enable-shared \\\
|
|---|
| 188 | --enable-gpl \\\
|
|---|
| 189 | --disable-debug \\\
|
|---|
| 190 | --disable-stripping
|
|---|
| 191 |
|
|---|
| 192 |
|
|---|
| 193 | %prep
|
|---|
| 194 | %if %(sh -c 'if test -f "%{_sourcedir}/%{github_name}-%{github_rev}.zip" ; then echo 1 ; else echo 0 ; fi')
|
|---|
| 195 | %setup -n "%{github_name}-%{github_rev}" -q
|
|---|
| 196 | %else
|
|---|
| 197 | %setup -n "%{github_name}-%{github_rev}" -Tc
|
|---|
| 198 | rm -f "%{_sourcedir}/%{github_name}-%{github_rev}.zip"
|
|---|
| 199 | curl -sSL "%{github_url}/%{github_rev}.zip" -o "%{_sourcedir}/%{github_name}-%{github_rev}.zip"
|
|---|
| 200 | unzip "%{_sourcedir}/%{github_name}-%{github_rev}.zip" -d ..
|
|---|
| 201 | %endif
|
|---|
| 202 |
|
|---|
| 203 | # fix -O3 -g in host_cflags
|
|---|
| 204 | sed -i "s|-O3 -g|$RPM_OPT_FLAGS|" configure
|
|---|
| 205 |
|
|---|
| 206 | %build
|
|---|
| 207 | %{ff_configure}\
|
|---|
| 208 | --shlibdir=%{_libdir} \
|
|---|
| 209 | --disable-doc \
|
|---|
| 210 | %if 0%{?ffmpegsuffix:1}
|
|---|
| 211 | --build-suffix=%{ffmpegsuffix} \
|
|---|
| 212 | --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \
|
|---|
| 213 | %else
|
|---|
| 214 | %ifarch %{ix86}
|
|---|
| 215 | --cpu=%{_target_cpu} \
|
|---|
| 216 | %endif
|
|---|
| 217 | %ifarch %{ix86} x86_64 ppc ppc64
|
|---|
| 218 | --enable-runtime-cpudetect \
|
|---|
| 219 | %endif
|
|---|
| 220 | %endif
|
|---|
| 221 | --extra-ldflags="-Zhigh-mem" \
|
|---|
| 222 | --extra-libs="-lpoll -lmmap"
|
|---|
| 223 |
|
|---|
| 224 | make %{?_smp_mflags} V=1
|
|---|
| 225 | make documentation V=1
|
|---|
| 226 | make alltools V=1
|
|---|
| 227 |
|
|---|
| 228 | %install
|
|---|
| 229 | make install DESTDIR=$RPM_BUILD_ROOT V=1
|
|---|
| 230 | %if 0%{!?ffmpegsuffix:1}
|
|---|
| 231 | install -pm755 tools/qt-faststart.exe $RPM_BUILD_ROOT%{_bindir}
|
|---|
| 232 | %endif
|
|---|
| 233 |
|
|---|
| 234 | %post libs
|
|---|
| 235 |
|
|---|
| 236 | %postun libs
|
|---|
| 237 |
|
|---|
| 238 | %if 0%{!?ffmpegsuffix:1}
|
|---|
| 239 | %files
|
|---|
| 240 | %doc COPYING.* CREDITS README.md doc/ffserver.conf
|
|---|
| 241 | %{_bindir}/ffmpeg.exe
|
|---|
| 242 | %{_bindir}/ffplay.exe
|
|---|
| 243 | %{_bindir}/ffprobe.exe
|
|---|
| 244 | %{_bindir}/ffserver.exe
|
|---|
| 245 | %{_bindir}/qt-faststart.exe
|
|---|
| 246 | # @todo we miss perl(Pod::Man) or such
|
|---|
| 247 | #%{_mandir}/man1/ffmpeg*.1*
|
|---|
| 248 | #%{_mandir}/man1/ffplay*.1*
|
|---|
| 249 | #%{_mandir}/man1/ffprobe*.1*
|
|---|
| 250 | #%{_mandir}/man1/ffserver*.1*
|
|---|
| 251 | %{_datadir}/ffmpeg
|
|---|
| 252 | %endif
|
|---|
| 253 |
|
|---|
| 254 | %files libs
|
|---|
| 255 | %{_libdir}/*.dll
|
|---|
| 256 | %exclude %{_libdir}/avdevi*.dll
|
|---|
| 257 | # @todo we miss perl(Pod::Man) or such
|
|---|
| 258 | #%{_mandir}/man3/lib*.3.gz
|
|---|
| 259 |
|
|---|
| 260 | %files -n libavdevice
|
|---|
| 261 | %{_libdir}/avdevi*.dll
|
|---|
| 262 |
|
|---|
| 263 | %files devel
|
|---|
| 264 | %doc MAINTAINERS doc/APIchanges doc/*.txt
|
|---|
| 265 | %{_includedir}/ffmpeg
|
|---|
| 266 | %{_libdir}/pkgconfig/lib*.pc
|
|---|
| 267 | %{_libdir}/*.a
|
|---|
| 268 | %{_libdir}/*.lib
|
|---|
| 269 |
|
|---|
| 270 |
|
|---|
| 271 | %changelog
|
|---|
| 272 | * Mon Apr 18 2016 Dmitriy Kuminov <coding@dmik.org> 2.8.6-2
|
|---|
| 273 | - Enable high memory support.
|
|---|
| 274 |
|
|---|
| 275 | * Fri Apr 15 2016 Dmitriy Kuminov <coding@dmik.org> 2.8.6-1
|
|---|
| 276 | - Initial release of version 2.8.6.
|
|---|