zhuizhu 6 kuukautta sitten
vanhempi
säilyke
d0c7a7431d

+ 2 - 2
config/networkconfig.cpp

@@ -94,8 +94,8 @@ void NetworkConfig::initDefaults()
     
     // 流媒体配置 (默认使用RTMP协议)
     m_streamConfig.protocol = StreamProtocol::RTSP;
-    m_streamConfig.host = "106.55.186.74"; // 使用项目中的生产服务器
-    m_streamConfig.port = 8554;
+    m_streamConfig.host = "127.0.0.1"; // 使用项目中的生产服务器
+    m_streamConfig.port = 554;
     m_streamConfig.app = "stream";
     m_streamConfig.streamKey = "V1";
     

+ 1 - 1
config/networkconfig.h

@@ -88,7 +88,7 @@ public:
      */
     struct RecordConfig {
         QString outputDir;                    // 录制输出目录
-        int videoBitRate = 8000000;          // 视频比特率 (8Mbps)
+        int videoBitRate = 10000000;         // 视频比特率 (10Mbps) - 为高分辨率提供更好画质支持
         int videoFrameRate = 30;             // 视频帧率
         int videoQuality = 100;              // 视频质量
         int audioBitRate = 128000;           // 音频比特率 (128kbps)

+ 0 - 2
libs/Recorder/Recorder.pri

@@ -30,7 +30,6 @@ HEADERS += \
     $$PWD/muxer_define.h \
     $$PWD/muxer_ffmpeg.h \
     $$PWD/muxer_file.h \
-    $$PWD/performance_monitor.h \
     $$PWD/record_audio.h \
     $$PWD/record_audio_define.h \
     $$PWD/record_audio_dshow.h \
@@ -76,7 +75,6 @@ SOURCES += \
     $$PWD/log_helper.cpp \
     $$PWD/muxer_ffmpeg.cpp \
     $$PWD/muxer_file.cpp \
-    $$PWD/performance_monitor.cpp \
     $$PWD/record_audio.cpp \
     $$PWD/record_audio_dshow.cpp \
     $$PWD/record_audio_factory.cpp \

+ 3 - 42
libs/Recorder/export.cpp

@@ -16,7 +16,6 @@
 #include "error_define.h"
 #include "log_helper.h"
 #include "utils_string.h"
-#include "performance_monitor.h"
 
 #ifdef _WIN32
 #include "system_version.h"
@@ -61,10 +60,6 @@ public:
     // Expose underlying encoders for diagnostics
     encoder_video* get_video_encoder();
     encoder_aac*   get_audio_encoder();
-    
-    // 性能监控接口
-    std::string getPerformanceReport() const;
-    void resetPerformanceStats();
 
 private:
     void on_preview_yuv(const uint8_t *data, int size, int width, int height, int type);
@@ -79,7 +74,6 @@ private:
     record_desktop *_recorder_desktop;
 
     muxer_file *_muxer;
-    PerformanceMonitor *_perf_monitor;  // 性能监控器
 
     std::atomic_bool _inited;
     std::mutex _mutex;
@@ -99,7 +93,6 @@ recorder::recorder()
 
     _inited = false;
     _muxer = nullptr;
-    _perf_monitor = new PerformanceMonitor();  // 初始化性能监控器
 }
 
 recorder::~recorder()
@@ -115,9 +108,6 @@ recorder::~recorder()
 
     if (_recorder_speaker)
         delete _recorder_speaker;
-        
-    if (_perf_monitor)
-        delete _perf_monitor;  // 清理性能监控器
 }
 
 recorder *recorder::instance()
@@ -403,22 +393,6 @@ void recorder::get_valid_out_resolution(int src_width,
             scaled_vals[i]);
 }
 
-// 性能监控接口实现
-std::string recorder::getPerformanceReport() const
-{
-    if (_perf_monitor) {
-        return _perf_monitor->getPerformanceReport();
-    }
-    return "性能监控器未初始化";
-}
-
-void recorder::resetPerformanceStats()
-{
-    if (_perf_monitor) {
-        _perf_monitor->reset();
-    }
-}
-
 } // namespace am
 
 AMRECORDER_API const char *recorder_err2str(int error)
@@ -470,7 +444,7 @@ AMRECORDER_API int recorder_get_speakers(AMRECORDER_DEVICE **devices)
     *devices = new AMRECORDER_DEVICE[count];
 
     int index = 0;
-    for each (auto device in device_list) {
+    for (auto device : device_list) {
         al_info("audio input name:%s id:%s", device.name.c_str(), device.id.c_str());
 
         (*devices)[index].is_default = device.is_default;
@@ -496,7 +470,7 @@ AMRECORDER_API int recorder_get_mics(AMRECORDER_DEVICE **devices)
     *devices = new AMRECORDER_DEVICE[count];
 
     int index = 0;
-    for each (auto device in device_list) {
+    for (auto device : device_list) {
         al_info("audio output name:%s id:%s", device.name.c_str(), device.id.c_str());
 
         (*devices)[index].is_default = device.is_default;
@@ -525,7 +499,7 @@ AMRECORDER_API int recorder_get_vencoders(AMRECORDER_ENCODERS **encoders)
     ptr->id = am::EID_VIDEO_X264;
     sprintf_s(ptr->name, 260, am::utils_string::ascii_utf8("Soft.X264").c_str());
 
-    for each (auto hw_encoder in hw_encoders) {
+    for (auto hw_encoder : hw_encoders) {
         ptr++;
         ptr->id = hw_encoder.type;
         sprintf_s(ptr->name, 260, "%s", hw_encoder.name);
@@ -637,16 +611,3 @@ AMRECORDER_API void recorder_reset_audio_rb_dropped()
     if (!enc) return;
     enc->rb_reset_dropped();
 } // namespace am 结束
-
-// 导出性能监控API
-AMRECORDER_API const char* recorder_get_performance_report()
-{
-    static std::string report;
-    report = am::recorder::instance()->getPerformanceReport();
-    return report.c_str();
-}
-
-AMRECORDER_API void recorder_reset_performance_stats()
-{
-    am::recorder::instance()->resetPerformanceStats();
-}

+ 0 - 11
libs/Recorder/export.h

@@ -302,15 +302,4 @@ AMRECORDER_API int      recorder_get_audio_rb_max();
 AMRECORDER_API void     recorder_set_audio_rb_max(int max_frames);
 AMRECORDER_API void     recorder_reset_audio_rb_dropped();
 
-/**
-* Get performance monitoring report
-* @return Performance report string
-*/
-AMRECORDER_API const char* recorder_get_performance_report();
-
-/**
-* Reset performance statistics
-*/
-AMRECORDER_API void recorder_reset_performance_stats();
-
 #endif

+ 11 - 0
thememanager.cpp

@@ -83,6 +83,17 @@ QWK--WindowBar>QAbstractButton[system-button=true] {
     background-color: transparent;
 }
 
+QWK--WindowBar>QAbstractButton#settings-button {
+    qproperty-iconNormal: url(":/window-bar/more-line.svg");
+    qproperty-iconChecked: url(":/window-bar/more-line.svg");
+    qproperty-iconSize: 15px 15px;
+}
+
+QWK--WindowBar>QAbstractButton#settings-button:hover,
+QWK--WindowBar>QAbstractButton#settings-button:pressed {
+    background-color: @colorPrimaryBgHover;
+}
+
 QWK--WindowBar>QAbstractButton#pin-button {
     qproperty-iconNormal: url(":/window-bar/pin.svg");
     qproperty-iconChecked: url(":/window-bar/pin-fill.svg");

+ 3 - 2
widgets/framelessbase.cpp

@@ -156,12 +156,13 @@ void TMainWindow::installWindowAgent()
 
 #ifndef Q_OS_MAC
     // 创建一个“设置”按钮,放在标题文本区域的最右侧,使其位于置顶按钮的左侧
-    auto settingsButton = new QWK::WindowButton(windowBar);
+    auto settingsButton = new QWK::WindowButton();
     settingsButton->setObjectName(QStringLiteral("settings-button"));
     settingsButton->setProperty("system-button", true);
     settingsButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
     settingsButton->setIconNormal(QIcon(QStringLiteral(":/window-bar/more-line.svg")));
-    QObject::connect(settingsButton, &QAbstractButton::clicked, this, [this]() {
+    settingsButton->setMaximumWidth(35);
+    QObject::connect(settingsButton, &QAbstractButton::clicked, this, []() {
         static QPointer<ThemeSettingsWidget> s_settings;
         if (!s_settings) {
             s_settings = new ThemeSettingsWidget();

+ 5 - 5
widgets/recorderwidget.cpp

@@ -50,7 +50,7 @@ RecorderWidget::RecorderWidget(QWidget *parent)
     m_settings.liveUrl = NetworkConfig::instance().getStreamUrl();
     m_settings.liveName = "0198da41-cdb6-78e3-879d-2ea32d58f73f";
     m_settings.outputDir = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation).toStdString();
-    m_settings.videoBitRate = 8000000;
+    m_settings.videoBitRate = 10000000;  // 提高到10Mbps,为高分辨率提供更好的画质
     m_settings.videoFrameRate = 30;
     m_settings.videoQuality = 100;
     m_settings.audioBitRate = 128000;
@@ -362,9 +362,9 @@ bool RecorderWidget::startRecording()
         // 重置环形缓冲区丢帧计数
         recorder_reset_video_rb_dropped();
         recorder_reset_audio_rb_dropped();
-        // 限制环形缓冲区最大帧数(降低积压与延迟):视频2帧、音频3帧
+        // 平衡低延迟设置:视频2帧、音频2帧,确保稳定性
         recorder_set_video_rb_max(2);
-        recorder_set_audio_rb_max(3);
+        recorder_set_audio_rb_max(2);
         
         // 开始录制
         result = recorder_start();
@@ -481,9 +481,9 @@ bool RecorderWidget::startStreaming()
         // 重置环形缓冲区丢帧计数
         recorder_reset_video_rb_dropped();
         recorder_reset_audio_rb_dropped();
-        // 限制环形缓冲区最大帧数(降低积压与延迟):视频2帧、音频3帧
+        // 平衡低延迟设置:视频2帧、音频2帧,确保稳定性
         recorder_set_video_rb_max(2);
-        recorder_set_audio_rb_max(3);
+        recorder_set_audio_rb_max(2);
         
         // 开始推流
         result = recorder_start();