;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 David Wilson <david@daviwil.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system waf)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rac70p6rpvdx9v0bdd8nphgr7imdxb7nz0x77n3p7h3180zz9x0"))))
+ (base32 "1cv6vcf5yxcwdvj5yqcckbixqrvvdxk7ibincnnv80pz6wh527sv"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; Test script is stand-alone
(inputs
`(;; XXX: Build fails with libvideogfx.
;; ("libvideogfx" ,libvideogfx)
- ("qt" ,qtbase)
+ ("qt" ,qtbase-5)
("sdl" ,sdl)))
(synopsis "H.265 video codec implementation")
(description "Libde265 is an implementation of the h.265 video codec. It is
(replace 'bootstrap
(lambda _ (invoke "sh" "bootstrap"))))))
(home-page "http://liba52.sourceforge.net/")
- (synopsis "ATSC A/52 stream decoder")
- (description "liba52 is a library for decoding ATSC A/52 streams. The
-A/52 standard is used in a variety of applications, including digital
+ (synopsis "ATSC A/52 audio stream decoder")
+ (description "liba52 is a library for decoding ATSC A/52 audio streams.
+The A/52 standard is used in a variety of applications, including digital
television and DVD. It is also known as AC-3.")
(license license:gpl2+)))
(define-public libaom
(package
(name "libaom")
- (version "3.1.0")
+ (version "3.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1v3i34jmbz1p3x8msj3vx46nl6jdzxbkr2lfbh06vard8adb16il"))))
+ "11fy2xw35ladkjcz71samhcpqlqr3y0n1n17nk90i13aydrll66f"))))
(build-system cmake-build-system)
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python))) ; to detect the version
(arguments
- `(#:tests? #f ;no check target
+ `(#:tests? #f ; downloads many video clips
#:configure-flags
- ;; build dynamic library
(list "-DBUILD_SHARED_LIBS=YES"
"-DENABLE_PIC=TRUE"
"-DAOM_TARGET_CPU=generic"
(string-append "-DCMAKE_INSTALL_PREFIX="
- (assoc-ref %outputs "out")))))
+ (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'delete-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (for-each delete-file
+ (find-files lib "\\.a$"))))))))
(home-page "https://aomedia.googlesource.com/aom/")
(synopsis "AV1 video codec")
(description "Libaom is the reference implementation of AV1. It includes a
("lzo" ,lzo)
("pcre2" ,pcre2)
("pugixml" ,pugixml)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtmultimedia" ,qtmultimedia)
("utfcpp" ,utfcpp)
("zlib" ,zlib)))
(define-public libass
(package
(name "libass")
- (version "0.15.0")
+ (version "0.15.1")
(source (origin
(method url-fetch)
(uri (string-append
version "/libass-" version ".tar.xz"))
(sha256
(base32
- "0cz8v6kh3f2j5rdjrra2z0h715fa16vjm7kambvqx9hak86262cz"))))
+ "0lwfmdizzrr4gcq3fgw4j8g9pkrqgx6h0f3pgrrnxc07s34kkp8w"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "4.3.2")
+ (version "4.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "1nyd9jlcy0pqnwzi29a7sg50hq37vb0g3f9l16y3q8yh3m7ydr26"))))
+ "02fr8mvf2agwmyb9q2bmh9p09gpz3xxmpcbbbj8iydz57hc0mc86"))))
(build-system gnu-build-system)
(inputs
`(("dav1d" ,dav1d)
("sdl" ,sdl2)
("soxr" ,soxr)
("speex" ,speex)
- ;; FFmpeg is not yet compatible with SRT > 1.4.1.
- ("srt" ,srt-1.4.1)
+ ("srt" ,srt)
("twolame" ,twolame)
("vidstab" ,vidstab)
("x265" ,x265)
audio/video codec library.")
(license license:gpl2+)))
+(define-public ffmpeg-4.3
+ (package/inherit ffmpeg
+ (version "4.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1nyd9jlcy0pqnwzi29a7sg50hq37vb0g3f9l16y3q8yh3m7ydr26"))))))
+
(define-public ffmpeg-3.4
(package
(inherit ffmpeg)
(define-public vlc
(package
(name "vlc")
- (version "3.0.12")
+ (version "3.0.16")
(source (origin
(method url-fetch)
(uri (string-append
"/vlc-" version ".tar.xz"))
(sha256
(base32
- "0ygqihw2c5vvzv8950dlf7rdwz1cpz1668jgyja604ljibrmix7g"))))
+ "1xhhjhwihkz74dag25r5fscvw1v2byy4c8qxaxsw29gncky3bbpz"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
("pulseaudio" ,pulseaudio)
("protobuf" ,protobuf)
("python" ,python-wrapper)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtsvg" ,qtsvg)
("qtx11extras" ,qtx11extras)
("samba" ,samba)
(define-public libvpx
(package
(name "libvpx")
- (version "1.9.0")
+ (version "1.10.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "16xv6ambc82g14h1y0q1vyy57wp6j9fbp0nk0wd5csnrw407rhry"))
+ "1p4v6j1505n3gnvx3iksciyi818ymxpazj9fmdrchzbl9pfzg4qi"))
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
(build-system gnu-build-system)
(arguments
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2021.05.16")
+ (version "2021.06.06")
(source (origin
(method url-fetch)
(uri (string-append "https://youtube-dl.org/downloads/latest/"
"youtube-dl-" version ".tar.gz"))
(sha256
(base32
- "1z8sdzvkxhscnzy7cnjag308glif0k8jylr11biqwzypm1f2l0fl"))
+ "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw"))
(snippet
'(begin
;; Delete the pre-generated files, except for the man page
(define-public youtube-dl-gui
(package
(name "youtube-dl-gui")
- (version "0.3.8")
+ (version "0.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Youtube-DLG" version))
(sha256
(base32
- "0napxwzgls5ik1bxbp99vly32l23xpc4ng5kr24hfhf21ypjyadb"))))
+ "1bvq2wyn6az59vpdy04dh68fs8m2qzz948xhphibbcpwpcdk00cd"))))
(build-system python-build-system)
(arguments
;; In Guix, wxpython has not yet been packaged for Python 3.
Type=Application~@
Categories=AudioVideo;Audio;Video;Network~%")))
#t))))))
+ (native-inputs
+ `(("gettext-minimal" ,gettext-minimal)))
(inputs
- `(("python2-wxpython" ,python2-wxpython)
+ `(("python2-twodict" ,python2-twodict)
+ ("python2-wxpython" ,python2-wxpython)
("youtube-dl" ,youtube-dl)))
(home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
(synopsis
("libvpx" ,libvpx)
("libxv" ,libxv)
("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("sqlite" ,sqlite)
("zlib" ,zlib)))
(arguments
(define-public mlt
(package
(name "mlt")
- (version "6.22.1")
+ (version "6.26.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0jxv848ykw0csbnayrd710ylw46m0picfv7rpzsxz1vh4jzs395k"))))
+ "1gz79xvs5jrzqhwhfk0dqdd3xiavnjp4q957h7nb02rij32byb39"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
- #:make-flags '("CC=gcc" "CXX=g++")
+ #:make-flags '(,(string-append "CC=" (cc-for-target))
+ ,(string-append "CXX=" (cxx-for-target)))
#:configure-flags
(list "--enable-gpl3"
"--enable-gpl")
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
+ ("alsa-plugins" ,alsa-plugins "pulseaudio")
("ffmpeg" ,ffmpeg)
("fftw" ,fftw)
("frei0r-plugins" ,frei0r-plugins)
("libxml2" ,libxml2)
("jack" ,jack-1)
("ladspa" ,ladspa)
+ ("libebur128" ,libebur128)
("libexif" ,libexif)
("libvorbis" ,libvorbis)
("rubberband" ,rubberband)
("libsamplerate" ,libsamplerate)
("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtsvg" ,qtsvg)
- ("sdl" ,sdl)
- ("sox" ,sox)))
+ ("rtaudio" ,rtaudio)
+ ("sdl2" ,sdl2)
+ ("sdl2-image" ,sdl2-image)
+ ("sox" ,sox)
+ ("vidstab" ,vidstab)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://www.mltframework.org/")
players, transcoders, web streamers and many more types of applications. The
functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.")
- (license license:gpl3)))
+ (license license:lgpl2.1+)))
(define-public v4l-utils
(package
("glu" ,glu)
("libjpeg" ,libjpeg-turbo)
("libx11" ,libx11)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("eudev" ,eudev)))
(synopsis "Realtime video capture utilities for Linux")
(description "The v4l-utils provide a series of libraries and utilities to
(define-public obs
(package
(name "obs")
- (version "26.1.2")
+ (version "27.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/obsproject/obs-studio")
- (commit version)))
+ (commit version)
+ (recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
- "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc"))
+ "04fzsr9yizmxy0r7z2706crvnsnybpnv5kgfn77znknxxjacfhkn"))
(patches
(search-patches "obs-modules-location.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DOBS_VERSION_OVERRIDE=" ,version)
- "-DENABLE_UNIT_TESTS=TRUE")
+ "-DENABLE_UNIT_TESTS=TRUE"
+ ;; Browser plugin requires cef, but it is not packaged yet.
+ ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
+ "-DBUILD_BROWSER=FALSE")
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-executable
("ffmpeg" ,ffmpeg)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
+ ("glib" ,glib)
("jack" ,jack-1)
("jansson" ,jansson)
("libx264" ,libx264)
("libxcomposite" ,libxcomposite)
("mbedtls" ,mbedtls-apache)
("mesa" ,mesa)
+ ("pipewire" ,pipewire-0.3)
("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtsvg" ,qtsvg)
("qtx11extras" ,qtx11extras)
("speexdsp" ,speexdsp)
("v4l-utils" ,v4l-utils)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
("zlib" ,zlib)))
(synopsis "Live streaming software")
(description "Open Broadcaster Software provides a graphical interface for
#t)))))
(inputs
`(("obs" ,obs)
- ("qtbase" ,qtbase)))
+ ("qtbase" ,qtbase-5)))
(home-page "https://github.com/Palakis/obs-websocket")
(synopsis "OBS plugin for remote control via WebSockets")
(description "This OBS plugin allows you to establish a WebSocket channel
("libxi" ,libxi)
("libxinerama" ,libxinerama)
("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtx11extras" ,qtx11extras)))
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("zlib" ,zlib)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("zlib" ,zlib)
("tinyxml2" ,tinyxml2)
- ("curl" ,curl)
+ ("curl" ,curl) ; In Requires.private of libmediainfo.pc.
("libzen" ,libzen)))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; see above TODO
+ #:configure-flags
+ (list "--with-libcurl" "--with-libtinyxml2")
#:phases
;; build scripts not in root of archive
(modify-phases %standard-phases
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("zlib" ,zlib)
- ("libmediainfo" ,libmediainfo)
- ("libzen" ,libzen)))
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libmediainfo" ,libmediainfo)))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; lacks tests
("unittest++" ,unittest-cpp)))
(propagated-inputs ;all referenced in installed headers
`(("cppzmq" ,cppzmq)
- ("ffmpeg" ,ffmpeg)
+ ;; libopenshot doesn't yet build with ffmpeg 4.4 (see:
+ ;; https://github.com/OpenShot/libopenshot/issues/676).
+ ("ffmpeg" ,ffmpeg-4.3)
("imagemagick" ,imagemagick)
("jsoncpp" ,jsoncpp)
("libopenshot-audio" ,libopenshot-audio)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtmultimedia" ,qtmultimedia)
("zeromq" ,zeromq)))
(arguments
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'wrap-program
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
- (wrap-qt-program out "openshot-qt"))
+ (wrap-qt-program "openshot-qt"
+ #:output out #:inputs inputs))
#t)))))
(home-page "https://www.openshot.org/")
(synopsis "Video editor")
transitions, and effects and then export your film to many common formats.")
(license license:gpl3+)))
+(define-public shotcut
+ (package
+ (name "shotcut")
+ (version "21.03.21")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mltframework/shotcut")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jb488vynn0vmq22z51bg4hb4617732nva9rg52lzl89v5n8gmsi"))))
+ (build-system qt-build-system)
+ (arguments
+ `(#:tests? #f ;there are no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (invoke "qmake"
+ (string-append "PREFIX=" out)
+ "QMAKE_LRELEASE=lrelease"
+ "QMAKE_LUPDATE=lupdate"
+ "shotcut.pro"))))
+ (add-after 'install 'wrap-executable
+ (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"))
+ (sdl2 (assoc-ref inputs "sdl2")))
+ (wrap-program (string-append out "/bin/shotcut")
+ `("PATH" ":" prefix
+ ,(list (string-append ffmpeg "/bin")))
+ `("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")))))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("frei0r-plugins" ,frei0r-plugins)
+ ("jack" ,jack-1)
+ ("ladspa" ,ladspa)
+ ("lame" ,lame)
+ ("libvpx" ,libvpx)
+ ("libx264" ,libx264)
+ ("mlt" ,mlt)
+ ("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase-5)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtgraphicaleffects" ,qtgraphicaleffects)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtquickcontrols" ,qtquickcontrols)
+ ("qtquickcontrols2" ,qtquickcontrols2)
+ ("qtsvg" ,qtsvg)
+ ("qtwebkit" ,qtwebkit)
+ ("qtwebsockets" ,qtwebsockets)
+ ("qtx11extras" ,qtx11extras)
+ ("sdl2" ,sdl2)))
+ (home-page "https://www.shotcut.org/")
+ (synopsis "Video editor built on the MLT framework")
+ (description
+ "Shotcut is a video editor built on the MLT framework. Features include
+a wide range of formats through @code{ffmpeg}, 4k resolution support, webcam
+and audio capture, network stream playback, and many more.")
+ (license license:gpl3+)))
+
(define-public dav1d
(package
(name "dav1d")