diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 30a14303a3d..2075b4fa1e1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13102,8 +13102,7 @@ experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
python-pytest
python-setuptools
python-wheel))
- (inputs
- (list ffmpeg-7))
+ (inputs (list ffmpeg))
(home-page "https://github.com/PyAV-Org/PyAV")
(synopsis "Pythonic bindings for FFmpeg's libraries")
(description
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b71090c35f5..6640b90cdec 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -2117,7 +2117,7 @@ Vulkan, OpenGL and other main graphic APIs.")
vulkan-headers))
(inputs
(list alsa-lib
- ffmpeg
+ ffmpeg-6
glib
libxkbcommon
libxrandr
diff --git a/gnu/packages/tor-browsers.scm b/gnu/packages/tor-browsers.scm
index ddd34a9f3e1..3473829855f 100644
--- a/gnu/packages/tor-browsers.scm
+++ b/gnu/packages/tor-browsers.scm
@@ -240,7 +240,7 @@ Browser.")
libxcomposite
libxt
libffi
- ffmpeg-7
+ ffmpeg
libvpx
icu4c
pixman
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b7133dd91fc..904e57b70a7 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1645,17 +1645,17 @@ These tools require a supported graphics chip, driver, and VA-API back end to
operate properly.")
(license license:expat)))
-(define-public ffmpeg-7
+(define-public ffmpeg
(package
(name "ffmpeg")
- (version "7.1.1")
+ (version "8.0")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "1c837agaw8ljhjx6ndp2w7hffi2mkb22vnmb8v0fbfqdbqwq8fbk"))))
+ "13kvs9rh5mp21gx64hdj0jlnz6q5c6spik8kh5q7fk6cnv61yxdj"))))
(outputs '("out" "debug"))
(build-system gnu-build-system)
(inputs
@@ -1871,9 +1871,9 @@ convert and stream audio and video. It includes the libavcodec
audio/video codec library.")
(license license:gpl2+)))
-(define-public ffmpeg
+(define-public ffmpeg-6
(package
- (inherit ffmpeg-7)
+ (inherit ffmpeg)
(version "6.1.2")
(source (origin
(method url-fetch)
@@ -1887,7 +1887,7 @@ audio/video codec library.")
"ffmpeg-add-av_stream_get_first_dts-for-chromium.patch"))))
(arguments
(if (target-x86-32?)
- (substitute-keyword-arguments (package-arguments ffmpeg-7)
+ (substitute-keyword-arguments (package-arguments ffmpeg)
((#:phases phases)
#~(modify-phases #$phases
(add-before 'configure 'relax-gcc-14-strictness
@@ -1897,7 +1897,7 @@ audio/video codec library.")
(string-append "-g -O2"
" -Wno-error=incompatible-pointer-types"
" -Wno-error=int-conversion")))))))
- (package-arguments ffmpeg-7)))))
+ (package-arguments ffmpeg)))))
(define-public ffmpeg-5
(package
@@ -1984,270 +1984,271 @@ audio/video codec library.")
;;; Custom ffmpeg package used by Jami, which incorporates custom patches.
(define-public ffmpeg-jami
- (package
- (inherit ffmpeg)
- (name "ffmpeg-jami")
- (source (let ((ffmpeg-origin (package-source ffmpeg)))
- (origin
- (inherit ffmpeg-origin)
- ;; These patches originate come from
- ;; .
- ;; Make sure to keep them update and/or register any new ones
- ;; here.
- (patches
- (append
- (origin-patches ffmpeg-origin)
- (search-patches
- "ffmpeg-jami-remove-mjpeg-log.patch"
- "ffmpeg-jami-change-RTCP-ratio.patch"
- "ffmpeg-jami-rtp_ext_abs_send_time.patch"
- "ffmpeg-jami-libopusdec-enable-FEC.patch"
- "ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
- "ffmpeg-jami-screen-sharing-x11-fix.patch"
- "ffmpeg-jami-pipewiregrab-source-filter.patch"))))))
- (arguments
- (substitute-keyword-arguments (package-arguments ffmpeg)
- ((#:configure-flags _ '())
- ;; The base configure flags preserved from ffmpeg appear first.
- #~(list "--disable-static"
- "--enable-shared"
- "--disable-stripping"
+ (let ((ffmpeg ffmpeg-6))
+ (package
+ (inherit ffmpeg)
+ (name "ffmpeg-jami")
+ (source (let ((ffmpeg-origin (package-source ffmpeg)))
+ (origin
+ (inherit ffmpeg-origin)
+ ;; These patches originate come from
+ ;; .
+ ;; Make sure to keep them update and/or register any new ones
+ ;; here.
+ (patches
+ (append
+ (origin-patches ffmpeg-origin)
+ (search-patches
+ "ffmpeg-jami-remove-mjpeg-log.patch"
+ "ffmpeg-jami-change-RTCP-ratio.patch"
+ "ffmpeg-jami-rtp_ext_abs_send_time.patch"
+ "ffmpeg-jami-libopusdec-enable-FEC.patch"
+ "ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
+ "ffmpeg-jami-screen-sharing-x11-fix.patch"
+ "ffmpeg-jami-pipewiregrab-source-filter.patch"))))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:configure-flags _ '())
+ ;; The base configure flags preserved from ffmpeg appear first.
+ #~(list "--disable-static"
+ "--enable-shared"
+ "--disable-stripping"
- ;; Extra Guix-added flags that make sense for this custom
- ;; package; these could be contributed upstream.
- "--disable-doc"
+ ;; Extra Guix-added flags that make sense for this custom
+ ;; package; these could be contributed upstream.
+ "--disable-doc"
- ;; The following flags are those specified by Jami.
- ;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak
- ;; file. We try to keep it as close to the official Jami
- ;; package as possible, to provide all the codecs and extra
- ;; features that are expected (see:
- ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
- ;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
- "--disable-everything"
- "--enable-zlib"
- "--enable-gpl"
- "--enable-swscale"
- "--enable-bsfs"
- "--disable-filters"
- "--disable-programs"
- "--disable-postproc"
+ ;; The following flags are those specified by Jami.
+ ;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak
+ ;; file. We try to keep it as close to the official Jami
+ ;; package as possible, to provide all the codecs and extra
+ ;; features that are expected (see:
+ ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
+ ;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
+ "--disable-everything"
+ "--enable-zlib"
+ "--enable-gpl"
+ "--enable-swscale"
+ "--enable-bsfs"
+ "--disable-filters"
+ "--disable-programs"
+ "--disable-postproc"
- "--enable-libpipewire"
- "--enable-filter=pipewiregrab"
- "--enable-indev=lavfi"
- "--enable-decoder=wrapped_avframe"
+ "--enable-libpipewire"
+ "--enable-filter=pipewiregrab"
+ "--enable-indev=lavfi"
+ "--enable-decoder=wrapped_avframe"
- "--disable-protocols"
- "--enable-protocol=crypto"
- "--enable-protocol=file"
- "--enable-protocol=rtp"
- "--enable-protocol=srtp"
- "--enable-protocol=tcp"
- "--enable-protocol=udp"
- "--enable-protocol=unix"
- "--enable-protocol=pipe"
+ "--disable-protocols"
+ "--enable-protocol=crypto"
+ "--enable-protocol=file"
+ "--enable-protocol=rtp"
+ "--enable-protocol=srtp"
+ "--enable-protocol=tcp"
+ "--enable-protocol=udp"
+ "--enable-protocol=unix"
+ "--enable-protocol=pipe"
- ;; Enable muxers/demuxers.
- "--disable-demuxers"
- "--disable-muxers"
- "--enable-muxer=rtp"
- "--enable-muxer=g722"
- "--enable-muxer=g723_1"
- "--enable-muxer=g726"
- "--enable-muxer=g726le"
- "--enable-muxer=h263"
- "--enable-muxer=h264"
- "--enable-muxer=hevc"
- "--enable-muxer=matroska"
- "--enable-muxer=webm"
- "--enable-muxer=ogg"
- "--enable-muxer=pcm_s16be"
- "--enable-muxer=pcm_s16le"
- "--enable-muxer=wav"
- "--enable-demuxer=rtp"
- "--enable-demuxer=mjpeg"
- "--enable-demuxer=mjpeg_2000"
- "--enable-demuxer=mpegvideo"
- "--enable-demuxer=gif"
- "--enable-demuxer=image_jpeg_pipe"
- "--enable-demuxer=image_png_pipe"
- "--enable-demuxer=image_webp_pipe"
- "--enable-demuxer=matroska"
- "--enable-demuxer=m4v"
- "--enable-demuxer=mp3"
- "--enable-demuxer=ogg"
- "--enable-demuxer=flac"
- "--enable-demuxer=wav"
- "--enable-demuxer=ac3"
- "--enable-demuxer=g722"
- "--enable-demuxer=g723_1"
- "--enable-demuxer=g726"
- "--enable-demuxer=g726le"
- "--enable-demuxer=pcm_mulaw"
- "--enable-demuxer=pcm_alaw"
- "--enable-demuxer=pcm_s16be"
- "--enable-demuxer=pcm_s16le"
- "--enable-demuxer=h263"
- "--enable-demuxer=h264"
- "--enable-demuxer=hevc"
+ ;; Enable muxers/demuxers.
+ "--disable-demuxers"
+ "--disable-muxers"
+ "--enable-muxer=rtp"
+ "--enable-muxer=g722"
+ "--enable-muxer=g723_1"
+ "--enable-muxer=g726"
+ "--enable-muxer=g726le"
+ "--enable-muxer=h263"
+ "--enable-muxer=h264"
+ "--enable-muxer=hevc"
+ "--enable-muxer=matroska"
+ "--enable-muxer=webm"
+ "--enable-muxer=ogg"
+ "--enable-muxer=pcm_s16be"
+ "--enable-muxer=pcm_s16le"
+ "--enable-muxer=wav"
+ "--enable-demuxer=rtp"
+ "--enable-demuxer=mjpeg"
+ "--enable-demuxer=mjpeg_2000"
+ "--enable-demuxer=mpegvideo"
+ "--enable-demuxer=gif"
+ "--enable-demuxer=image_jpeg_pipe"
+ "--enable-demuxer=image_png_pipe"
+ "--enable-demuxer=image_webp_pipe"
+ "--enable-demuxer=matroska"
+ "--enable-demuxer=m4v"
+ "--enable-demuxer=mp3"
+ "--enable-demuxer=ogg"
+ "--enable-demuxer=flac"
+ "--enable-demuxer=wav"
+ "--enable-demuxer=ac3"
+ "--enable-demuxer=g722"
+ "--enable-demuxer=g723_1"
+ "--enable-demuxer=g726"
+ "--enable-demuxer=g726le"
+ "--enable-demuxer=pcm_mulaw"
+ "--enable-demuxer=pcm_alaw"
+ "--enable-demuxer=pcm_s16be"
+ "--enable-demuxer=pcm_s16le"
+ "--enable-demuxer=h263"
+ "--enable-demuxer=h264"
+ "--enable-demuxer=hevc"
- ;; Enable parsers.
- "--enable-parser=h263"
- "--enable-parser=h264"
- "--enable-parser=hevc"
- "--enable-parser=mpeg4video"
- "--enable-parser=vp8"
- "--enable-parser=vp9"
- "--enable-parser=opus"
+ ;; Enable parsers.
+ "--enable-parser=h263"
+ "--enable-parser=h264"
+ "--enable-parser=hevc"
+ "--enable-parser=mpeg4video"
+ "--enable-parser=vp8"
+ "--enable-parser=vp9"
+ "--enable-parser=opus"
- ;; Encoders/decoders.
- "--enable-encoder=adpcm_g722"
- "--enable-decoder=adpcm_g722"
- "--enable-encoder=adpcm_g726"
- "--enable-decoder=adpcm_g726"
- "--enable-encoder=adpcm_g726le"
- "--enable-decoder=adpcm_g726le"
- "--enable-decoder=g729"
- "--enable-encoder=g723_1"
- "--enable-decoder=g723_1"
- "--enable-encoder=rawvideo"
- "--enable-decoder=rawvideo"
- "--enable-encoder=libx264"
- "--enable-decoder=h264"
- "--enable-encoder=pcm_alaw"
- "--enable-decoder=pcm_alaw"
- "--enable-encoder=pcm_mulaw"
- "--enable-decoder=pcm_mulaw"
- "--enable-encoder=mpeg4"
- "--enable-decoder=mpeg4"
- "--enable-encoder=libvpx_vp8"
- "--enable-decoder=vp8"
- "--enable-decoder=vp9"
- "--enable-encoder=h263"
- "--enable-encoder=h263p"
- "--enable-decoder=h263"
- "--enable-encoder=mjpeg"
- "--enable-decoder=mjpeg"
- "--enable-decoder=mjpegb"
- "--enable-libspeex"
- "--enable-libopus"
- "--enable-libvpx"
- "--enable-libx264"
- "--enable-encoder=libspeex"
- "--enable-decoder=libspeex"
- "--enable-encoder=libopus"
- "--enable-decoder=libopus"
+ ;; Encoders/decoders.
+ "--enable-encoder=adpcm_g722"
+ "--enable-decoder=adpcm_g722"
+ "--enable-encoder=adpcm_g726"
+ "--enable-decoder=adpcm_g726"
+ "--enable-encoder=adpcm_g726le"
+ "--enable-decoder=adpcm_g726le"
+ "--enable-decoder=g729"
+ "--enable-encoder=g723_1"
+ "--enable-decoder=g723_1"
+ "--enable-encoder=rawvideo"
+ "--enable-decoder=rawvideo"
+ "--enable-encoder=libx264"
+ "--enable-decoder=h264"
+ "--enable-encoder=pcm_alaw"
+ "--enable-decoder=pcm_alaw"
+ "--enable-encoder=pcm_mulaw"
+ "--enable-decoder=pcm_mulaw"
+ "--enable-encoder=mpeg4"
+ "--enable-decoder=mpeg4"
+ "--enable-encoder=libvpx_vp8"
+ "--enable-decoder=vp8"
+ "--enable-decoder=vp9"
+ "--enable-encoder=h263"
+ "--enable-encoder=h263p"
+ "--enable-decoder=h263"
+ "--enable-encoder=mjpeg"
+ "--enable-decoder=mjpeg"
+ "--enable-decoder=mjpegb"
+ "--enable-libspeex"
+ "--enable-libopus"
+ "--enable-libvpx"
+ "--enable-libx264"
+ "--enable-encoder=libspeex"
+ "--enable-decoder=libspeex"
+ "--enable-encoder=libopus"
+ "--enable-decoder=libopus"
- ;; Encoders/decoders for ringtones and audio streaming.
- "--enable-decoder=flac"
- "--enable-decoder=vorbis"
- "--enable-decoder=aac"
- "--enable-decoder=ac3"
- "--enable-decoder=eac3"
- "--enable-decoder=mp3"
- "--enable-decoder=pcm_u24le"
- "--enable-decoder=pcm_u32le"
- "--enable-decoder=pcm_u8"
- "--enable-decoder=pcm_f16le"
- "--enable-decoder=pcm_f32le"
- "--enable-decoder=pcm_f64le"
- "--enable-decoder=pcm_s16le"
- "--enable-decoder=pcm_s24le"
- "--enable-decoder=pcm_s32le"
- "--enable-decoder=pcm_s64le"
- "--enable-decoder=pcm_u16le"
- "--enable-encoder=pcm_u8"
- "--enable-encoder=pcm_f32le"
- "--enable-encoder=pcm_f64le"
- "--enable-encoder=pcm_s16le"
- "--enable-encoder=pcm_s32le"
- "--enable-encoder=pcm_s64le"
+ ;; Encoders/decoders for ringtones and audio streaming.
+ "--enable-decoder=flac"
+ "--enable-decoder=vorbis"
+ "--enable-decoder=aac"
+ "--enable-decoder=ac3"
+ "--enable-decoder=eac3"
+ "--enable-decoder=mp3"
+ "--enable-decoder=pcm_u24le"
+ "--enable-decoder=pcm_u32le"
+ "--enable-decoder=pcm_u8"
+ "--enable-decoder=pcm_f16le"
+ "--enable-decoder=pcm_f32le"
+ "--enable-decoder=pcm_f64le"
+ "--enable-decoder=pcm_s16le"
+ "--enable-decoder=pcm_s24le"
+ "--enable-decoder=pcm_s32le"
+ "--enable-decoder=pcm_s64le"
+ "--enable-decoder=pcm_u16le"
+ "--enable-encoder=pcm_u8"
+ "--enable-encoder=pcm_f32le"
+ "--enable-encoder=pcm_f64le"
+ "--enable-encoder=pcm_s16le"
+ "--enable-encoder=pcm_s32le"
+ "--enable-encoder=pcm_s64le"
- ;; Encoders/decoders for images.
- "--enable-encoder=gif"
- "--enable-decoder=gif"
- "--enable-encoder=jpegls"
- "--enable-decoder=jpegls"
- "--enable-encoder=ljpeg"
- "--enable-decoder=jpeg2000"
- "--enable-encoder=png"
- "--enable-decoder=png"
- "--enable-encoder=bmp"
- "--enable-decoder=bmp"
- "--enable-encoder=tiff"
- "--enable-decoder=tiff"
+ ;; Encoders/decoders for images.
+ "--enable-encoder=gif"
+ "--enable-decoder=gif"
+ "--enable-encoder=jpegls"
+ "--enable-decoder=jpegls"
+ "--enable-encoder=ljpeg"
+ "--enable-decoder=jpeg2000"
+ "--enable-encoder=png"
+ "--enable-decoder=png"
+ "--enable-encoder=bmp"
+ "--enable-decoder=bmp"
+ "--enable-encoder=tiff"
+ "--enable-decoder=tiff"
- ;; Filters.
- "--enable-filter=scale"
- "--enable-filter=overlay"
- "--enable-filter=amix"
- "--enable-filter=amerge"
- "--enable-filter=aresample"
- "--enable-filter=format"
- "--enable-filter=aformat"
- "--enable-filter=fps"
- "--enable-filter=transpose"
- "--enable-filter=pad"
+ ;; Filters.
+ "--enable-filter=scale"
+ "--enable-filter=overlay"
+ "--enable-filter=amix"
+ "--enable-filter=amerge"
+ "--enable-filter=aresample"
+ "--enable-filter=format"
+ "--enable-filter=aformat"
+ "--enable-filter=fps"
+ "--enable-filter=transpose"
+ "--enable-filter=pad"
- ;; Decoders for ringtones and audio streaming.
- "--enable-decoder=pcm_s16be"
- "--enable-decoder=pcm_s16be_planar"
- "--enable-decoder=pcm_s16le_planar"
- "--enable-decoder=pcm_s24be"
- "--enable-decoder=pcm_s24le_planar"
- "--enable-decoder=pcm_s32be"
- "--enable-decoder=pcm_s32le_planar"
- "--enable-decoder=pcm_s64be"
- "--enable-decoder=pcm_s8"
- "--enable-decoder=pcm_s8_planar"
- "--enable-decoder=pcm_u16be"
+ ;; Decoders for ringtones and audio streaming.
+ "--enable-decoder=pcm_s16be"
+ "--enable-decoder=pcm_s16be_planar"
+ "--enable-decoder=pcm_s16le_planar"
+ "--enable-decoder=pcm_s24be"
+ "--enable-decoder=pcm_s24le_planar"
+ "--enable-decoder=pcm_s32be"
+ "--enable-decoder=pcm_s32le_planar"
+ "--enable-decoder=pcm_s64be"
+ "--enable-decoder=pcm_s8"
+ "--enable-decoder=pcm_s8_planar"
+ "--enable-decoder=pcm_u16be"
- ;; More filters.
- "--enable-filter=afir"
- "--enable-filter=split"
- "--enable-filter=drawbox"
- "--enable-filter=drawtext"
- "--enable-filter=rotate"
- "--enable-filter=loop"
- "--enable-filter=setpts"
- "--enable-filter=movie"
- "--enable-filter=alphamerge"
- "--enable-filter=boxblur"
- "--enable-filter=lut"
- "--enable-filter=negate"
- "--enable-filter=colorkey"
- "--enable-filter=transpose"
+ ;; More filters.
+ "--enable-filter=afir"
+ "--enable-filter=split"
+ "--enable-filter=drawbox"
+ "--enable-filter=drawtext"
+ "--enable-filter=rotate"
+ "--enable-filter=loop"
+ "--enable-filter=setpts"
+ "--enable-filter=movie"
+ "--enable-filter=alphamerge"
+ "--enable-filter=boxblur"
+ "--enable-filter=lut"
+ "--enable-filter=negate"
+ "--enable-filter=colorkey"
+ "--enable-filter=transpose"
- "--enable-libfreetype"
+ "--enable-libfreetype"
- #$@(if (string-contains (%current-system) "linux")
- ;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc'
- ;; flags, as there's no support for ffnvcodec in Guix;
- ;; it would not work with Mesa anyway.
- '("--enable-pic"
- "--extra-cxxflags=-fPIC"
- "--extra-cflags=-fPIC"
- "--target-os=linux"
- "--enable-indev=v4l2"
- "--enable-indev=xcbgrab"
- "--enable-vdpau"
- "--enable-hwaccel=h264_vdpau"
- "--enable-hwaccel=mpeg4_vdpau"
- "--enable-vaapi"
- "--enable-hwaccel=h264_vaapi"
- "--enable-hwaccel=mpeg4_vaapi"
- "--enable-hwaccel=h263_vaapi"
- "--enable-hwaccel=vp8_vaapi"
- "--enable-hwaccel=mjpeg_vaapi"
- "--enable-hwaccel=hevc_vaapi"
- "--enable-encoder=h264_vaapi"
- "--enable-encoder=vp8_vaapi"
- "--enable-encoder=mjpeg_vaapi"
- "--enable-encoder=hevc_vaapi")
- '())))))
- (inputs (modify-inputs (package-inputs ffmpeg)
- (append pipewire)))))
+ #$@(if (string-contains (%current-system) "linux")
+ ;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc'
+ ;; flags, as there's no support for ffnvcodec in Guix;
+ ;; it would not work with Mesa anyway.
+ '("--enable-pic"
+ "--extra-cxxflags=-fPIC"
+ "--extra-cflags=-fPIC"
+ "--target-os=linux"
+ "--enable-indev=v4l2"
+ "--enable-indev=xcbgrab"
+ "--enable-vdpau"
+ "--enable-hwaccel=h264_vdpau"
+ "--enable-hwaccel=mpeg4_vdpau"
+ "--enable-vaapi"
+ "--enable-hwaccel=h264_vaapi"
+ "--enable-hwaccel=mpeg4_vaapi"
+ "--enable-hwaccel=h263_vaapi"
+ "--enable-hwaccel=vp8_vaapi"
+ "--enable-hwaccel=mjpeg_vaapi"
+ "--enable-hwaccel=hevc_vaapi"
+ "--enable-encoder=h264_vaapi"
+ "--enable-encoder=vp8_vaapi"
+ "--enable-encoder=mjpeg_vaapi"
+ "--enable-encoder=hevc_vaapi")
+ '())))))
+ (inputs (modify-inputs (package-inputs ffmpeg)
+ (append pipewire))))))
(define-public ffmpegthumbnailer
(package