在某個項目中需要在樹莓派上播放廣告視頻,由于QT默認的QMultimedia播放視頻性能堪憂(也可能沒有用好!),于是想到了omxplayer這個性能一流的的播放器。
# 第1步,安裝ffmpeg
###配置C++編譯開發環境
~~~
$ sudo apt-get install build-essential
~~~
安裝automake
~~~
$ sudo apt-get install automake1.11
~~~
如果是windows環境,還要安裝yasm
~~~
$ sudo apt-get install yasm
~~~
通過git下載ffmpeg源碼
~~~
$sudo git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
~~~
生成makefile,編譯
~~~
./configure
make
make install
~~~
在樹莓派下默認安裝是在/usr/local
頭文件在/usr/local/include
庫文件在/usr/local/lib
# 第2步,安裝omxplayer
可通過git下載源碼安裝
~~~
https://github.com/popcornmix/omxplayer
~~~
也可apt-get直接安裝編譯好的包
~~~
$ sudo apt-get install omxplayer
~~~
現在可通過命令行輸入播放視頻了
~~~
$ omxplayer /home/pi/myVideo.mp4 --win '100,100,500,300'
在100,100處播放myVideo.mp4,視頻大小設定為500 × 300
~~~
# 第3步,python使用dbus調用omxplayer
找到一個pytho的調用omxplayer的程序,哈哈
https://github.com/willprice/python-omxplayer-wrapper/
下載安裝
~~~
$ git clone https://github.com/willprice/python-omxplayer-wrapper python-omxplayer-wrapper
~~~
確保python-dbus已經安裝了
~~~
$ sudo apt-get install python-dbus
~~~
進入python-omxplayer-wrapper目錄安裝
~~~
$ python setup.py install
~~~
然后就是照著例子寫個Hello程序吧
```
from omxplayer import OMXPlayer
from time import sleep
player = OMXPlayer('/home/pi/myVideo.mp4', args=['--win','100,100,500,300'])
player.play()
sleep(5)
player.pause()
player.quit()
```
# 第4步,使用QT調用omxplayer
在樹莓派上,使用QT5.3編譯
~~~
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStringList>
#include <QtCore/QCoreApplication>
#include <QtDBus/QtDBus>
MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QString prog = "/usr/bin/omxplayer";
QStringList args;
args <<"/home/pi/myVideo.mp4"<<"--win"<<"100,100,500,300";
QProcess *omxplayer = new QProcess();
omxplayer->startDetached(prog, args);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButtonPause_clicked()
{
QString prog = "/root/omxplayer/dbuscontrol.sh";
QStringList args;
args << "pause";
QProcess *pause = new QProcess();
pause->startDetached(prog,args);
}
~~~