Coder Social home page Coder Social logo

strogo / movie-monad Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lettier/movie-monad

0.0 2.0 0.0 3.51 MB

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

Home Page: https://hackage.haskell.org/package/movie-monad

License: BSD 3-Clause "New" or "Revised" License

Haskell 91.38% Makefile 2.30% Shell 5.68% C 0.44% C++ 0.20%

movie-monad's Introduction

Movie Monad

Movie Monad

A free and simple to use video player built with Haskell.

Screenshots

Linux

GUI showing "Caminandes 3: LLamigos" from the Blender Foundation

GUI showing "Sintel" from the Blender Foundation

Mac

GUI showing "Big Buck Bunny" from the Blender Foundation

GUI showing the About window as seen on the Mac

Features

  • Local or Remote Video Playback
    • file://
    • http://
    • https://
  • Window Size Quick Select
  • Responsive Window Resizing
  • Fullscreen Mode
  • Seek
  • Play and Pause
  • Volume
  • Subtitles
    • Disable
    • List and Pick from the Available Languages
  • 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
  • Seek Left
    • ArrowLeft
  • Seek Right
    • ArrowRight
  • Play/Pause
    • Space
    • AudioPlay

Tested On

Linux

Mac

Dependencies

Run

Build

Install & Run

Linux

AppImage

Download & Run
# 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 Wget (https://www.gnu.org/software/wget/)
# Visit https://github.com/lettier/movie-monad/releases
# Download the latest AppImage movie-monad-0.0.4.0-x86_64.AppImage
wget https://github.com/lettier/movie-monad/releases/download/0.0.4.0/movie-monad-0.0.4.0-x86_64.AppImage
chmod a+x movie-monad-0.0.4.0-x86_64.AppImage
./movie-monad-0.0.4.0-x86_64.AppImage
Install
# 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 Wget (https://www.gnu.org/software/wget/)
wget "https://raw.githubusercontent.com/lettier/movie-monad/master/scripts/sh/install-app-image.sh" -O "movie-monad-install-app-image.sh"
chmod +x "movie-monad-install-app-image.sh"
./movie-monad-install-app-image.sh

Snap

# Install snapd (https://docs.snapcraft.io/core/install)
snap install movie-monad
sudo snap connect movie-monad:mount-observe
sudo snap connect movie-monad:removable-media
sudo snap connect movie-monad:raw-usb
movie-monad
Known Issues
  • Ubuntu 17
    • Does not launch if using Wayland
      • At login, click the gear and select Ubuntu on Xorg
      • Note that Movie Monad works with Wayland when not using the snap
  • File Explorer
    • Some of the left sidebar shortcuts do not map to the expected user directories
      • They instead map to the snap's read-only filesystem or to nothing at all
  • Subtitles
    • Subtitles do not show even though you can select them in the drop down
      • GStreamer must not have access to or cannot find any suitable fonts

All of these issues can be avoided if you run the executable directly.

/snap/movie-monad/current/user/bin/movie-monad

Arch/Manjaro/Antergos

cd
# Install Git (https://git-scm.com/downloads)
sudo pacman -S git
# Install Movie Monad from the AUR (https://aur.archlinux.org/packages/movie-monad/)
mkdir -p movie-monad-tmp
cd movie-monad-tmp
git clone https://aur.archlinux.org/movie-monad.git
cd movie-monad
makepkg -sic
cd
rm -rf movie-monad-tmp
movie-monad

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

movie-monad's People

Contributors

lettier avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.