算能 BM1688 低延迟推流:Qt+WebSocket 直出 H5/HDMI

目录

一、项目核心背景与痛点

二、明确技术需求

三、环境搭建步骤

[3.1 卸载与重装cmake3.14](#3.1 卸载与重装cmake3.14)

[3.2 websocket网络推流](#3.2 websocket网络推流)

[3.3 安装sdk](#3.3 安装sdk)

[3.4 交叉编译环境搭建](#3.4 交叉编译环境搭建)

[3.5 打包](#3.5 打包)

[3.6 编译](#3.6 编译)

四、参考文章


一、项目核心背景与痛点

  1. 开发基础 :使用 Qt 开发低延迟视频流 Demo
  2. 当前问题
    • RTSP 流需要封装 + 经过 RTSP 流媒体服务器转发
    • 导致延迟高、卡顿、掉帧
    • 确认:掉帧 / 延迟不是 Qt Demo 本身问题 ,是推流链路 / 网络架构问题
  1. 展示需求
    • 本地:直接推送到 HDMI 显示器不走网络,无延迟
    • 后期:必须走网络推流,但传统方案依然会延迟卡顿

二、明确技术需求

  1. 需要现成可直接测试的 Web 低延迟推流方案
  2. 基于 Qt 编译
  3. 优先替代 RTSP,解决延迟问题

三、环境搭建步骤

3.1 卸载与重装cmake3.14

ubuntu中安装cmake_ubuntu安装cmake-CSDN博客

如果电脑有cmake3.10,先操作上面博客后在卸载3.10

1.卸载旧版本的cmake

sudo apt-get remove cmake

2.删除旧版本的CMake 3.10的配置文件

sudo rm -rf /usr/local/share/cmake-3.10

3.更新系统的缓存

hash -r

4.cmake --version

5.如果你仍然没看到自己新安装的版本,可以尝试手动指定CMake 3.14的路径

/home/vboxuser/homework/cmake-3.14.0/build/cmake --version

3.2 websocket网络推流

环境准备:ubuntu20.04(lsb_release -a查看ubuntu版本信息)

3.3 安装sdk

安装SDK --- BM1688_CV186AH_SOPHONSDK (HEAD detached at 6ec0158) 文档 (sophgo.com)

3.4 交叉编译环境搭建

复制代码
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

验证交叉编译工具链是否成功

复制代码
which aarch64-linux-gnu-g++
2# 终端输出内容
3# /usr/bin/aarch64-linux-gnu-g++

3.5 打包

将程序所依赖的头文件和库文件打包至sophon_sdk_soc目录中

这里使用官网直接给配置好的,我的是1688的Soc模式,需要交叉编译

sophon-stream/docs/HowToMake.md at master · sophgo/sophon-stream · GitHub

3.6 编译

复制代码
mkdir build
cd build
cmake ../ -DTARGET_ARCH=soc -DSOPHON_SDK_SOC=/home/vboxuser/homework/suan_neng/sophon-stream-master/sophon_sdk_soc -DQTPATH=/path/to/qt -DOPENSSL_PATH=/path/to/openssl
make -j4

四、参考文章

Python读视频流发送给前端H5呈现-websocket实现方法_h5 websocket python-CSDN博客

相关推荐
lhbian2 小时前
C++、C与易语言:编程语言对比解析
c语言·开发语言·c++
꧁细听勿语情꧂2 小时前
数据结构概念和算法、时间复杂度、空间复杂度引入
c语言·开发语言·数据结构·算法
kaikaile19952 小时前
复杂网络基本模型的 MATLAB 实现
网络·matlab
yongui478342 小时前
STM32 三相电机FOC驱动方案(三电阻单电阻双模式)
stm32·单片机·嵌入式硬件
尚文网络2 小时前
isis协议
网络·h3c
0xDevNull2 小时前
Java 深度解析:for 循环 vs Stream.forEach 及性能优化指南
java·开发语言·性能优化
被摘下的星星2 小时前
数据交换方式
网络
研☆香2 小时前
聊一聊如何分析js中的数据结构
开发语言·javascript·数据结构
-凌凌漆-2 小时前
【Qt】 QSerialPort::flush()介绍
开发语言·qt