Hardware Accelerated Raspberry Pi on Raspbian

From Modding Fridays
Jump to: navigation, search

This is unfinished/useless, current problems with this approach:

  • Turning on the experimental GPU drivers disables 2d hardware acceleration
  • Successfully compiling ffmpeg and mpv to take advantage of the Pi hardware will lead to a system that can indeed play 1080p@30fps without a problem, but there is no windowing, meaning that the image is painted directly and overrides any other graphics, and also any OSD/subtitles display/interaction will introduce stuttering.
(

Maybe looking at this again in 6 months, there will be more hopeful solutions...


At time of writing, raspbian stretch packages do not make full use of the RPi's GPU.

ffmpeg and mpv

  • free mem for compilation in /boot/config.txt
gpu_mem=32
  • update system
apt update
apt upgrade
rpi-update
  • enable experimental opengl driver in raspi-config
  • reboot
apt install autoconf automake checkinstall libsdl2-dev libtool libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev texinfo libfribidi-dev libfontconfig1-dev libjpeg-dev libgnutls28-dev libluajit-5.1-dev python-docutils libbluray-dev libtheora-dev libvorbis-dev linux-headers-rpi2 libomxil-bellagio-dev
  • Compilation time:
cd /usr/src
wget https://github.com/libass/libass/releases/download/0.14.0/libass-0.14.0.tar.xz
tar xvf libass-0.14.0.tar.xz
cd libass-0.14.0
./configure --prefix=/usr --enable-shared
make -j4
make install
ldconfig
cd /usr/src
wget http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.xz
tar xvf ffmpeg-3.4.1.tar.xz
cd ffmpeg-3.4.1
./configure --prefix=/usr --enable-gpl --enable-nonfree --enable-static --enable-libtheora --enable-libvorbis --enable-omx --enable-omx-rpi --enable-mmal --enable-libxcb --enable-libfreetype --enable-libass --enable-gnutls --disable-opencl --extra-cflags="-march=armv8-a+crc -mfpu=neon-fp-armv8 -mtune=cortex-a53"
make -j4
make install
ldconfig
cd /usr/src
wget https://github.com/mpv-player/mpv/archive/v0.28.1.tar.gz
tar xvf v0.28.1.tar.gz
cd mpv-0.28.1
./bootstrap.py