summaryrefslogtreecommitdiff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm232
1 files changed, 222 insertions, 10 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 31e5d708b8..ee86b67a44 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
@@ -24,21 +24,26 @@
#:select (gpl2 gpl2+ gpl3+ bsd-3 public-domain))
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages compression)
- #:use-module (gnu packages zip)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages elf)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages fribidi)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages guile)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnutls)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
@@ -55,19 +60,20 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
- #:use-module (gnu packages yasm))
+ #:use-module (gnu packages yasm)
+ #:use-module (gnu packages zip))
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "2.5.3")
+ (version "2.5.4")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
version ".tar.bz2"))
(sha256
(base32
- "06j1cgw9h9ya5z8gpcf9v9zik3l4xz7sr4wshj06kznzz5z3sf4x"))))
+ "11m2hbhdgphjxjp6hk438cxmipqjg5ixbr1kqnn9mbdhq9kc34fc"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
@@ -78,7 +84,9 @@
("libvorbis" ,libvorbis)
("libvpx" ,libvpx)
("patchelf" ,patchelf)
+ ("soxr" ,soxr)
("speex" ,speex)
+ ("twolame" ,twolame)
("zlib", zlib)))
(native-inputs
`(("bc" ,bc)
@@ -128,7 +136,6 @@
;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
;; --enable-libmodplug enable ModPlug via libmodplug [no]
-;; --enable-libmp3lame enable MP3 encoding via libmp3lame [no]
;; --enable-libnut enable NUT (de)muxing via libnut,
;; native (de)muxer exists [no]
;; --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
@@ -140,11 +147,9 @@
;; --enable-librtmp enable RTMP[E] support via librtmp [no]
;; --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
;; --enable-libshine enable fixed-point MP3 encoding via libshine [no]
-;; --enable-libsoxr enable Include libsoxr resampling [no]
;; --enable-libssh enable SFTP protocol via libssh [no]
;; (libssh2 does not work)
;; --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
-;; --enable-libtwolame enable MP2 encoding via libtwolame [no]
;; --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
;; --enable-libvidstab enable video stabilization using vid.stab [no]
@@ -170,8 +175,10 @@
"--enable-libfreetype"
"--enable-libmp3lame"
"--enable-libopus"
+ "--enable-libsoxr"
"--enable-libspeex"
"--enable-libtheora"
+ "--enable-libtwolame"
"--enable-libvorbis"
"--enable-libvpx"
@@ -204,14 +211,14 @@ audio/video codec library.")
;; We need this older ffmpeg because vlc-2.1.5 doesn't work with ffmpeg-2.4.
(define-public ffmpeg-2.2
(package (inherit ffmpeg)
- (version "2.2.11")
+ (version "2.2.13")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
version ".tar.bz2"))
(sha256
(base32
- "06sli7xvihh97ss6a2mkdq4dcj3rg1w8zffrmjfc1hvyjxhc8f2r"))))))
+ "1vva8ffwxi3rg44byy09qlbiqrrd1h4rmsl5b1mbmvzvwl1lq1l0"))))))
(define-public vlc
(package
@@ -514,3 +521,208 @@ encapsulated.")
for use with HTML5 video.")
(home-page "http://dthompson.us/pages/software/srt2vtt")
(license gpl3+)))
+
+(define-public avidemux
+ (package
+ (name "avidemux")
+ (version "2.6.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/avidemux/avidemux_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "10p60wjkzf1bxqcb6i7bx4hbqy3vqg598p3l9lc4v2c9b8iqr682"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ ;; FIXME: Once packaged, add libraries not found during the build.
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("fribidi" ,fribidi)
+ ("glu" ,glu)
+ ("gtk+" ,gtk+)
+ ("jack" ,jack-1)
+ ("lame" ,lame)
+ ("libvorbis" ,libvorbis)
+ ("libvpx" ,libvpx)
+ ("libxv" ,libxv)
+ ("perl" ,perl)
+ ("pulseaudio" ,pulseaudio)
+ ("python" ,python-wrapper)
+ ("qt" ,qt-4)
+ ("sdl" ,sdl)
+ ("sqlite" ,sqlite)
+ ("yasm" ,yasm)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ; no check target
+ #:phases
+ ;; Make sure files inside the included ffmpeg tarball are
+ ;; patch-shebanged.
+ (alist-cons-before
+ 'patch-source-shebangs 'unpack-ffmpeg
+ (lambda _
+ (with-directory-excursion "avidemux_core/ffmpeg_package"
+ (system* "tar" "xf" "ffmpeg-1.2.1.tar.bz2")
+ (delete-file "ffmpeg-1.2.1.tar.bz2")))
+ (alist-cons-after
+ 'patch-source-shebangs 'repack-ffmpeg
+ (lambda _
+ (with-directory-excursion "avidemux_core/ffmpeg_package"
+ (substitute* "ffmpeg-1.2.1/configure"
+ (("#! /bin/sh") (string-append "#!" (which "bash"))))
+ (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1")
+ (delete-file-recursively "ffmpeg-1.2.1")))
+ (alist-replace 'configure
+ (lambda _
+ ;; Copy-paste settings from the cmake build system.
+ (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+ (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH")))
+ (alist-replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let*
+ ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib64"))
+ (top (getcwd))
+ (sdl (assoc-ref inputs "sdl"))
+ (build_component
+ (lambda* (component srcdir #:optional (args '()))
+ (let ((builddir (string-append "build_" component)))
+ (mkdir builddir)
+ (with-directory-excursion builddir
+ (zero? (and
+ (apply system* "cmake"
+ "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
+ (string-append "-DCMAKE_INSTALL_PREFIX=" out)
+ (string-append "-DCMAKE_INSTALL_RPATH=" lib)
+ (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
+ (string-append "-DSDL_INCLUDE_DIR="
+ sdl "/include/SDL")
+ (string-append "../" srcdir)
+ args)
+ (system* "make" "-j"
+ (number->string (parallel-job-count)))
+ (system* "make" "install"))))))))
+ (mkdir out)
+ (and (build_component "core" "avidemux_core")
+ (build_component "cli" "avidemux/cli")
+ (build_component "qt4" "avidemux/qt4")
+ (build_component "gtk" "avidemux/gtk")
+ (build_component "plugins_common" "avidemux_plugins"
+ '("-DPLUGIN_UI=COMMON"))
+ (build_component "plugins_cli" "avidemux_plugins"
+ '("-DPLUGIN_UI=CLI"))
+ (build_component "plugins_qt4" "avidemux_plugins"
+ '("-DPLUGIN_UI=QT4"))
+ (build_component "plugins_gtk" "avidemux_plugins"
+ '("-DPLUGIN_UI=GTK"))
+ (build_component "plugins_settings" "avidemux_plugins"
+ '("-DPLUGIN_UI=SETTINGS")))
+ ;; Remove .exe and .dll file.
+ (delete-file-recursively
+ (string-append out "/share/ADM6_addons"))))
+ (alist-delete 'install
+ %standard-phases)))))))
+ (home-page "http://fixounet.free.fr/avidemux/")
+ (synopsis "Video editor")
+ (description "Avidemux is a video editor designed for simple cutting,
+filtering and encoding tasks. It supports many file types, including AVI,
+DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks
+can be automated using projects, job queue and powerful scripting
+capabilities.")
+ ;; Software with various licenses is included, see License.txt.
+ (license gpl2+)))
+
+(define-public avidemux-2.5
+ (package (inherit avidemux)
+ (version "2.5.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/avidemux/avidemux_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "12wvxz0n2g85f079d8mdkkp2zm279d34m9v7qgcqndh48cn7znnn"))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("gettext" ,gnu-gettext)
+ ("gtk+" ,gtk+-2)
+ ("jack" ,jack-1)
+ ("lame" ,lame)
+ ("libvorbis" ,libvorbis)
+ ("libvpx" ,libvpx)
+ ("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)
+ ("libxv" ,libxv)
+ ("perl" ,perl)
+ ("pulseaudio" ,pulseaudio)
+ ("qt" ,qt-4)
+ ("sdl" ,sdl)
+ ("yasm" ,yasm)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (alist-cons-before
+ 'patch-source-shebangs 'unpack-ffmpeg
+ (lambda _
+ (with-directory-excursion "avidemux/ADM_libraries"
+ (system* "tar" "xf" "ffmpeg-0.9.tar.bz2")
+ (delete-file "ffmpeg-0.9.tar.bz2")))
+ (alist-cons-after
+ 'patch-source-shebangs 'repack-ffmpeg
+ (lambda _
+ (with-directory-excursion "avidemux/ADM_libraries"
+ (substitute* "ffmpeg-0.9/configure"
+ (("#! /bin/sh") (string-append "#!" (which "bash"))))
+ (system* "tar" "cjf" "ffmpeg-0.9.tar.bz2" "ffmpeg-0.9")
+ (delete-file-recursively "ffmpeg-0.9")))
+ (alist-replace 'configure
+ (lambda _
+ (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+ (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH")))
+ (alist-replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let*
+ ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (top (getcwd))
+ (sdl (assoc-ref inputs "sdl"))
+ (build_component
+ (lambda* (component srcdir)
+ (let ((builddir (string-append "build_" component)))
+ (mkdir builddir)
+ (with-directory-excursion builddir
+ (zero? (and
+ (system* "cmake"
+ "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
+ (string-append "-DCMAKE_INSTALL_PREFIX="
+ out)
+ (string-append "-DCMAKE_INSTALL_RPATH="
+ lib)
+ (string-append "-DAVIDEMUX_SOURCE_DIR="
+ top)
+ (string-append "-DAVIDEMUX_CORECONFIG_DIR="
+ top "/build_main/config")
+ (string-append "-DAVIDEMUX_INSTALL_PREFIX="
+ out)
+ (string-append "-DSDL_INCLUDE_DIR="
+ sdl "/include/SDL")
+ (string-append "../" srcdir))
+ (system* "make" "-j"
+ (number->string (parallel-job-count)))
+ (system* "make" "install"))))))))
+ (mkdir out)
+ (and (build_component "main" ".")
+ (build_component "plugins" "plugins"))
+ (delete-file-recursively
+ (string-append out "/share/ADM_addons"))))
+ (alist-delete 'install
+ %standard-phases)))))))))