以前openSUSEのFirefoxでH264な動画再生をするため色々していたのですが、Qtを使ってGUIアプリを作る際にはQMovieクラスだけではH.264な動画は再生できないことがわかっていました。(QMovieは「without sound」とある。)
そこで気になったのが以前書いたPhononのバックエンドをVLCに変えるの中で紹介したPhononというもの。
これはQtで使用可能で、このバックエンドをVLCに変更しVideoLAN本家のvlcを導入しておけばPhonon経由で再生できるのかもと思った次第です。
まずは開発に必要なものを揃えます。最低Qt開発環境とcmakeは入っているものとして…yastかzypperで「phonon4qt5-devel」を入れます。他のディストロでは似たようなものを入れてください。
次にCMakeLists.txtに以下のコードを追加します。
find_package(Phonon4Qt5 REQUIRED)
target_link_libraries(プロジェクト名 ${PHONON_LIBRARY})
以下テストコード
#include <QApplication>
#include <QUrl>
#include <phonon/VideoPlayer>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
Phonon::VideoPlayer player(Phonon::VideoCategory);
player.show();
player.play(QUrl("./test.mp4"));
return app.exec();
}
これで再生できるはずです。
割とかんたんに再生できて、びっくりなんですが、player.play(QUrl(“http://…”))とURLを入れるとネットから持ってきて再生しだします。(ストリーム再生はできてません)
というわけでメモでした。