Qtで作ったアプリでVLCをバックエンドとしてH.264な動画を再生する

以前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を入れるとネットから持ってきて再生しだします。(ストリーム再生はできてません)

というわけでメモでした。