summary refs log tree commit diff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm167
1 files changed, 94 insertions, 73 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d6227973d8..76bb839bb1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -204,6 +204,32 @@ In fact, there is no graphical output possible.  AA-lib replaces those
 old-fashioned output methods with powerful ascii-art renderer.")
     (license license:lgpl2.0+)))
 
+(define-public celluloid
+  (package
+    (name "celluloid")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/celluloid-player/celluloid/releases"
+                           "/download/v" version "/celluloid-" version ".tar.xz"))
+       (sha256
+        (base32 "0a3bhvs38gxjplygb0q9cx5djl5y0bmnxgaq0sd65j610a60f5h0"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libepoxy" ,libepoxy)
+       ("mpv" ,mpv)))
+    (home-page "https://github.com/celluloid-player/celluloid")
+    (synopsis "GTK+ frontend for the mpv media player")
+    (description "Celluloid is a simple GTK+ frontend for the mpv media player.
+It interacts with mpv via the client API exported by libmpv, allowing access to
+mpv's powerful playback capabilities.")
+    (license license:gpl3+)))
+
 (define-public liba52
   (package
     (name "liba52")
@@ -357,15 +383,14 @@ H.264 (MPEG-4 AVC) video streams.")
 (define-public mkvtoolnix
   (package
     (name "mkvtoolnix")
-    (version "31.0.0")
+    (version "37.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mkvtoolnix.download/sources/"
-                           name "-" version ".tar.xz"))
+                           "mkvtoolnix-" version ".tar.xz"))
        (sha256
-        (base32
-         "0d8va2iamzc7y3wi71z8mk2vnqvnkgwb2p7casdfp37400x8r2pr"))
+        (base32 "0r4d9318ymb9a0mkc0shi9p4kjy3m70s49v4f8dmjhvj63silhix"))
        (modules '((guix build utils)))
        (snippet '(begin
                    ;; Delete bundled libraries.
@@ -419,6 +444,13 @@ H.264 (MPEG-4 AVC) video streams.")
              "--enable-precompiled-headers=no")
         #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-relative-file-names
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+             (substitute* "src/mkvtoolnix-gui/util/settings.cpp"
+               (("mkvmerge" match)
+                (string-append out "/bin/" match)))
+             #t)))
          (add-before 'configure 'add-googletest
            (lambda* (#:key inputs #:allow-other-keys)
              (symlink
@@ -466,8 +498,9 @@ H.264 (MPEG-4 AVC) video streams.")
     (synopsis "Tools to create, alter and inspect Matroska files")
     (description
      "MKVToolNix provides tools for getting information about Matroska files
-(@code{mkvinfo}), extracting tracks/data from Matroska files (@code{mkvextract})
-and creating Matroska files from other media files (@code{mkvmerge}).")
+(@command{mkvinfo}), extracting tracks/data from Matroska files
+(@command{mkvextract}), and creating Matroska files from other media files
+(@command{mkvmerge}).")
     (license license:gpl2)))
 
 (define-public x265
@@ -792,14 +825,14 @@ operate properly.")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "4.2")
+    (version "4.2.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2"))))
+               "1m5nkc61ihgcf0b2wabm0zyqa8sj3c0w8fi6kr879lb0kdzciiyf"))))
     (build-system gnu-build-system)
     (inputs
      `(("dav1d" ,dav1d)
@@ -1052,7 +1085,7 @@ videoformats depend on the configuration flags of ffmpeg.")
 (define-public vlc
   (package
     (name "vlc")
-    (version "3.0.7.1")
+    (version "3.0.8")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1061,7 +1094,7 @@ videoformats depend on the configuration flags of ffmpeg.")
                    "/vlc-" version ".tar.xz"))
              (sha256
               (base32
-               "1xb4c8n0hkwijzfdlbwadhxnx9z8rlhmrdq4c7q74rq9f51q0m86"))))
+               "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
@@ -1397,32 +1430,7 @@ projects while introducing many more.")
     (license license:gpl2+)))
 
 (define-public gnome-mpv
-  (package
-    (name "gnome-mpv")
-    (version "0.16")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
-                           "/download/v" version "/gnome-mpv-" version
-                           ".tar.xz"))
-       (sha256
-        (base32
-         "0jzdzvhcqp5jp1inwk2466zf7r8iimk3x69066gl8mzaay98mk92"))))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("libepoxy" ,libepoxy)
-       ("mpv" ,mpv)))
-    (build-system glib-or-gtk-build-system)
-    (home-page "https://github.com/gnome-mpv/gnome-mpv")
-    (synopsis "GTK+ frontend for the mpv media player")
-    (description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
-GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
-access to mpv's powerful playback capabilities.")
-    (license license:gpl3+)))
+  (deprecated-package "gnome-mpv" celluloid))
 
 (define-public libvpx
   (package
@@ -1485,15 +1493,15 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.08.02")
+    (version "2019.09.28")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
-                                  "download/" version "/youtube-dl-"
+              (uri (string-append "https://github.com/ytdl-org/youtube-dl/"
+                                  "releases/download/" version "/youtube-dl-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "101b6jrf6ckbxrn76ppvgdyrb25p7d247kn8qgq7n476sfnkfg2p"))))
+                "0nrk0bk6lksnmng8lwhcpkc57iibzjjamlqz8rxjpsw6dnzxz82h"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1624,7 +1632,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1328")
+    (version "0.4.1355")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1633,7 +1641,7 @@ other site that youtube-dl supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r9qffwvxmp74byva12h2jsn3n33vyim052sx9lykv5dygibbp65"))))
+                "0xq7z04hvw3b3npiahlpzhbxsjvam9n9dynplyrkn84dx6k9ajbj"))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@ -1663,7 +1671,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
 (define-public youtube-viewer
   (package
     (name "youtube-viewer")
-    (version "3.5.4")
+    (version "3.5.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1672,7 +1680,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1j782m9rximybamd0qsc43hi7hgk333x9gy3ypzb61s0sifs0i6m"))))
+                "0zz0r3vd2pg9zzykhrq0vnvqp5842dbgsg8cfygw9vzb9j8mlq0a"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
@@ -2196,7 +2204,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
 (define-public mlt
   (package
     (name "mlt")
-    (version "6.12.0")
+    (version "6.16.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2205,7 +2213,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pzm3mjbbdl2rkbswgyfkx552xlxh2qrwzsi2a4dicfr92rfgq6w"))))
+                "1362fv63p34kza9v4b71b6wakgvsa2vdx9y0g28x3yh4cp4k97kx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -2290,7 +2298,7 @@ be used for realtime video capture via Linux-specific APIs.")
 (define-public obs
   (package
     (name "obs")
-    (version "23.0.2")
+    (version "24.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2299,7 +2307,7 @@ be used for realtime video capture via Linux-specific APIs.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c0a5vy4h3qwz69qw3bydyk7r651ib5a9jna4yj6c25p3p9isdvp"))))
+                "056s0hs1ds3c57sc0gy39dxaxvwlakl3w25jxgawh0fs99211ar5"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests
@@ -2319,6 +2327,7 @@ be used for realtime video capture via Linux-specific APIs.")
        ("mesa" ,mesa)
        ("pulseaudio" ,pulseaudio)
        ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("speex" ,speex)
        ("v4l-utils" ,v4l-utils)
@@ -2509,6 +2518,10 @@ Other features include a live preview and live streaming.")
                (base32
                 "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
     (build-system gnu-build-system)
+    (arguments
+     ;; libsmpeg fails to build with -std=c++11, which is the default with
+     ;; GCC 7.  Also, 'configure' does CXXFLAGS=$CFLAGS, hence this hack.
+     '(#:configure-flags '("CFLAGS=-O2 -g -std=c++03")))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
@@ -2625,14 +2638,14 @@ supported players in addition to this package.")
 (define-public handbrake
   (package
     (name "handbrake")
-    (version "1.1.2")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.handbrake.fr/releases/"
                                   version "/HandBrake-" version "-source.tar.bz2"))
               (sha256
                (base32
-                "0bny0hwlr55g2c69rsamv0xvwmfh1s4a582b9vq20xv5ly84m6ms"))
+                "03clkknaq3mz84p85cvr21gsy9b8vv2g4vvyfz44hz8la253jfqi"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove "contrib" and source not necessary for
@@ -2646,11 +2659,13 @@ supported players in addition to this package.")
                     ;; which would lead to fetching and building of these
                     ;; libraries.  Use our own instead.
                     (("MODULES \\+= contrib") "# MODULES += contrib"))
-                  #t))))
+                  #t))
+              (patches (search-patches "handbrake-opt-in-nvenc.patch"))))
     (build-system  glib-or-gtk-build-system)
     (native-inputs
      `(("automake" ,automake)           ;gui subpackage must be bootstrapped
        ("autoconf" ,autoconf)
+       ("cmake" ,cmake-minimal) ;TODO: could probably strip check from make/configure.py
        ("curl" ,curl)                   ;not actually used, but tested for
        ("intltool" ,intltool)
        ("libtool" ,libtool)
@@ -2683,12 +2698,14 @@ supported players in addition to this package.")
        ("libvpx" ,libvpx)
        ("libxml2" ,libxml2)
        ("libx264" ,libx264)
+       ("speex" ,speex)
        ("x265" ,x265)
        ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f             ;tests require Ruby and claim to be unsupported
        #:configure-flags
-       (list (string-append "CPPFLAGS=-I"
+       (list "--disable-gtk-update-checks"
+             (string-append "CPPFLAGS=-I"
                             (assoc-ref %build-inputs "libxml2")
                             "/include/libxml2")
              "LDFLAGS=-lx265")
@@ -2815,6 +2832,7 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
                            "code-archive-downloads/v2/"
                            "code.google.com/mp4v2/mp4v2-" version ".tar.bz2"))
        (file-name (string-append name "-" version ".tar.bz2"))
+       (patches (search-patches "libmp4v2-c++11.patch"))
        (sha256
         (base32
          "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683"))))
@@ -3374,30 +3392,32 @@ online.")
     (license license:expat)))
 
 (define-public vidstab
-  (package
-    (name "vidstab")
-    (version "1.1.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/georgmartius/vid.stab.git")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38"))))
-    (build-system cmake-build-system)
-    (arguments
-     '(#:tests? #f)) ; tests are not run as part of standard build process
-    (home-page "http://public.hronopik.de/vid.stab/")
-    (synopsis "Video stabilization library")
-    (description "Vidstab is a video stabilization library which can be used
+  (let ((commit "aeabc8daa7904f9edf7441a11f293965a5ef53b8")
+        (revision "0"))
+    (package
+      (name "vidstab")
+      (version (git-version "1.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/georgmartius/vid.stab.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "042iy0f3khwzr68djzvqgn301sy21ljvkf52rnc2c73q7ircnzzn"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:tests? #f)) ; tests are not run as part of standard build process
+      (home-page "http://public.hronopik.de/vid.stab/")
+      (synopsis "Video stabilization library")
+      (description "Vidstab is a video stabilization library which can be used
 with FFmpeg.  A video acquired using a hand-held camera or a camera mounted on a
 vehicle typically suffers from undesirable shakes and jitters.  Activities such
 as surfing, skiing, riding and walking while shooting videos are especially
 prone to erratic camera shakes.  Vidstab targets these video contents to help
 create smoother and stable videos.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public libopenshot
   (package
@@ -3525,7 +3545,7 @@ transitions, and effects and then export your film to many common formats.")
 (define-public dav1d
   (package
     (name "dav1d")
-    (version "0.2.2")
+    (version "0.4.0")
     (source
       (origin
         (method url-fetch)
@@ -3537,7 +3557,8 @@ transitions, and effects and then export your film to many common formats.")
                    (string-append "https://code.videolan.org/videolan/dav1d/-/"
                                   "archive/" version "/dav1d-" version ".tar.bz2")))
         (sha256
-         (base32 "1llf4v486avj83d31670vdd5nshbq10qrx9vwrm1j078dh4ax4q0"))))
+         (base32
+          "08yqml01lbcpflrshdpvn88jv3xd8gm559qikiwyrh41a3kb4lr5"))))
     (build-system meson-build-system)
     (native-inputs `(("nasm" ,nasm)))
     (home-page "https://code.videolan.org/videolan/dav1d")