movie-monad: Plays videos using GStreamer and GTK+.

[ application, bsd3, multimedia, multimedia-player, program, video ] [ Propose Tags ]

Desktop video player that uses GStreamer and GTK+.


[Skip to Readme]
Versions [faq] 0.0.0.0, 0.0.1.0, 0.0.2.0, 0.0.3.0, 0.0.4.0, 0.0.5.0 (info)
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5), filepath (==1.4.*), gi-gdk (==3.0.*), gi-gdkpixbuf (==2.0.*), gi-glib (==2.0.*), gi-gobject (==2.0.*), gi-gst (==1.0.*), gi-gstvideo (==1.0.*), gi-gtk (==3.0.18), haskell-gi-base (==0.20.4), MissingH (==1.4.*), network-uri (==2.6.*), process (==1.4.*), system-fileio (==0.3.*), system-filepath (==0.4.*), text (==1.2.*), time (==1.6.*) [details]
License BSD-3-Clause
Copyright 2017 David Lettier
Author Lettier
Maintainer Lettier
Category Application , Multimedia , Multimedia Player , Video
Home page https://github.com/lettier/movie-monad
Source repo head: git clone https://github.com/lettier/movie-monad.git
Uploaded by lettier at Tue Dec 12 10:53:51 UTC 2017
Distributions NixOS:0.0.5.0
Executables movie-monad
Downloads 1365 total (43 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2017-12-12 [all 2 reports]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for movie-monad-0.0.2.0

[back to package description]

Movie Monad

Movie Monad

A desktop video player built with Haskell that uses GStreamer and GTK+.

Screenshots

GUI showing Sintel from the Blender Foundation

GUI showing Big Buck Bunny from the Blender Foundation

GUI showing the About window as seen on the Mac

Features

  • Local or remote video file playback
    • file://
    • http://
    • https://
  • Window size selection
  • Fullscreen mode
  • Seek
  • Play and pause
  • Volume
  • Command line play
    • movie-monad ./path/to/video/file.mp4
    • movie-monad http://www.domain.tld/path/to/video/file.mp4

Keyboard Shortcuts

  • Mute/Unmute
    • m
    • AudioMute
  • Fullscreen/Windowed
    • f
  • Show Controls
    • c
  • Volume Up
    • ArrowUp
    • AudioRaiseVolume
  • Volume Down
    • ArrowDown
    • AudioLowerVolume
  • Play/Pause
    • Space
    • AudioPlay

Tested On

Linux

Mac

Dependencies

Run

Build

Install & Run

Linux

AppImage

# Install GTK+ >= 3.10 (https://www.gtk.org/download/index.php)
# Install GStreamer >= 1.0 (https://gstreamer.freedesktop.org/download/)
# Install GStreamer Good Plug-ins (https://gstreamer.freedesktop.org/modules/gst-plugins-good.html)
# Install GStreamer Bad Plug-ins >= 1.8 (https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html)
# Visit https://github.com/lettier/movie-monad/releases
# * equals the current version
# Download the latest AppImage movie-monad-*-x86_64.AppImage
wget https://github.com/lettier/movie-monad/releases/download/*/movie-monad-*-x86_64.AppImage
chmod a+x movie-monad-*-x86_64.AppImage
./movie-monad-*-x86_64.AppImage
# If you would like to install the AppImage, you can run the following
cd
wget "https://raw.githubusercontent.com/lettier/movie-monad/master/packaging/linux/movie-monad-install.sh" -O "movie-monad-install.sh"
chmod +x "movie-monad-install.sh"
./movie-monad-install.sh

Mac

# Install Homebrew (https://brew.sh/#install)
cd ~/Downloads
brew update && brew upgrade
brew install git
git clone https://github.com/lettier/movie-monad.git
cd movie-monad
brew cask install haskell-platform
brew install pkg-config libffi libav libsvg librsvg libogg libvorbis openh264 theora \
  gobject-introspection cairo gdk-pixbuf gsettings-desktop-schemas gtk+3 gtk-mac-integration \
  gstreamer gst-libav gst-plugins-base gst-plugins-good
brew install --with-gtk+3 gst-plugins-bad
stack setup
stack install hsc2hs
stack install
export PATH=$PATH:"$HOME/.local/bin/"
movie-monad

Hackage

# Install GObject Introspection (https://wiki.gnome.org/action/show/Projects/GObjectIntrospection)
# Install GTK+ >= 3.10 (https://www.gtk.org/download/index.php)
# Install GStreamer >= 1.0 (https://gstreamer.freedesktop.org/download/)
# Install GStreamer Good Plug-ins (https://gstreamer.freedesktop.org/modules/gst-plugins-good.html)
# Install GStreamer Bad Plug-ins >= 1.8 (https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html)
# Install Cabal, GHC == 8.0.2 (https://www.haskell.org/platform/prior.html)
# Install Cabal Install (https://www.haskell.org/platform/prior.html)
cabal install movie-monad
movie-monad

GitHub

# Install GObject Introspection (https://wiki.gnome.org/action/show/Projects/GObjectIntrospection)
# Install GTK+ >= 3.10 (https://www.gtk.org/download/index.php)
# Install GStreamer >= 1.0 (https://gstreamer.freedesktop.org/download/)
# Install GStreamer Good Plug-ins (https://gstreamer.freedesktop.org/modules/gst-plugins-good.html)
# Install GStreamer Bad Plug-ins >= 1.8 (https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html)
# Install Git (https://git-scm.com/downloads)
# Install GNU Make (https://www.gnu.org/software/make/)
# Install Haskell, GHC == 8.0.2 (https://www.haskell.org/platform/prior.html)
# Install Haksell Stack (https://www.haskell.org/platform/)
git clone https://github.com/lettier/movie-monad.git
cd movie-monad/
make
make install
make run

Developer Documentation

Let's make a GTK Video Player with Haskell

License

See LICENSE.

Copyright

(C) 2017 David Lettier
lettier.com