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

どうも。
以前openSUSEのFirefoxでH264な動画再生をするため色々していたのですが、Qt製のソフト、詳しく言えばQMovieクラスだけではH.264な動画は再生できないことがわかっていました。(QMovieは「without sound」とある。)

そこで気になったのが以前書いたPhononのバックエンドをVLCに変えるの中で紹介したPhononというもの。
これはQtに付属しており、このバックエンドをVLCに変更し、VideoLAN本家のvlcを導入しておけばPhonon経由で再生できるのかもと思った次第です。
まずは開発に必要なものを揃えます。最低Qt開発環境とcmakeは入っているものとして…yastかzypperで「phonon4qt5-devel」を入れます。他のディストロでは似たようなものを入れてください。(もちろんバックエンドはVLCに変更済みにしておいてください。)

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

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

投稿者: PG_MANA

支離滅裂な自称プログラマー。 C,C++,Rust,JavaScript,PHP,HTML,CSS,OS自作,openSUSE,Arch,旅行 なんか色々してる人 #seccamp 17 19 20 23 #OtakuAssembly