QTAV ソース パッケージのコンパイル
ソースコードをダウンロードする
依存ライブラリをダウンロードします (ffmepg およびその他のコンテンツが含まれています)
https://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86+x64.7z/download
ソースパッケージをダウンロードする
https://github.com/wang-bin/QtAV
- サブモジュールを更新する
cd QtAV && git submodule update --init
QTAV ソース コードと依存ライブラリを同じルート ディレクトリに解凍します。そうしないと、後で .qmake.conf の内容を変更する必要が生じる可能性があります。
構成環境
依存ライブラリの lib\x64、bin\x64、およびインクルード ファイルを Qt インストール ディレクトリ (Qt\5.15.2\msvc2019_64) にコピーします。
.qmake.conf ファイルを開きます
2行追加
INCLUDEPATH += $$PWD/../QtAV-depends-windows-x86+x64/include
#这里我们要注意 如果我们编译器是64位的 填以下路径
#LIBS += -L$$PWD/../QtAV-depends-windows-x86+x64/lib/x64
#这里我们要注意 如果我们编译器是32位的 填以下路径
LIBS += -L$$PWD/../QtAV-depends-windows-x86+x64/lib
構築する
ああ、QtAV.pro を開いてビルドします。私はリリース バージョンを選択しました。途中でエラーが発生します: XXX は C++17 での使用法です。私はそれを pro ファイルに含めることにしましたCONFIG += C++17
。その後、構築が完了し、例の qml プロジェクトを通常どおり実行できるようになります。lib_win_x86_64
内部の .lib および .dll ライブラリ ファイルは、必要なコンパイル済みの QTAV サードパーティ ライブラリです。[Qt オープンソース オーディオおよびビデオ フレームワーク モジュール QtAV] 01: 導入、コンパイル、簡単な使い方を参照してください。
qtavをインストールする
QTAV のコンパイル ディレクトリにある sdk_install.bat を見つけて [インストール] をクリックするとインストールされます。
QML での QTAV の使用
Qt は QML 内の qtav を認識しない可能性があるため、pro ファイルに追加できますQML_IMPORT_PATH += [QtAVSourceCodeDir]/qml
。「プロジェクトで QtAV を使用する」を参照してください。
- テストプロ
QT += qml quick
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp
HEADERS +=
FORMS +=
# Default rules for deployment.
qnx: target.path = /tmp/$${
TARGET}/bin
else: unix:!android: target.path = /opt/$${
TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
qrc.qrc
QML_IMPORT_PATH += [QtAVSourceCodeDir]/qml
- main.cpp
#include<QQmlEngine>
#include<QQmlContext>
#include<QQmlApplicationEngine>
#include<QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return a.exec();
}
- main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtAV 1.6
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Video {
id: video
anchors.fill: parent
source: "D://test.mp4"
}
MouseArea {
anchors.fill: parent
onClicked: video.play()
}
}
vlc メディア プレーヤーを使用したストリームのプッシュおよびプル
VLCメディアプレーヤーをダウンロード
公式ウェブサイトにアクセスしてダウンロードしてください
プッシュストリーム
メニュー -> メディア -> ストリーム。「追加」をクリックし、MP4 ビデオを追加し、「ストリーム」をクリックします。
「次へ」をクリックして
RTSP を選択し、「追加」をクリックします。
ポートはデフォルトであり、パスは自分で入力できます。これはデフォルトのクリック ストリーム
として保持できます。
現時点ではこのウィンドウを閉じないでください。
qmlで開く
- main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtAV 1.6
//修改后
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Video {
id: video
anchors.fill: parent //跟随父节点大小 全屏
source:"rtsp://127.0.0.1:port//xxx"
}
MouseArea {
anchors.fill: parent
onClicked: video.play()
}
}
その後、ビデオを再生できますが、時々停止したり、画面が真っ暗になったり、画像が非常に不鮮明になったりすることがあります。これはネットワークの問題である可能性があります。この問題はまだ解決されていません。
カメラのキャプチャ、RTSP ストリーミング、再生に vlc を使用する
現時点では、この問題は研究されていません。まず、カメラ キャプチャ、RTSP ストリーミング、および再生に vlc を使用する方法を参照してください。