Easier way to install or build mpv with mmal hardware decoding and ffmpeg/libass


  • mkdir rpimpv && cd rpimpv
  • wget https://awesome.nwgat.ninja/deb/mpv/mpv_0.20.0_armhf.deb https://awesome.nwgat.ninja/deb/mpv/libass_0.13.3-1_armhf.deb https://awesome.nwgat.ninja/deb/mpv/ffmpeg_3.1.3-1_armhf.deb
  • sudo dpkg -i *.deb
  • sudo apt-get -f install
  • sudo apt-get install libluajit
  • wget https://awesome.nwgat.ninja/deb/mpv/mpv.conf -O $HOME/.config/mpv/mpv.conf
  • sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
  • sudo chmod a+rx /usr/local/bin/youtube-dl

Play a file

  • mpv http://ow.ly/10tB0C (Big Buck Bunny 1080p30)
  • mpv https://www.youtube.com/watch?v=aqz-KE-bpKQ (Big Buck Bunny 1080p30)

mmal error

  • sudo su
  • echo "gpu_mem=159" >> /boot/config.txt
  • echo "gpu_mem=256" >> /boot/config.txt (rpi2/rpi3)
  • sudo reboot

you can tweak the settings in mpv config file, if you need to move the window or change resolution of youtube, it currently defaults to 1080p30

  • nano $HOME/.config/mpv/mpv.conf

note: it will default to borderless non-movable window, this is a limitation of raspberry pi

Build it yourself

  • sudo apt-get install -y gperf bison flex autoconf automake make texinfo help2man libtool libtool-bin ncurses-dev git yasm mercurial cmake cmake-curses-gui libfribidi-dev checkinstall libfontconfig1-dev libgl1-mesa-dev libgles2-mesa-dev gnutls-dev libsmbclient-dev libpulse-dev libbluray-dev libdvdread-dev libluajit-5.1-dev libjpeg-dev libv4l-dev libcdio-cdda-dev libcdio-paranoia-dev
  • git clone https://github.com/mpv-player/mpv-build.git
  • cd mpv-build
  • echo --enable-mmal >> ffmpeg_options
  • ./use-mpv-release
  • ./use-ffmpeg-release
  • ./update
  • ./rebuild -j4
  • sudo ./install

enable i2s

  • sudo raspi-config
  • Advanced Settings > Enable I2C

or run the commands below

  • sudo sed -i 's/#dtparam=i2s-arm=on/dtparam=i2s-arm=on/g' /boot/config.txt
  • sudo sed -i 's/#dtparam=i2s=on/dtparam=i2s=on/g' /boot/config.txt

install i2c tools

  • sudo apt-get install i2c-tools python-smbus -y
  • sudo i2cdetect -y 1 (see if you can spot the connection, mine said 40)

install the pigpio libary

  • wget abyz.co.uk/rpi/pigpio/pigpio.zip
  • unzip pigpio.zip && cd PIGPIO
  • make && sudo make install
  • sudo pigpiod

get the pi code

  • git clone https://github.com/dalexgray/RaspberryPI_HTU21DF.git && cd RaspberryPI_HTU21DF
  • sudo python HTU21DF.py install

test it

  • python HTU21DF_test.py


omxplayer seem to be the best player, almost 0% cpu usage!

  • sudp apt-get update && sudo apt-get install omxplayer -y
  • omxplayer -b -o hdmi http://awesome.nwgat.ninja/misc/Commie_typesetting_shenanigans.mp4

the above command can be run via ssh connection

  • -o hdmi will send it to your RPi Display
  • -b blacks the background

there is no gui, you only get fullscreen, its still better than other players
omxplayer -h gives you more info

banding/color issues? try forcing 32-bit

  • echo "framebuffer_depth=32" >> config.txt
  • echo "framebuffer_ignore_alpha=1" >> config.txt

Actually you can resize the disk while active in arch linux. might work for ubuntu, raspbian, debian and other linux based ones

As root:

  • fdisk /dev/mmcblk0

Delete the second partition /dev/mmcblk0p2

  • d
  • 2

Create a new primary partition and use default sizes prompted. This will then create a partiton that fills the disk

  • n
  • p
  • 2
  • enter
  • enter

Save and exit fdisk:

  • w

Now reboot. Once rebooted:
resize2fs /dev/mmcblk0p2

Your main / partition should be the full size of the disk now.

another method with parted

sources: http://archlinuxarm.org/forum/viewtopic.php?f=31&t=3119

Receive $10 in credit at DigitalOcean for your VPS Hosting
€1.24 VPS from Time4VPs
Proudly published with Ghost | Theme based on Draugur | Header Image by GUWEIZ@DeviantArt
Creative Commons Licence