// #include "AVPlayer2/mainwindowa.h" #include #include #include #include #include #include #include #include #include #include #include #include "mainwindow.h" #include "thememanager.h" #include "themesettingswidget.h" #include "tlogger.h" #include "ui/av_recorder.h" namespace avrecorder::video { void InitWinRTCapture(); } #undef ERROR // Qt输出(用于兼容现有Qt日志系统) namespace TC { class QtOutput : public LogOutput { public: void write(LogLevel level, const std::string &message) override; }; void QtOutput::write(LogLevel level, const std::string &message) { QString qmsg = QString::fromUtf8(message.c_str()); switch (level) { case LogLevel::DEBUG: qDebug() << qmsg; break; case LogLevel::INFO: qInfo() << qmsg; break; case LogLevel::WARNING: qWarning() << qmsg; break; case LogLevel::ERROR: qCritical() << qmsg; break; } } } // namespace TC int main(int argc, char *argv[]) { // "player.controller.ReadThread=false\n" QLoggingCategory::setFilterRules(QStringLiteral("player.controller.AudioPlayThread=false\n" "player.controller.AudioDecodeThread=false\n")); // QLoggingCategory::setFilterRules("*.debug=false\n" // "*.info=false\n" // "*.warning=false\n" // "*.critical=false\n" // "player.controller.*.debug=true\n" // "player.controller.*.info=true\n"); // 安装日志处理器 //qInstallMessageHandler(myMessageHandler); // std::freopen(nullptr, "w", stdout); setvbuf(stdout, nullptr, _IONBF, 0); #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) QGuiApplication::setHighDpiScaleFactorRoundingPolicy( Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); #endif #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); #endif QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); QApplication a(argc, argv); qRegisterMetaType("AVFrame*"); ThemeManager::instance().setThemeMode(ThemeManager::Light); // 注册Room 相关的类型 方便 序列化 void initRoomType(); initRoomType(); // 初始化wgc avrecorder::video::InitWinRTCapture(); /* docker run -itd --name zlmediakit --restart=always -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp -v /data/zlmediakit/media/bin:/opt/media/bin -v /data/zlmediakit/media/conf:/opt/media/conf zlmediakit/zlmediakit:master */ MainWindow w; w.show(); // PlayWidget playWidget; // playWidget.resize(960, 540); // playWidget.show(); // for (int var = 0; var < 20; ++var) { // playWidget.startToPlay("C:/Users/zhuizhu/Videos/2.mp4"); // } // AvRecorder avRecorder; // avRecorder.show(); // ThemeSettingsWidget ThemeSettingsWidget; // ThemeSettingsWidget.show(); // PlayerWindow w; // w.resize(960, 540); // w.show(); // MainWindowA aa; // aa.show(); // // 这里填你的流地址 // // w.startPlay("http://vd3.bdstatic.com/mda-jennyc5ci1ugrxzi/mda-jennyc5ci1ugrxzi.mp4"); // w.open("C:/Users/zhuizhu/Videos/1.mp4"); // // w.startPlay("rtmp://192.168.3.76:1935/stream/V1/stream"); int ret = a.exec(); return ret; }