2 # - avisynth+ >= 3.7.3 https://github.com/AviSynth/AviSynthPlus
4 # - libtensorflow [-ltensorflow tensorflow/c/c_api.h]
5 # - AMF >= 1.4.29.0 (available at https://github.com/GPUOpen-LibrariesAndSDKs/AMF, where is original source?)
7 # How to deal with ffmpeg/opencv/chromaprint checken-egg problem:
8 # 1. make-request -r --with bootstrap ffmpeg.spec
9 # 2 bump release of opencv.spec and chromaprint.spec
10 # 3. make-request -r opencv.spec chromaprint.spec
11 # 4. bump release of ffmpeg.spec
12 # 5. make-request -r ffmpeg.spec
15 %bcond_with bootstrap # disable features to able to build without installed ffmpeg
16 %bcond_with nonfree # unblock non free options of package (currently: cuda_nvcc, decklib, fdk_aac, npp, openssl, libressl/libtls)
17 %bcond_without amr # AMR-NB/WB de/encoding via libopencore-amrnb/wb
18 %bcond_without aom # AV1 viden de/encoding via libaom
19 %bcond_without aribb24 # ARIB text and caption decoding via libaribb24
20 %bcond_without avisynth # AviSynth scripts support
21 %bcond_without avs # AVS encoding via xavs
22 %bcond_without avs2 # AVS2 de/encoding via libdavs2/libxavs2
23 %bcond_without bs2b # BS2B audio filter support
24 %bcond_without caca # textual display using libcaca
25 %bcond_without codec2 # codec2 support using libcodec2
26 %bcond_without chromaprint # audio fingerprinting with chromaprint
27 %bcond_with cudasdk # NVIDIA CUDA code using nvcc from CUDA SDK [BR: cuda.h, non-free]
28 %bcond_with dav1d # AV1 decoding via libdav1d
29 %bcond_without dc1394 # IIDC-1394 grabbing using libdc1394
30 %bcond_with decklink # Blackmagic DeckLink I/O support (requires nonfree)
31 %bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree)
32 %bcond_without ffnvcodec # NVIDIA codecs support using ffnvcodec headers (covered: cuda cuvid nvdec nvenc)
33 %bcond_without flite # flite voice synthesis support
34 %bcond_without frei0r # frei0r video filtering
35 %bcond_without fribidi # fribidi support in drawtext filter
36 %bcond_with glslang # GLSL->SPIRV compilation via libglslang
37 %bcond_without gme # Game Music Emu support
38 %bcond_without gsm # GSM de/encoding via libgsm
39 %bcond_without iec61883 # ec61883 via libiec61883
40 %bcond_without ilbc # iLBC de/encoding via WebRTC libilbc
41 %bcond_without kvazaar # Kvazaar HEVC encoder support
42 %bcond_without ladspa # LADSPA audio filtering
43 %bcond_without lcms # ICC profile support via lcms2
44 %bcond_with lensfun # lensfun lens correction
45 %bcond_with libaribcaption # ARIB text and caption decoding via libaribcaption
46 %bcond_with libdrm # Linux Direct Rendering Manager code
47 %bcond_without libjxl # JPEG XL de/encoding via libjxl
48 %bcond_with libklvanc # Kernel Labs VANC processing (in decklink driver)
49 %bcond_without libmysofa # sofalizer filter
50 %bcond_with libplacebo # libplacebo filters
51 %bcond_without librist # RIST support via librist
52 %bcond_with librsvg # SVG rasterization via librsvg
53 %bcond_with libxml2 # XML parsing using libxml2
54 %bcond_without lv2 # LV2 audio filtering
55 %bcond_with mfx # MFX hardware acceleration support
56 %bcond_without modplug # ModPlug via libmodplug
57 %bcond_with npp # NVIDIA Performance Primitives-based code (requires nonfree) [BR: libnppc+libnppi, npp.h]
58 %bcond_without omx # OpenMAX IL support
59 %bcond_without openal # OpenAL 1.1 capture support
60 %bcond_without opencl # OpenCL 1.2 code
61 %bcond_with opencv # OpenCV video filtering
62 %bcond_without opengl # OpenGL rendering support
63 %bcond_with openh264 # OpenH264 H.264 encoder
64 %bcond_without openmpt # OpenMPT module decoder
65 %bcond_with pocketsphinx # asr filter using PocketSphinx
66 %bcond_without pulseaudio # PulseAudio input support
67 %bcond_without rabbitmq # RabbitMQ support
68 %bcond_with rav1e # AV1 encoding using rav1e
69 %bcond_with rkmpp # Rockchip Media Process Platform code [implies libdrm]
70 %bcond_without rubberband # rubberband filter
71 %bcond_without shaderc # GLSL->SPIRV compilation via libshaderc
72 %bcond_without shine # shine fixed-point MP3 encoder
73 %bcond_with smb # SMB support via libsmbclient
74 %bcond_without snappy # Snappy compression support (needed for hap encoding)
75 %bcond_without soxr # SoX Resampler support
76 %bcond_without srt # Haivision SRT protocol support
77 %bcond_without ssh # SFTP protocol support via libssh
78 %bcond_with svtav1 # AV1 encoding via SVT-AV1
79 %bcond_with tesseract # OCR filter based on Tesseract
80 %bcond_without theora # Theora encoding via libtheora
81 %bcond_with uavs3d # AVS3 decoding via libuavs3d (TODO: enable when 1.1.41 released)
82 %bcond_with v4l2_request # V4L2 request API for stateless hw decoding
83 %bcond_without va # VAAPI (Video Acceleration API)
84 %bcond_without vapoursynth # VapourSynth demuxer
85 %bcond_without vidstab # vid.stab video stabilization support
86 %bcond_without vmaf # VMAF filter support
87 %bcond_without voamrwbenc # MR-WB encoding via libvo-amrwbenc
88 %bcond_with vpl # libvpl instead of MFX
89 %bcond_without vpx # VP8, a high-quality video codec
90 %bcond_without vulkan # Vulkan code
91 %bcond_without webp # WebP encoding support
92 %bcond_without x264 # H.264 x264 encoder
93 %bcond_without x265 # H.265/HEVC x265 encoder
94 %bcond_without xvid # vid encoding via xvidcore
95 %bcond_without zimg # zscale filter based on z.lib
96 %bcond_without zmq # 0MQ message passing
97 %bcond_without zvbi # teletext via libzvbi
98 %bcond_without doc # HTML documentation
99 %bcond_without static_libs # static libraries
100 %bcond_with tests # "make check" (some tests fail as of 2.5)
102 %if %{with bootstrap}
103 %undefine with_opencv
104 %undefine with_chromaprint
106 %if %{with rkmpp} || %{with v4l2_request}
107 %define with_libdrm 1
110 %undefine with_shaderc
116 %ifnarch %{ix86} %{x8664}
117 %undefine with_ffnvcodec
119 %ifnarch %{ix86} %{x8664} aarch64
122 %ifnarch %{ix86} %{x8664} %{arm}
128 %ifarch i686 pentium4 athlon %{x8664} x32
129 %define with_crystalhd 1
131 Summary: FFmpeg - a very fast video and audio converter
132 Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo
134 # NOTE: 7.0 prepared on DEVEL-7 branch, but other software is not ready (e.g. xine-lib 1.2.13, gstreamer-libav 1.24.2)
137 # LGPL or GPL, chosen at configure time (GPL version is more featured)
138 # GPL: frei0r libcdio libdavs2 rubberband vidstab x264 x265 xavs xavs2 xvid
139 # v3 (allows *GPLv3 or Apache-licensed libs): gmp lensfun opencore-amr vmaf vo-*enc rkmpp
141 License: GPL v3+ with LGPL v3+ parts
142 Group: Applications/Multimedia
143 Source0: https://ffmpeg.org/releases/%{name}-%{version}.tar.xz
144 # Source0-md5: 341d719415b7f95bb59f5016f2864ac6
145 Patch0: %{name}-omx-libnames.patch
146 Patch1: %{name}-atadenoise.patch
147 Patch2: opencv4.patch
148 Patch3: v4l2-request-hwdec.patch
149 Patch4: %{name}-vulkan1.3.280.patch
150 Patch5: %{name}-nvenc.patch
151 URL: https://ffmpeg.org/
152 %{?with_avisynth:BuildRequires: AviSynthPlus-devel >= 3.7.3}
153 %{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK >= 10.11}
154 %{?with_openal:BuildRequires: OpenAL-devel >= 1.1}
155 %{?with_opencl:BuildRequires: OpenCL-devel >= 1.2}
156 %{?with_opengl:BuildRequires: OpenGL-GLX-devel}
157 # libomxil-bellagio-devel or limoi-core-devel (just headers, library is dlopened at runtime)
158 %{?with_omx:BuildRequires: OpenMAX-IL-devel}
159 BuildRequires: SDL2-devel >= 2.0.1
160 BuildRequires: SDL2-devel < 3.0.0
161 %{?with_vulkan:BuildRequires: Vulkan-Loader-devel >= 1.3.277}
162 BuildRequires: alsa-lib-devel
163 %{?with_aom:BuildRequires: aom-devel >= 1.0.0}
164 %{?with_aribb24:BuildRequires: aribb24-devel}
165 BuildRequires: bzip2-devel
166 BuildRequires: celt-devel >= 0.11.0
167 %{?with_codec2:BuildRequires: codec2-devel}
168 %{?with_dav1d:BuildRequires: dav1d-devel >= 0.5.0}
169 %{?with_avs2:BuildRequires: davs2-devel >= 1.6}
170 %{?with_fdk_aac:BuildRequires: fdk-aac-devel}
171 %{?with_flite:BuildRequires: flite-devel >= 1.4}
172 BuildRequires: fontconfig-devel
173 BuildRequires: freetype-devel
174 %{?with_frei0r:BuildRequires: frei0r-devel}
175 %{?with_fribidi:BuildRequires: fribidi-devel}
176 %{?with_gme:BuildRequires: game-music-emu-devel}
177 BuildRequires: harfbuzz-devel
179 # require version with altivec support fixed
180 BuildRequires: gcc >= 5:3.3.2-3
182 %{?with_glslang:BuildRequires: glslang-devel >= 11}
183 BuildRequires: gmp-devel
184 BuildRequires: gnutls-devel
185 BuildRequires: jack-audio-connection-kit-devel
186 %{?with_kvazaar:BuildRequires: kvazaar-devel >= 2.0.0}
187 %{?with_ladspa:BuildRequires: ladspa-devel}
188 BuildRequires: lame-libs-devel >= 3.98.3
189 %{?with_lcms:BuildRequires: lcms2-devel >= 2.13}
190 %{?with_lensfun:BuildRequires: lensfun-devel >= 0.3.95}
191 %{?with_aribcaption:BuildRequires: libaribcaption-devel}
192 BuildRequires: libass-devel >= 0.11.0
193 %ifnarch %arch_with_atomics64
194 BuildRequires: libatomic-devel
196 %{?with_iec61883:BuildRequires: libavc1394-devel}
197 %{?with_bs2b:BuildRequires: libbs2b-devel}
198 BuildRequires: libbluray-devel
199 %{?with_caca:BuildRequires: libcaca-devel}
200 BuildRequires: libcdio-paranoia-devel >= 0.90-2
201 %{?with_chromaprint:BuildRequires: libchromaprint-devel}
202 %{?with_crystalhd:BuildRequires: libcrystalhd-devel}
203 %{?with_dc1394:BuildRequires: libdc1394-devel >= 2}
204 %{?with_libdrm:BuildRequires: libdrm-devel}
205 %{?with_gsm:BuildRequires: libgsm-devel}
206 %{?with_iec61883:BuildRequires: libiec61883-devel}
207 %{?with_libjxl:BuildRequires: libjxl-devel >= 0.7.0}
208 %{?with_libklvanc:BuildRequires: libklvanc-devel}
209 %{?with_modplug:BuildRequires: libmodplug-devel}
210 %{?with_libmysofa:BuildRequires: libmysofa-devel >= 0.7}
211 %{?with_openmpt:BuildRequires: libopenmpt-devel >= 0.4.5}
212 %{?with_libplacebo:BuildRequires: libplacebo-devel >= 4.192.0}
213 %if %{with dc1394} || %{with iec61883}
214 BuildRequires: libraw1394-devel >= 2
216 %{?with_librist:BuildRequires: librist-devel >= 0.2.7}
217 %{?with_librsvg:BuildRequires: librsvg-devel >= 2}
218 BuildRequires: librtmp-devel
219 %{?with_ssh:BuildRequires: libssh-devel >= 0.6.0}
220 %{?with_smb:BuildRequires: libsmbclient-devel}
221 %{?with_theora:BuildRequires: libtheora-devel >= 1.0-0.beta3}
222 BuildRequires: libtool >= 2:1.4d-3
223 BuildRequires: libv4l-devel
225 BuildRequires: libva-devel >= 1.0.3
226 BuildRequires: libva-drm-devel >= 1.0.3
227 BuildRequires: libva-x11-devel >= 1.0.3
229 BuildRequires: libvdpau-devel >= 1.3
230 BuildRequires: libvorbis-devel
231 %{?with_vpl:BuildRequires: libvpl-devel >= 2.6}
232 %{?with_vpx:BuildRequires: libvpx-devel >= 1.4.0}
233 %{?with_webp:BuildRequires: libwebp-devel >= 0.4.0}
235 %{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20130827_2245}
237 %{?with_x265:BuildRequires: libx265-devel >= 2.0}
238 # libxcb xcb-shm xcb-xfixes xcb-shape
239 BuildRequires: libxcb-devel >= 1.4
240 %{?with_libxml2:BuildRequires: libxml2-devel >= 2}
241 %{?with_lv2:BuildRequires: lilv-devel}
242 %{?with_v4l2_request:BuildRequires: linux-libc-headers >= 7:5.11.0}
243 %{?with_lv2:BuildRequires: lv2-devel}
244 %{?with_mfx:BuildRequires: mfx_dispatch-devel >= 1.28}
250 %{?with_ffnvcodec:BuildRequires: nv-codec-headers >= 12.1.14.0}
252 %{?with_amr:BuildRequires: opencore-amr-devel}
253 %{?with_opencv:BuildRequires: opencv-devel >= 2}
254 %{?with_openh264:BuildRequires: openh264-devel >= 1.3}
255 BuildRequires: openjpeg2-devel >= 2.1
256 BuildRequires: opus-devel
257 BuildRequires: perl-Encode
258 BuildRequires: perl-tools-pod
259 %{?with_pocketsphinx:BuildRequires: pocketsphinx-devel > 0.8}
260 BuildRequires: pkgconfig
261 %{?with_pulseaudio:BuildRequires: pulseaudio-devel}
262 %{?with_rabbitmq:BuildRequires: rabbitmq-c-devel >= 0.7.1}
263 %{?with_rav1e:BuildRequires: rav1e-devel >= 0.5.0}
264 %{?with_rkmpp:BuildRequires: rockchip-mpp-devel >= 1.3.7}
265 BuildRequires: rpmbuild(macros) >= 2.025
266 %{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.1}
267 %{?with_shaderc:BuildRequires: shaderc-devel >= 2019.1}
268 %{?with_shine:BuildRequires: shine-devel >= 3.0.0}
269 %{?with_snappy:BuildRequires: snappy-devel}
270 %{?with_soxr:BuildRequires: soxr-devel}
271 BuildRequires: speex-devel >= 1:1.2-rc1
272 %{?with_glslang:BuildRequires: spirv-tools-devel}
273 %{?with_srt:BuildRequires: srt-devel >= 1.3}
274 %{?with_svtav1:BuildRequires: svt-av1-devel >= 0.9.0}
275 BuildRequires: tar >= 1:1.22
276 %{?with_tesseract:BuildRequires: tesseract-devel}
277 %{?with_doc:BuildRequires: tetex}
278 %{?with_doc:BuildRequires: texi2html}
279 %{?with_doc:BuildRequires: texinfo}
280 BuildRequires: twolame-devel >= 0.3.10
281 %{?with_uavs3d:BuildRequires: uavs3d-devel >= 1.1.41}
282 %{?with_v4l2_request:BuildRequires: udev-devel}
283 %{?with_vapoursynth:BuildRequires: vapoursynth-devel >= 42}
284 %{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98}
285 %{?with_vmaf:BuildRequires: vmaf-devel >= 2.0.0}
286 %{?with_voamrwbenc:BuildRequires: vo-amrwbenc-devel}
287 %{?with_ilbc:BuildRequires: webrtc-libilbc-devel}
288 %{?with_avs:BuildRequires: xavs-devel}
289 %{?with_avs2:BuildRequires: xavs2-devel >= 1.3}
290 BuildRequires: xorg-lib-libX11-devel
291 BuildRequires: xorg-lib-libXext-devel
292 BuildRequires: xorg-lib-libXv-devel
293 %{?with_xvid:BuildRequires: xvid-devel >= 1:1.1.0}
295 BuildRequires: xz-devel
296 %{?with_zmq:BuildRequires: zeromq-devel >= 4.2.1}
297 %{?with_zimg:BuildRequires: zimg-devel >= 2.7.0}
298 BuildRequires: zlib-devel
299 %{?with_zvbi:BuildRequires: zvbi-devel >= 0.2.28}
300 # overflows maximum hash table size
301 BuildConflicts: pdksh < 5.2.14-57
302 Requires: %{name}-libs = %{version}-%{release}
304 Suggests: fonts-TTF-Roboto
305 Obsoletes: libpostproc < 2:1.0-1
306 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
308 %define specflags -fno-strict-aliasing -fPIC
310 # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one)
311 %define specflags_ia32 -fomit-frame-pointer
312 # -mmmx is needed to enable <mmintrin.h> code.
313 %define specflags_i586 -mmmx
314 %define specflags_i686 -mmmx
317 FFmpeg is a complete solution to record, convert and stream audio and
318 video. It is a command line tool to convert one video file format to
319 another. It also supports grabbing and encoding in real time from a TV
322 %description -l pl.UTF-8
323 FFmpeg to kompletne rozwiÄ…zanie nagrywania, konwersji i transmisji
324 strumieni dźwięku i obrazu. Jest to działające z linii poleceń
325 narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje
326 także przechwytywanie i kodowanie w czasie rzeczywistym z karty
330 Summary: ffmpeg libraries
331 Summary(pl.UTF-8): Biblioteki ffmpeg
333 Requires: SDL2 >= 2.0.1
334 %{?with_vulkan:Requires: Vulkan-Loader >= 1.3.277}
335 %{?with_aom:Requires: aom >= 1.0.0}
336 Requires: celt >= 0.11.0
337 %{?with_dav1d:Requires: dav1d >= 0.5.0}
338 %{?with_avs2:Requires: davs2 >= 1.6}
339 %{?with_flite:Requires: flite >= 1.4}
340 %if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20"
341 # uses gnutls_certificate_set_x509_system_trust if >= 3.0.20
342 Requires: gnutls-libs >= 3.0.20
344 %{?with_kvazaar:Requires: kvazaar-libs >= 2.0.0}
345 Requires: libass >= 0.11.0
346 %{?with_libjxl:Requires: libjxl >= 0.7.0}
347 %{?with_libmysofa:Requires: libmysofa >= 0.7}
348 %{?with_openmpt:Requires: libopenmpt >= 0.4.5}
349 %{?with_libplacebo:Requires: libplacebo >= 4.192.0}
350 %{?with_librist:Requires: librist >= 0.2.7}
351 %{?with_ssh:Requires: libssh >= 0.6.0}
352 %{?with_theora:Requires: libtheora >= 1.0-0.beta3}
354 Requires: libva >= 1.0.3
355 Requires: libva-drm >= 1.0.3
356 Requires: libva-x11 >= 1.0.3
358 Requires: libvdpau >= 1.3
359 %{?with_vpl:Requires: libvpl >= 2.6}
360 %{?with_vpx:Requires: libvpx >= 1.4.0}
361 %{?with_webp:Requires: libwebp >= 0.4.0}
362 %{?with_x264:Requires: libx264 >= 0.1.3-1.20130827_2245}
363 %{?with_x265:Requires: libx265 >= 2.0}
364 Requires: libxcb >= 1.4
365 Requires: lame-libs >= 3.98.3
366 %{?with_lcms:Requires: lcms2 >= 2.13}
367 %{?with_mfx:Requires: mfx_dispatch >= 1.28}
368 %{?with_openh264:Requires: openh264 >= 1.3}
369 Requires: openjpeg2 >= 2.1
370 %{?with_rabbitmq:Requires: rabbitmq-c >= 0.7.1}
371 %{?with_rav1e:Requires: rav1e-libs >= 0.5.0}
372 %{?with_rkmpp:Requires: rockchip-mpp >= 1.3.7}
373 %{?with_rubberband:Requires: rubberband-libs >= 1.8.1}
374 %{?with_shine:Requires: shine >= 3.0.0}
375 Requires: speex >= 1:1.2-rc1
376 %{?with_srt:Requires: srt >= 1.3}
377 %{?with_svtav1:Requires: svt-av1 >= 0.9.0}
378 Requires: twolame-libs >= 0.3.10
379 %{?with_uavs3d:Requires: uavs3d >= 1.1.41}
380 %{?with_vapoursynth:Requires: vapoursynth >= 42}
381 %{?with_vidstab:Requires: vid.stab >= 0.98}
382 %{?with_vmaf:Requires: vmaf-libs >= 2.0.0}
383 %{?with_avs2:Requires: xavs2 >= 1.3}
384 %{?with_xvid:Requires: xvid >= 1:1.1.0}
385 %{?with_zmq:Requires: zeromq >= 4.2.1}
386 %{?with_zimg:Requires: zimg >= 2.7.0}
387 %{?with_zvbi:Requires: zvbi >= 0.2.28}
389 %{?with_avisynth:Suggests: AviSynthPlus >= 3.7.3}
392 This package contains the ffmpeg shared libraries:
393 - the codec library (libavcodec). It supports most existing encoding
394 formats (MPEG, DivX, MPEG4, AC3, DV...),
395 - demuxer library (libavformat). It supports most existing file
396 formats (AVI, MPEG, OGG, Matroska, ASF...),
397 - video postprocessing library (libpostproc).
399 %description libs -l pl.UTF-8
400 Ten pakiet zawiera biblioteki współdzielone ffmpeg:
401 - bibliotekę kodeków (libavcodec); obsługuje większość istniejących
402 formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...),
403 - bibliotekę demuksera (libavformat); obsługuje większość istniejących
404 formatów plików (AVI, MPEG, OGG, Matroska, ASF...),
405 - bibliotekÄ™ postprocessingu (libpostproc).
408 Summary: ffmpeg header files
409 Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg
410 Group: Development/Libraries
411 Requires: %{name}-libs = %{version}-%{release}
412 # Libs.private from *.pc
413 %{?with_openal:Requires: OpenAL-devel >= 1.1}
414 %{?with_opencl:Requires: OpenCL-devel >= 1.2}
415 %{?with_opengl:Requires: OpenGL-devel}
416 Requires: SDL2-devel >= 2.0.1
417 %{?with_vulkan:Requires: Vulkan-Loader-devel >= 1.3.277}
418 Requires: alsa-lib-devel
419 %{?with_aom:Requires: aom-devel >= 1.0.0}
420 %{?with_aribb24:Requires: aribb24-devel}
421 Requires: bzip2-devel
422 Requires: celt-devel >= 0.11.0
423 %{?with_codec2:Requires: codec2-devel}
424 %{?with_dav1d:Requires: dav1d-devel >= 0.5.0}
425 %{?with_avs2:Requires: davs2-devel >= 1.6}
426 %{?with_fdk_aac:Requires: fdk-aac-devel}
427 %{?with_flite:Requires: flite-devel >= 1.4}
428 Requires: fontconfig-devel
429 Requires: freetype-devel
430 %{?with_fribidi:Requires: fribidi-devel}
431 %{?with_gme:Requires: game-music-emu-devel}
432 %{?with_glslang:Requires: glslang-devel}
433 Requires: gnutls-devel
434 Requires: harfbuzz-devel
435 Requires: jack-audio-connection-kit-devel
436 %{?with_kvazaar:Requires: kvazaar-devel >= 2.0.0}
437 Requires: lame-libs-devel >= 3.98.3
438 %{?with_lcms:Requires: lcms2-devel >= 2.13}
439 %{?with_lensfun:Requires: lensfun-devel >= 0.3.95}
440 %{?with_libaribcaption:Requires: libaribcaption-devel}
441 Requires: libass-devel >= 0.11.0
442 %{?with_iec61883:Requires: libavc1394-devel}
443 Requires: libbluray-devel
444 %{?with_bs2b:Requires: libbs2b-devel}
445 %{?with_caca:Requires: libcaca-devel}
446 Requires: libcdio-paranoia-devel >= 0.90-2
447 %{?with_chromaprint:Requires: libchromaprint-devel}
448 %{?with_crystalhd:Requires: libcrystalhd-devel}
449 %{?with_dc1394:Requires: libdc1394-devel >= 2}
450 %{?with_libdrm:Requires: libdrm-devel}
451 %{?with_gsm:Requires: libgsm-devel}
452 %{?with_iec61883:Requires: libiec61883-devel}
453 %{?with_libjxl:Requires: libjxl-devel >= 0.7.0}
454 %{?with_libklvanc:Requires: libklvanc-devel}
455 %{?with_modplug:Requires: libmodplug-devel}
456 %{?with_libmysofa:Requires: libmysofa-devel >= 0.7}
457 %{?with_openmpt:Requires: libopenmpt-devel >= 0.4.5}
458 %if %{with dc1394} || %{with iec61883}
459 Requires: libraw1394-devel >= 2
461 %{?with_librist:Requires: librist-devel >= 0.2.7}
462 %{?with_librsvg:Requires: librsvg-devel >= 2}
463 Requires: librtmp-devel
464 %{?with_smb:Requires: libsmbclient-devel}
465 %{?with_ssh:Requires: libssh-devel >= 0.6.0}
466 Requires: libstdc++-devel
467 %{?with_theora:Requires: libtheora-devel >= 1.0-0.beta3}
468 Requires: libv4l-devel
469 %{?with_va:Requires: libva-devel >= 1.0.3}
470 %{?with_va:Requires: libva-drm-devel >= 1.0.3}
471 %{?with_va:Requires: libva-x11-devel >= 1.0.3}
472 Requires: libvdpau-devel >= 1.3
473 Requires: libvorbis-devel
474 %{?with_vpl:Requires: libvpl-devel >= 2.6}
475 %{?with_vpx:Requires: libvpx-devel >= 1.4.0}
476 %{?with_webp:Requires: libwebp-devel >= 0.4.0}
477 %{?with_x264:Requires: libx264-devel >= 0.1.3-1.20130827_2245}
478 %{?with_x265:Requires: libx265-devel >= 2.0}
479 # libxcb xcb-shm xcb-xfixes xcb-shape
480 Requires: libxcb-devel >= 1.4
481 %{?with_libxml2:Requires: libxml2-devel >= 2}
482 %{?with_lv2:Requires: lilv-devel}
483 %{?with_mfx:Requires: mfx_dispatch-devel >= 1.28}
484 %{?with_amr:Requires: opencore-amr-devel}
485 %{?with_opencv:Requires: opencv-devel >= 2}
486 %{?with_openh264:Requires: openh264-devel >= 1.3}
487 Requires: openjpeg2-devel >= 2.1
489 %{?with_pulseaudio:Requires: pulseaudio-devel}
490 %{?with_rabbitmq:Requires: rabbitmq-c-devel >= 0.7.1}
491 %{?with_rav1e:Requires: rav1e-devel >= 0.5.0}
492 %{?with_rkmpp:Requires: rockchip-mpp-devel >= 1.3.7}
493 %{?with_rubberband:Requires: rubberband-devel >= 1.8.1}
494 %{?with_shaderc:Requires: shaderc-devel >= 2019.1}
495 %{?with_shine:Requires: shine-devel >= 3.0.0}
496 %{?with_snappy:Requires: snappy-devel}
497 %{?with_soxr:Requires: soxr-devel}
498 Requires: speex-devel >= 1:1.2-rc1
499 %{?with_glslang:Requires: spirv-tools-devel}
500 %{?with_srt:Requires: srt-devel >= 1.3}
501 %{?with_svtav1:Requires: svt-av1-devel >= 0.9.0}
502 %{?with_tesseract:Requires: tesseract-devel}
503 Requires: twolame-devel >= 0.3.10
504 %{?with_uavs3d:Requires: uavs3d-devel >= 1.1.41}
505 %{?with_vapoursynth:Requires: vapoursynth-devel >= 42}
506 %{?with_vidstab:Requires: vid.stab-devel >= 0.98}
507 %{?with_voamrwbenc:Requires: vo-amrwbenc-devel}
508 %{?with_vmaf:Requires: vmaf-devel >= 2.0.0}
509 %{?with_ilbc:Requires: webrtc-libilbc-devel}
510 %{?with_avs:Requires: xavs-devel}
511 %{?with_avs2:Requires: xavs2-devel >= 1.3}
512 Requires: xorg-lib-libX11-devel
513 Requires: xorg-lib-libXext-devel
514 Requires: xorg-lib-libXv-devel
515 %{?with_xvid:Requires: xvid-devel >= 1:1.1.0}
517 %{?with_zmq:Requires: zeromq-devel >= 4.2.1}
518 %{?with_zimg:Requires: zimg-devel >= 2.7.0}
520 %{?with_zvbi:Requires: zvbi-devel >= 0.2.28}
521 Obsoletes: libpostproc-devel < 2:1.0-1
526 %description devel -l pl.UTF-8
527 Pliki nagłówkowe ffmpeg.
530 Summary: ffmpeg static libraries
531 Summary(pl.UTF-8): Statyczne biblioteki ffmpeg
532 Group: Development/Libraries
533 Requires: %{name}-devel = %{version}-%{release}
536 ffmpeg static libraries (libavcodec and libavformat).
538 %description static -l pl.UTF-8
539 Statyczne biblioteki ffmpeg (libavcodec i libavformat).
542 Summary: FFplay - SDL-based media player
543 Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL
544 Group: Applications/Multimedia
545 Requires: %{name}-libs = %{version}-%{release}
548 FFplay is a very simple and portable media player using the FFmpeg
549 libraries and the SDL library. It is mostly used as a test bench for
550 the various APIs of FFmpeg.
552 %description ffplay -l pl.UTF-8
553 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający
554 bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do
555 testowania różnych API FFmpeg.
558 Summary: FFmpeg documentation in HTML format
559 Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML
564 FFmpeg documentation in HTML format.
566 %description doc -l pl.UTF-8
567 Dokumentacja pakietu FFmpeg w formacie HTML.
574 %if %{with v4l2_request}
580 # package the grep result for mplayer, the result formatted as ./mplayer/configure
581 cat <<EOF > ffmpeg-avconfig
583 libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
584 libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
585 libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
586 libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
587 libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
588 libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
589 libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')"
590 libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')"
591 libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')"
593 cat <<'EOF' >> ffmpeg-avconfig
597 echo $libavdecoders_all
600 echo $libavencoders_all
603 echo $libavparsers_all
609 echo $libavdemuxers_all
612 echo $libavmuxers_all
615 echo $libavprotocols_all
618 echo $libavhwaccels_all
621 echo $libavfilters_all
645 # - it's not autoconf configure
646 # - --disable-debug, --disable-optimizations, tune=generic causes not to override our optflags
648 --arch=%{_target_base_arch} \
649 --prefix=%{_prefix} \
650 --libdir=%{_libdir} \
651 --shlibdir=%{_libdir} \
652 --mandir=%{_mandir} \
653 --extra-cflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcflags}%{?with_decklink: -I/usr/include/decklink}%{?with_opencv: -I/usr/include/opencv4}" \
654 --extra-cxxflags="-D_GNU_SOURCE=1 %{rpmcppflags} %{rpmcxxflags}%{?with_decklink: -I/usr/include/decklink}%{?with_opencv: -I/usr/include/opencv4}" \
655 --extra-ldflags="%{rpmcflags} %{rpmldflags}" \
658 --disable-optimizations \
659 --disable-stripping \
660 %{!?with_doc:--disable-doc} \
662 %{?with_avisynth:--enable-avisynth} \
663 %{?with_chromaprint:--enable-chromaprint} \
664 %{?with_cudasdk:--enable-cuda-nvcc} \
665 %{?with_decklink:--enable-decklink} \
666 %{!?with_ffnvcodec:--disable-ffnvcodec} \
670 %{?with_frei0r:--enable-frei0r} \
671 %{?with_ladspa:--enable-ladspa} \
672 %{?with_lcms:--enable-lcms2} \
673 %{?with_aom:--enable-libaom} \
674 %{?with_aribb24:--enable-libaribb24} \
675 %{?with_libaribcaption:--enable-libaribcaption} \
678 %{?with_bs2b:--enable-libbs2b} \
679 %{?with_caca:--enable-libcaca} \
682 %{?with_codec2:--enable-libcodec2} \
683 %{?with_dav1d:--enable-libdav1d} \
684 %{?with_avs2:--enable-libdavs2} \
685 %{?with_dc1394:--enable-libdc1394} \
686 %{?with_libdrm:--enable-libdrm} \
687 %{?with_flite:--enable-libflite} \
688 --enable-libfontconfig \
689 --enable-libfreetype \
690 %{?with_fribidi:--enable-libfribidi} \
691 %{?with_glslang:--enable-libglslang} \
692 %{?with_gme:--enable-libgme} \
693 %{?with_gsm:--enable-libgsm} \
694 --enable-libharfbuzz \
695 %{?with_iec61883:--enable-libiec61883} \
696 %{?with_ilbc:--enable-libilbc} \
698 %{?with_libjxl:--enable-libjxl} \
699 %{?with_kvazaar:--enable-libkvazaar} \
700 %{?with_libklvanc:--enable-libklvanc} \
701 %{?with_lensfun:--enable-liblensfun} \
702 %{?with_mfx:--enable-libmfx} \
703 %{?with_modplug:--enable-libmodplug} \
704 --enable-libmp3lame \
705 %{?with_libmysofa:--enable-libmysofa} \
706 %{?with_amr:--enable-libopencore-amrnb} \
707 %{?with_amr:--enable-libopencore-amrwb} \
708 %{?with_opencv:--enable-libopencv} \
709 %{?with_openh264:--enable-libopenh264} \
710 --enable-libopenjpeg \
711 %{?with_openmpt:--enable-libopenmpt} \
713 %{?with_libplacebo:--enable-libplacebo} \
714 %{?with_pulseaudio:--enable-libpulse} \
715 %{?with_rabbitmq:--enable-librabbitmq} \
716 %{?with_rav1e:--enable-librav1e} \
717 %{?with_librist:--enable-librist} \
718 %{?with_librsvg:--enable-librsvg} \
720 %{?with_rubberband:--enable-librubberband} \
721 %{?with_shaderc:--enable-libshaderc} \
722 %{?with_shine:--enable-libshine} \
723 %{?with_smb:--enable-libsmbclient} \
724 %{?with_snappy:--enable-libsnappy} \
725 %{?with_soxr:--enable-libsoxr} \
727 %{?with_srt:--enable-libsrt} \
728 %{?with_ssh:--enable-libssh} \
729 %{?with_svtav1:--enable-libsvtav1} \
730 %{?with_tesseract:--enable-libtesseract} \
731 %{?with_theora:--enable-libtheora} \
732 --enable-libtwolame \
733 %{?with_uavs3d:--enable-libuavs3d} \
735 %{?with_vidstab:--enable-libvidstab} \
736 %{?with_vmaf:--enable-libvmaf} \
737 %{?with_voamrwbenc:--enable-libvo-amrwbenc} \
739 %{?with_vpx:--enable-libvpx} \
740 %{?with_webp:--enable-libwebp} \
741 %{?with_x264:--enable-libx264} \
742 %{?with_x265:--enable-libx265} \
743 %{?with_avs:--enable-libxavs} \
744 %{?with_avs2:--enable-libxavs2} \
746 %{?with_libxml2:--enable-libxml2} \
747 %{?with_xvid:--enable-libxvid} \
748 %{?with_zimg:--enable-libzimg} \
749 %{?with_zmq:--enable-libzmq} \
750 %{?with_zvbi:--enable-libzvbi} \
751 %{?with_lv2:--enable-lv2} \
752 %{?with_omx:--enable-omx} \
753 %{?with_openal:--enable-openal} \
754 %{?with_opencl:--enable-opencl} \
755 %{?with_opengl:--enable-opengl} \
756 %{?with_pocketsphinx:--enable-pocketsphinx} \
759 %{?with_rkmpp:--enable-rkmpp} \
761 %{!?with_static_libs:--disable-static} \
763 %{!?with_va:--disable-vaapi} \
764 %{?with_vapoursynth:--enable-vapoursynth} \
765 %{!?with_vulkan:--disable-vulkan} \
766 %if %{with v4l2_request}
768 --enable-v4l2-request \
770 %ifnarch %{ix86} %{x8664}
781 %{?with_fdk_aac:--enable-libfdk-aac} \
782 %{?with_npp:--enable-libnpp} \
784 --enable-runtime-cpudetect
789 # CC_O to add -c to commandline. makefile should be patched
790 %{__make} tools/qt-faststart V=1 CC_O='-c -o $@'
792 %{?with_tests:%{__make} check V=1}
795 rm -rf $RPM_BUILD_ROOT
796 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},/etc/{sysconfig,rc.d/init.d}} \
797 $RPM_BUILD_ROOT%{_includedir}/ffmpeg
799 %{__make} install install-headers \
800 DESTDIR=$RPM_BUILD_ROOT \
803 # install nonstandard, non-public headers manually
804 cp -a config.h $RPM_BUILD_ROOT%{_includedir}/ffmpeg
805 for a in libavutil/*/{asm,bswap}.h; do
806 install -Dp $a $RPM_BUILD_ROOT%{_includedir}/$a
808 cp -a libavformat/riff.h $RPM_BUILD_ROOT%{_includedir}/libavformat
810 install -p tools/qt-faststart $RPM_BUILD_ROOT%{_bindir}
812 # install as ffmpeg-avconfig to avoid with possible programs looking for
813 # ffmpeg-config and expecting --libs output from it which is not implemented
814 # simple to do (by querying pkgconfig), but why?
815 install -p ffmpeg-avconfig $RPM_BUILD_ROOT%{_bindir}/ffmpeg-avconfig
817 # packaged as %doc in -doc
819 %{__rm} $RPM_BUILD_ROOT%{_docdir}/ffmpeg/*.{css,html}
822 install -d $RPM_BUILD_ROOT%{_examplesdir}
823 %{__mv} $RPM_BUILD_ROOT%{_datadir}/ffmpeg/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
826 rm -rf $RPM_BUILD_ROOT
828 %post libs -p /sbin/ldconfig
829 %postun libs -p /sbin/ldconfig
832 %defattr(644,root,root,755)
833 %doc CREDITS LICENSE.md MAINTAINERS README.md RELEASE_NOTES doc/APIchanges
834 %attr(755,root,root) %{_bindir}/ffmpeg
835 %attr(755,root,root) %{_bindir}/ffprobe
836 %attr(755,root,root) %{_bindir}/qt-faststart
837 %dir %{_datadir}/ffmpeg
838 %{_datadir}/ffmpeg/*.ffpreset
839 %{_datadir}/ffmpeg/ffprobe.xsd
841 %{_mandir}/man1/ffmpeg.1*
842 %{_mandir}/man1/ffmpeg-all.1*
843 %{_mandir}/man1/ffmpeg-bitstream-filters.1*
844 %{_mandir}/man1/ffmpeg-codecs.1*
845 %{_mandir}/man1/ffmpeg-devices.1*
846 %{_mandir}/man1/ffmpeg-filters.1*
847 %{_mandir}/man1/ffmpeg-formats.1*
848 %{_mandir}/man1/ffmpeg-protocols.1*
849 %{_mandir}/man1/ffmpeg-resampler.1*
850 %{_mandir}/man1/ffmpeg-scaler.1*
851 %{_mandir}/man1/ffmpeg-utils.1*
852 %{_mandir}/man1/ffprobe.1*
853 %{_mandir}/man1/ffprobe-all.1*
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{_libdir}/libavcodec.so.*.*.*
859 %attr(755,root,root) %ghost %{_libdir}/libavcodec.so.60
860 %attr(755,root,root) %{_libdir}/libavdevice.so.*.*.*
861 %attr(755,root,root) %ghost %{_libdir}/libavdevice.so.60
862 %attr(755,root,root) %{_libdir}/libavfilter.so.*.*.*
863 %attr(755,root,root) %ghost %{_libdir}/libavfilter.so.9
864 %attr(755,root,root) %{_libdir}/libavformat.so.*.*.*
865 %attr(755,root,root) %ghost %{_libdir}/libavformat.so.60
866 %attr(755,root,root) %{_libdir}/libavutil.so.*.*.*
867 %attr(755,root,root) %ghost %{_libdir}/libavutil.so.58
868 %attr(755,root,root) %{_libdir}/libpostproc.so.*.*.*
869 %attr(755,root,root) %ghost %{_libdir}/libpostproc.so.57
870 %attr(755,root,root) %{_libdir}/libswresample.so.*.*.*
871 %attr(755,root,root) %ghost %{_libdir}/libswresample.so.4
872 %attr(755,root,root) %{_libdir}/libswscale.so.*.*.*
873 %attr(755,root,root) %ghost %{_libdir}/libswscale.so.7
876 %defattr(644,root,root,755)
877 %doc doc/optimization.txt
878 %attr(755,root,root) %{_bindir}/ffmpeg-avconfig
879 %attr(755,root,root) %{_libdir}/libavcodec.so
880 %attr(755,root,root) %{_libdir}/libavdevice.so
881 %attr(755,root,root) %{_libdir}/libavfilter.so
882 %attr(755,root,root) %{_libdir}/libavformat.so
883 %attr(755,root,root) %{_libdir}/libavutil.so
884 %attr(755,root,root) %{_libdir}/libpostproc.so
885 %attr(755,root,root) %{_libdir}/libswresample.so
886 %attr(755,root,root) %{_libdir}/libswscale.so
887 %{_includedir}/ffmpeg
888 %{_includedir}/libavcodec
889 %{_includedir}/libavdevice
890 %{_includedir}/libavfilter
891 %{_includedir}/libavformat
892 %{_includedir}/libavutil
893 %{_includedir}/libpostproc
894 %{_includedir}/libswresample
895 %{_includedir}/libswscale
896 %{_pkgconfigdir}/libavcodec.pc
897 %{_pkgconfigdir}/libavdevice.pc
898 %{_pkgconfigdir}/libavfilter.pc
899 %{_pkgconfigdir}/libavformat.pc
900 %{_pkgconfigdir}/libavutil.pc
901 %{_pkgconfigdir}/libpostproc.pc
902 %{_pkgconfigdir}/libswresample.pc
903 %{_pkgconfigdir}/libswscale.pc
905 %{_mandir}/man3/libavcodec.3*
906 %{_mandir}/man3/libavdevice.3*
907 %{_mandir}/man3/libavfilter.3*
908 %{_mandir}/man3/libavformat.3*
909 %{_mandir}/man3/libavutil.3*
910 %{_mandir}/man3/libswresample.3*
911 %{_mandir}/man3/libswscale.3*
913 %{_examplesdir}/%{name}-%{version}
915 %if %{with static_libs}
917 %defattr(644,root,root,755)
918 %{_libdir}/libavcodec.a
919 %{_libdir}/libavdevice.a
920 %{_libdir}/libavfilter.a
921 %{_libdir}/libavformat.a
922 %{_libdir}/libavutil.a
923 %{_libdir}/libpostproc.a
924 %{_libdir}/libswresample.a
925 %{_libdir}/libswscale.a
929 %defattr(644,root,root,755)
930 %attr(755,root,root) %{_bindir}/ffplay
932 %{_mandir}/man1/ffplay.1*
933 %{_mandir}/man1/ffplay-all.1*
938 %defattr(644,root,root,755)
939 %doc doc/*.{css,html}