树莓派+Qt5.8硬解码视频
说明:
本文基于https://github.com/sunshiners/rpi-buildqt,并作出部分优化(禁止转载)。
版本:Ubuntu 16.04(64 bit) , raspberry Jessie Lite (2017-01-11)
工具链:arm-rpi-4.9.3-linux-gnueabihf
步骤:
1. 在Ubuntu上安装工具并且下载编译所需源码
# 安装工具
sudo apt-get install build-essential sshpass git python pkg-config
#安装启动ssh(若无ssh)
sudo apt-get install openssh-server
sudo service ssh start
# 下载源码
mkdir -p ~/raspi
cd ~/raspi
git clone https://github.com/sunshiners/rpi-buildqt.git
# 更改权限
chmod +x scripts/0_init.sh
./scripts/0_init.sh
2. 根据树莓派更新 `env.sh` 中的IP地址,主机名称和密码
3. 在树莓派上安装编译环境
# 更改显存为 256 MB
sudo raspi-config
# 取消源注释
sudo nano /etc/apt/sources.list
# 下载依赖
sudo apt-get update
sudo apt-get build-dep qt4-x11
sudo apt-get build-dep libqt5gui5
sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 libsmbclient-dev libssh-dev libv4l-dev libboost1.55-all-dev libbz2-dev
# 移除 ‘gstreamer’(非常重要)
sudo apt-get purge gstreamer*
# 修改依赖关系
sudo rm /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo ln -s /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
sudo ln -s /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
# 创建Qt安装路径
sudo mkdir -p /usr/local/qt5.8
sudo chown pi:pi /usr/local/qt5.8
# 数据流重定向
echo /usr/local/qt5.8/lib | sudo tee /etc/ld.so.conf.d/qt5.8.conf
4. 运行 `1_download.sh`, 下载所需的资料库。
5. 运行 `2_sync.sh`, 连接树莓派并且创建‘sysroot’目录。
6. 运行 `3.0_build_qtbase.sh`,编译安装 `qtbase`。
7. 运行 `3.*_build_*.sh`,编译安装Qt的模块 。
8. 运行 `4_build_piomxtextures.sh`,编译安装`piomxtextures`。
9. 运行 `5_sync_to_device.sh`, 将Qt传给树莓派。
10. 在树莓派上运行 sudo ldconfig。
11. 最后运行`~/piomxtextures_pocplayer /opt/vc/src/hello_pi/hello_video/test.h264`,实现硬解码播放视频。