diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 198 |
1 files changed, 135 insertions, 63 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1fd58b2325..5f2cd29255 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 David Thompson <[email protected]> ;;; Copyright © 2014, 2015, 2016, 2018, 2020 Mark H Weaver <[email protected]> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <[email protected]> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <[email protected]> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <[email protected]> ;;; Copyright © 2015, 2016 Andy Patterson <[email protected]> ;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ricardo Wurmus <[email protected]> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <[email protected]> @@ -36,20 +36,21 @@ ;;; Copyright © 2019 Riku Viitanen <[email protected]> ;;; Copyright © 2020, 2021 Oleg Pykhalov <[email protected]> ;;; Copyright © 2020 Josh Holland <[email protected]> -;;; Copyright © 2020 Brice Waegeneire <[email protected]> +;;; Copyright © 2020, 2021 Brice Waegeneire <[email protected]> ;;; Copyright © 2020 Vincent Legoll <[email protected]> ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <[email protected]> ;;; Copyright © 2020 Alex McGrath <[email protected]> ;;; Copyright © 2020, 2021 Michael Rohleder <[email protected]> -;;; Copyright © 2020, 2021 Vinicius Monego <[email protected]> +;;; Copyright © 2020, 2021, 2022 Vinicius Monego <[email protected]> ;;; Copyright © 2020 Brett Gilio <[email protected]> ;;; Copyright © 2020 Alexandru-Sergiu Marton <[email protected]> ;;; Copyright © 2020 Ivan Kozlov <[email protected]> ;;; Copyright © 2020 Antoine Côté <[email protected]> +;;; Copyright © 2020 Hartmut Goebel <[email protected]> ;;; Copyright © 2021 Alexey Abramov <[email protected]> ;;; Copyright © 2021 Andrew Tropin <[email protected]> ;;; Copyright © 2021 David Wilson <[email protected]> -;;; Copyright © 2021 Maxim Cournoyer <[email protected]> +;;; Copyright © 2021,2022 Maxim Cournoyer <[email protected]> ;;; Copyright © 2020 Hartmut Goebel <[email protected]> ;;; Copyright © 2021 Raghav Gururajan <[email protected]> ;;; Copyright © 2021 Thiago Jung Bauermann <[email protected]> @@ -57,6 +58,8 @@ ;;; Copyright © 2021 Robin Templeton <[email protected]> ;;; Copyright © 2021 Aleksandr Vityazev <[email protected]> ;;; Copyright © 2021 Pradana Aumars <[email protected]> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <[email protected]> +;;; Copyright © 2022 Bird <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,6 +147,7 @@ #:use-module (gnu packages libreoffice) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages man) @@ -294,7 +298,7 @@ ("zlib" ,zlib))) (synopsis "Audio/Video Transcoder") (description "Transcode is a fast, versatile and command-line based -audio/video everything to everything converter primarily focussed on producing +audio/video everything to everything converter primarily focused on producing AVI video files with MP3 audio, but also including a program to read all the video and audio streams from a DVD.") (home-page @@ -504,18 +508,20 @@ receiving MJPG streams.") (define-public mjpegtools (package (name "mjpegtools") - (version "2.1.0") + (version "2.2.1") (source (origin (method url-fetch) (uri - (string-append "https://sourceforge.net/projects/" name "/files/" + (string-append "https://sourceforge.net/projects/mjpeg/files/" name "/" version "/" name "-" version ".tar.gz")) (sha256 - (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w")))) + (base32 "16pl22ra3x2mkp8p3awslhlhj46b1nq9g89301gb0q4rgmnm705i")))) (build-system gnu-build-system) (inputs - (list gtk+-2 libdv libpng libquicktime sdl)) + (list gtk+-2 libdv libjpeg-turbo libpng libquicktime sdl)) + (native-inputs + (list pkg-config)) (synopsis "Tools for handling MPEG") (description "Mjpeg tools is a suite of programs which support video capture, editing, playback, and compression to MPEG of MJPEG video. Edit, play and @@ -1907,7 +1913,7 @@ videoformats depend on the configuration flags of ffmpeg.") ("libogg" ,libogg) ("libpng" ,libpng) ("libraw1394" ,libraw1394) - ("librsvg" ,librsvg) + ("librsvg" ,(librsvg-for-system)) ("libsamplerate" ,libsamplerate) ("libsecret" ,libsecret) ("libssh2" ,libssh2) @@ -2098,7 +2104,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.34.0") + (version "0.34.1") (source (origin (method git-fetch) (uri (git-reference @@ -2106,7 +2112,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0kqckrgvpx42gdmnc644lpwbimwf1am256xd670w2b8sbrjv3bm9")))) + (base32 "12qxwm1ww5vhjddl8yvj1xa0n1fi9z3lmzwhaiday2v59ca0qgsk")))) (build-system waf-build-system) (native-inputs (list perl ; for zsh completion file @@ -2242,6 +2248,28 @@ possibility to play Youtube videos, download subtitles, remember the last played position, etc.") (license license:gpl2+))) +(define-public gallery-dl + (package + (name "gallery-dl") + (version "1.20.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mikf/gallery-dl" + "/releases/download/v" version "/gallery_dl-" + version ".tar.gz")) + (sha256 + (base32 + "0qkz8aznvybdqrjxsl6ir319ras05mi8l0sal4mgi18l70jndh51")))) + (build-system python-build-system) + (inputs (list python-requests ffmpeg)) + (home-page "https://github.com/mikf/gallery-dl") + (synopsis "Command-line program to download images from several sites") + (description "Command-line program to download image galleries +and collections from several image hosting sites +While this package can use youtube-dl or yt-dlp packages to download videos, +the focus is more on images and image hosting sites.") + (license license:gpl2))) + (define-public gnome-mpv (deprecated-package "gnome-mpv" celluloid)) @@ -2287,7 +2315,7 @@ To load this plugin, specify the following option when starting mpv: (define-public libvpx (package (name "libvpx") - (version "1.10.0") + (version "1.11.0") (source (origin (method git-fetch) (uri (git-reference @@ -2296,7 +2324,7 @@ To load this plugin, specify the following option when starting mpv: (file-name (git-file-name name version)) (sha256 (base32 - "1p4v6j1505n3gnvx3iksciyi818ymxpazj9fmdrchzbl9pfzg4qi")) + "00f1jrclai2b6ys78dpsg6r1mvcyxlna93vxcz8zjyia24c2pjsb")) (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments @@ -2329,14 +2357,14 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2021.06.06") + (version "2021.12.17") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw")) + "1prm84ci1n1kjzhikhrsbxbgziw6br822psjnijm2ibqnz49jfwz")) (snippet '(begin ;; Delete the pre-generated files, except for the man page @@ -2346,8 +2374,7 @@ To load this plugin, specify the following option when starting mpv: ;;"youtube-dl.1" "youtube-dl.bash-completion" "youtube-dl.fish" - "youtube-dl.zsh")) - #t)))) + "youtube-dl.zsh")))))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2366,8 +2393,7 @@ To load this plugin, specify the following option when starting mpv: ;; Continue respecting the --ffmpeg-location argument. (substitute* "youtube_dl/postprocessor/ffmpeg.py" (("\\.get\\('ffmpeg_location'\\)" match) - (format #f "~a or '~a'" match (which "ffmpeg")))) - #t)) + (format #f "~a or '~a'" match (which "ffmpeg")))))) (add-before 'build 'build-generated-files (lambda _ ;; Avoid the make targets that require pandoc. @@ -2390,8 +2416,7 @@ To load this plugin, specify the following option when starting mpv: (("'etc/") (string-append "'" prefix "/etc/")) (("'share/") - (string-append "'" prefix "/share/"))) - #t))) + (string-append "'" prefix "/share/")))))) (add-after 'install 'install-completion (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -2399,8 +2424,7 @@ To load this plugin, specify the following option when starting mpv: "/share/zsh/site-functions"))) (mkdir-p zsh) (copy-file "youtube-dl.zsh" - (string-append zsh "/_youtube-dl")) - #t)))))) + (string-append zsh "/_youtube-dl")))))))) (native-inputs (list zip)) (inputs @@ -2410,6 +2434,7 @@ To load this plugin, specify the following option when starting mpv: "Youtube-dl is a small command-line program to download videos from YouTube.com and many more sites.") (home-page "https://yt-dl.org") + (properties '((release-monitoring-url . "https://yt-dl.org/downloads/"))) (license license:public-domain))) (define-public yt-dlp @@ -2478,6 +2503,7 @@ YouTube.com and many more sites.") YouTube.com and many more sites. It is a fork of youtube-dl with a focus on adding new features while keeping up-to-date with the original project.") + (properties '((release-monitoring-url . "https://pypi.org/project/yt-dlp/"))) (home-page "https://github.com/yt-dlp/yt-dlp"))) (define-public youtube-dl-gui @@ -3380,6 +3406,7 @@ be used for realtime video capture via Linux-specific APIs.") ("qtbase" ,qtbase-5) ("qtsvg" ,qtsvg) ("qtx11extras" ,qtx11extras) + ("qtwayland" ,qtwayland) ("speexdsp" ,speexdsp) ("v4l-utils" ,v4l-utils) ("wayland" ,wayland) @@ -3790,7 +3817,7 @@ supported players in addition to this package.") (define-public handbrake (package (name "handbrake") - (version "1.4.2") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/HandBrake/HandBrake/" @@ -3798,7 +3825,7 @@ supported players in addition to this package.") "HandBrake-" version "-source.tar.bz2")) (sha256 (base32 - "0qgvdpnjjvh9937cr0yry1lkz5fj6x9pz32fx7s80c9fvjvq33lb")) + "1w1hjj6gvdydypw4mdn281w0x163is59cfm7k6bq371hsl3gx69r")) (modules '((guix build utils))) (snippet ;; Remove "contrib" and source not necessary for @@ -4375,6 +4402,7 @@ tools for styling them, including a built-in real-time video preview.") libpeas libnotify pango + python python-gst python-numpy python-matplotlib @@ -4387,9 +4415,6 @@ tools for styling them, including a built-in real-time video preview.") ("pkg-config" ,pkg-config))) (arguments `(#:glib-or-gtk? #t - ;; Pitivi is not yet compatible with Meson 0.60: - ;; https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593 - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies @@ -4807,7 +4832,7 @@ transitions, and effects and then export your film to many common formats.") (define-public shotcut (package (name "shotcut") - (version "21.10.31") + (version "21.12.24") (source (origin (method git-fetch) @@ -4816,12 +4841,23 @@ transitions, and effects and then export your film to many common formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0jgv6wl65gf6c4nmfica8k9vbgn3w3594d1phx1mb7zjvyy9y97k")))) + (base32 "1l27dqiyi3af0v155w62ib9xcmqyjj2yzs83aqhcrz5pb3i3j18r")))) (build-system qt-build-system) (arguments - `(#:tests? #f ;there are no tests + `(#:tests? #f ;there are no tests #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-executable-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; Shotcut expects ffmpeg and melt executables in the shotcut + ;; directory. Use full store paths. + (let* ((ffmpeg (assoc-ref inputs "ffmpeg")) + (mlt (assoc-ref inputs "mlt"))) + (substitute* "src/jobs/ffmpegjob.cpp" + (("\"ffmpeg\"") (string-append "\"" ffmpeg "/bin/ffmpeg\""))) + (substitute* "src/jobs/meltjob.cpp" + (("\"melt\"") (string-append "\"" mlt "/bin/melt\"")) + (("\"melt-7\"") (string-append "\"" mlt "/bin/melt-7\"")))))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) @@ -4834,24 +4870,26 @@ transitions, and effects and then export your film to many common formats.") (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (frei0r (assoc-ref inputs "frei0r-plugins")) - (ffmpeg (assoc-ref inputs "ffmpeg")) (jack (assoc-ref inputs "jack")) + (ladspa (assoc-ref inputs "ladspa")) + (mlt (assoc-ref inputs "mlt")) (sdl2 (assoc-ref inputs "sdl2"))) (wrap-program (string-append out "/bin/shotcut") - `("PATH" ":" prefix - ,(list (string-append ffmpeg "/bin"))) + `("FREI0R_PATH" ":" = + (,(string-append frei0r "/lib/frei0r-1"))) + `("LADSPA_PATH" ":" = + (,(string-append ladspa "/lib/ladspa"))) `("LD_LIBRARY_PATH" ":" prefix ,(list (string-append jack "/lib" ":" sdl2 "/lib"))) - `("FREI0R_PATH" ":" = - (,(string-append frei0r "/lib/frei0r-1/"))) - `("MLT_PREFIX" ":" = - (,(assoc-ref inputs "mlt")))))))))) + `("PATH" ":" prefix + ,(list (string-append mlt "/bin")))))))))) (native-inputs `(("pkg-config" ,pkg-config) - ("python" ,python-wrapper) + ("python-wrapper" ,python-wrapper) ("qttools" ,qttools))) (inputs - (list ffmpeg + (list bash-minimal + ffmpeg frei0r-plugins jack-1 ladspa @@ -5064,7 +5102,7 @@ transcode or reformat the videos in any way, producing perfect backups.") (define-public svt-av1 (package (name "svt-av1") - (version "0.8.7") + (version "0.9.0") (source (origin (method git-fetch) @@ -5073,7 +5111,7 @@ transcode or reformat the videos in any way, producing perfect backups.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xlxb6kn6hqz9dxz0nd905m4i2mwjwq1330rbabwzmg4b66cdslg")))) + (base32 "1mavggl6f7pk7xs22859vm19qp9csjvdcys3b6n2f4pljqkp4qcj")))) (build-system cmake-build-system) ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs. (supported-systems '("x86_64-linux")) @@ -5162,10 +5200,38 @@ result in several formats: (home-page "https://www.gen2vdr.de/wirbel/w_scan/index2.html") (license license:gpl2+))) +;;; XXX: This crate is used only for rav1e and can be removed once the latter +;;; is updated. See <https://issues.guix.gnu.org/52837>. +(define rust-dav1d-sys-0.3.2 + (package + (name "rust-dav1d-sys") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "dav1d-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bindgen" ,rust-bindgen-0.54) + ("rust-metadeps" ,rust-metadeps-1)))) + (native-inputs + (list pkg-config)) + (inputs + (list dav1d clang llvm)) + (home-page "https://github.com/rust-av/dav1d-rs") + (synopsis "FFI bindings to dav1d") + (description "This package provides FFI bindings to dav1d.") + (license license:expat))) + (define-public rav1e (package (name "rav1e") - (version "0.4.1") + (version "0.5.1") (source (origin (method url-fetch) @@ -5174,15 +5240,18 @@ result in several formats: (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00rjil6qbrwfxhhlq9yvidxm0gp9qdbywhf5zvkj85lykbhyff09")))) + "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs - (("rust-aom-sys" ,rust-aom-sys-0.2) + `(;; Strip the '--release' flag to work around the doctest failures with + ;; Rust 1.57 (see: https://github.com/xiph/rav1e/issues/2851). + #:cargo-test-flags '() + #:cargo-inputs + (("rust-aom-sys" ,rust-aom-sys-0.3) ("rust-arbitrary" ,rust-arbitrary-0.4) ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3) - ("rust-arrayvec" ,rust-arrayvec-0.5) - ("rust-av-metrics" ,rust-av-metrics-0.6) + ("rust-arrayvec" ,rust-arrayvec-0.7) + ("rust-av-metrics" ,rust-av-metrics-0.7) ("rust-backtrace" ,rust-backtrace-0.3) ("rust-bitstream-io" ,rust-bitstream-io-1) ("rust-byteorder" ,rust-byteorder-1) @@ -5209,7 +5278,7 @@ result in several formats: ("rust-rayon" ,rust-rayon-1) ("rust-regex" ,rust-regex-1) ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7) - ("rust-rustc-version" ,rust-rustc-version-0.3) + ("rust-rustc-version" ,rust-rustc-version-0.4) ("rust-scan-fmt" ,rust-scan-fmt-0.2) ("rust-serde" ,rust-serde-1) ("rust-signal-hook" ,rust-signal-hook-0.3) @@ -5221,16 +5290,21 @@ result in several formats: ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-y4m" ,rust-y4m-0.7)) #:cargo-development-inputs - (("rust-assert-cmd" ,rust-assert-cmd-1) + (("rust-assert-cmd" ,rust-assert-cmd-2) ("rust-cc" ,rust-cc-1) ("rust-criterion" ,rust-criterion-0.3) ("rust-interpolate-name" ,rust-interpolate-name-0.2) - ("rust-pretty-assertions" ,rust-pretty-assertions-0.6) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.7) ("rust-rand" ,rust-rand-0.8) ("rust-rand-chacha" ,rust-rand-chacha-0.3) - ("rust-semver" ,rust-semver-0.11)) + ("rust-semver" ,rust-semver-1)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-versions + (lambda _ + (substitute* "Cargo.toml" + ;; Allow using more recent versions of + (("~3.1.2") "~3")))) (replace 'build (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -5477,20 +5551,18 @@ elementary stream are provided.") #:make-flags #~(list (string-append "prefix=" #$output)) #:phases - '(modify-phases %standard-phases + #~(modify-phases %standard-phases (delete 'configure) (delete 'build) (delete 'check) (add-after 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((vcs (string-append (assoc-ref outputs "out") "/bin/vcs")) - (ffmpeg (assoc-ref inputs "ffmpeg")) - (imagemagick (assoc-ref inputs "imagemagick"))) - (wrap-program vcs - `("PATH" ":" prefix - ,(map (lambda (dir) - (string-append dir "/bin")) - (list ffmpeg imagemagick)))))))))) + (lambda _ + (wrap-program (string-append #$output "/bin/vcs") + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin")) + (list #$(this-package-input "ffmpeg") + #$(this-package-input "imagemagick")))))))))) (inputs (list bash-minimal ffmpeg imagemagick)) (synopsis "Create contact sheets (preview images) from videos") |