Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头/网络摄像头/转发推流/视频分发)

news2024/12/25 13:55:54

一、功能特点

1.1 文件推流

  1. 指定网卡和监听端口,接收网络请求推送音视频等各种文件。
  2. 实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。
  3. 可指定多种模式,0-直接播放、1-下载播放。
  4. 实时打印显示各种收发请求和应答数据。
  5. 每个文件对应MD5加密的唯一标识符,用于请求地址后缀区分访问哪个文件。
  6. 支持各种浏览器(谷歌chromium/微软edge/火狐firefox等)、各种播放器(vlc/mpv/ffplay/potplayer/mpchc等)打开请求。
  7. 播放过程中可以任意切换播放进度,支持倍速播放。
  8. 需要推流的文件名称历史记录自动存储和打开加载应用。
  9. 切换文件获取访问地址,自动拷贝地址到剪切板方便直接粘贴测试使用。
  10. 极低CPU占用,128路1080P同时推流不到1%CPU占用,异步发送数据机制。
  11. 纯QTcpSocket通信,不依赖流媒体服务程序,核心源码不到500行,注释详细,功能完整。
  12. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。

1.2 网络推流

  1. 支持各种本地视频文件和网络视频文件。
  2. 支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。
  3. 支持将本地摄像头设备推流,可指定分辨率和帧率等。
  4. 支持将本地桌面推流,可指定屏幕区域和帧率等。
  5. 自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。
  6. 可实时切换预览视频文件。
  7. 推流的清晰度和质量可调。
  8. 可动态添加文件、目录、地址。
  9. 视频文件自动循环推流,如果视频源是视频流,在掉线后会自动重连。
  10. 网络视频流自动重连,重连成功自动继续推流。
  11. 网络视频流实时性极高,延迟极低,延迟时间大概在100ms左右。
  12. 推流后除了用rtmp地址访问以外,还支持直接hls/webrtc访问,可以直接浏览器打开看实时画面。
  13. 支持Qt4/Qt5/Qt6任意版本,支持任意系统(windows/linux/macos/android/嵌入式linux等)。

二、使用步骤

2.1 文件推流

  1. 选择或者填写要监听的网卡IP地址,填写好监听端口,建议默认即可。
  2. 单击添加文件或者目录,选择要加入推流的音视频文件,添加成功以后会自动罗列在表格中。
  3. 单击启动服务按钮,会变成停止服务字样表示启动服务成功。
  4. 从表格中选中一行,会自动将该音视频文件的播放地址填写到右下角,同时也会自动拷贝到剪切板。
  5. 将地址粘贴到浏览器地址栏回车即可查看播放音视频,可以任意切换播放进度。
  6. 将地址用vlc或者其他播放器打开即可查看播放音视频,可以任意切换播放进度。
  7. 文件推流服务支持多个同时请求,表格中会显示每个文件对应正在请求中的数量,右下角也有统计总请求数量,还有统计不同IP地址的请求总数。
  8. 单击停止服务按钮会停止所有服务,由于存在缓存的关系,停止以后缓存中的视频还可以继续播放,过一段时间就不能播放。
  9. 在启动服务后支持动态添加文件、移除文件、清空文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2 网络推流

  1. 选择或者填写推流的前缀地址,建议默认即可。
  2. 单击添加文件或者目录,选择要加入推流的音视频文件,添加成功以后会自动罗列在表格中。
  3. 单击添加地址,可以从下拉框中选择或者填写,下拉选项中是一些格式模板,比如本地摄像头、本地桌面、电视台、网络摄像机等。
  4. 单击启动服务按钮,会变成停止服务字样表示启动服务成功。
  5. 在启动服务后支持动态添加地址、移除地址、清空地址。如果处于启动服务中,添加后会立即推流。
  6. 从表格中选中一行,会自动将播放地址填写到右下角,同时也会自动拷贝到剪切板。
  7. 一次推流可以分多种不同的地址访问,右下角总共有三种地址,第一种是rtmp开头的视频流地址,可以用各种播放器打开,第二种是hls(m3u8)格式的地址,一般用于网页浏览器显示,第三种是webrtc格式的地址,一般用于浏览器或者部分支持该格式的播放器。
  8. 将地址粘贴到浏览器地址栏回车即可查看视频流,地址也可以用播放器打开。
  9. 单击停止服务按钮会停止所有服务,在启动服务后支持动态添加文件、移除文件、清空文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、体验地址

  1. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 名称:bin_video_push
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun
  4. 个人主页:https://blog.csdn.net/feiyangqingyun
  5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

四、各种命令

  1. rtmp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f flv rtmp://192.168.0.110:6908/stream
  2. rtsp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f rtsp rtsp://192.168.0.110:6907/stream
  3. 远程推流 ffmpeg -re -stream_loop -1 -i f:/mp4/11.mp4 -c copy -f flv rtmp://47.114.127.78:6908/stream
  4. 网络设备 ffmpeg -i rtsp://admin:Admin123456@192.168.0.64:554/Streaming/Channels/101 -vcodec copy -acodec copy -f flv rtmp://192.168.0.110:6908/stream
  5. 实时桌面 ffmpeg -f gdigrab -r 30 -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp -g 5 -an rtsp://192.168.0.110:6907/stream
  6. 本地设备 ffmpeg -f dshow -i video=“USB Video Device”:audio=“麦克风 (USB Audio Device)” -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://192.168.0.110:6907/stream
  7. 播放设备 ffplay -f dshow video=“USB Video Device”:audio=“麦克风 (USB Audio Device)”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vivado布线和生成bit参数设置

本文主要介绍Vivado布线参数设置,基本设置方式和vivado综合参数设置基本一致,将详细说明如何设置布线参数以优化FPGA设计的性能,以及如何设置Vivado压缩BIT文件。 一、Vivado布线概述 Vivado布线是在FPGA设计中实现物理布局的关键步骤之一。…

C语言-字符串

sizeof和strlen 的区别: 区别1: 1.sizeof计算整个数组大小, 2.strlen 计算有效的数组大小 新建字符数组”hello“ char cdata[128]"hello"; printf("sizeof--cdata的长度:%d\n",sizeof(cdata)); pri…

Hive窗口函数全解

在SQL中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的。但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这…

零基础抽象MYSQL

既然完成了下载安装和密码登录,那么打开你的MYSQL MYSQL中最简单的 创建数据库、查看数据库、选择数据库、删除数据库 先从重要的创建数据库 直接输入create database data_a ; 注意了要打分号 ; 如果查看你创建的数据库 show databases &#xff…

使用 Flask 快速构建 基于langchain 和 chatGPT的 PDF摘要总结

简介 这里不对 langchain 和 chatGPT 进行介绍,仅对实现过程进行整理 环境 Python >3.8 Flask2.2.3 Jinja23.1.2 langchain0.0.143 openai0.27.4 实现 总结功能 使用 langchain 和 openai 接口实现总结功能 实现逻辑:通过text_splitter 将pdf 分…

LeetCode 501: 二叉搜索树中的众数 | C++语言版

LeetCode 501. 二叉搜索树中的众数 | C语言版 LeetCode 501. 二叉搜索树中的众数题目描述解题思路思路一:使用迭代代码实现运行结果参考文章: 思路二:减少遍历节点数代码实现运行结果参考文章: LeetCode 501. 二叉搜索树中的众数 …

Edius抠像过程(实践笔记)

最近的工作有点烦,一个月左右的时间全是在帮别人做视频的过程(在我所在的行业里,就是打杂) 因为自己不专业,所有的操作都是现学现用,前几个视频还好说,随便剪剪,就是看他们本人录的…

水务行业怎么运用智能配电

摘要:在构建智慧水务和“双碳”时代背景下,智能配电系统在水务行业中发挥日益突出的重要作用。本文首先回顾了智能配电系统在水务行业的发展历程,并对其应用现状进行了分析,进而展望了智能配电系统在水务行业的发展趋势。 关键词&…

走进小程序【五】微信小程序架构之【逻辑层】详解

文章目录 🌟前言🌟小程序架构🌟逻辑层 App Service🌟注册小程序🌟注册页面🌟使用 Page 构造器注册页面🌟在页面中使用 behaviors🌟使用 Component 构造器构造页面 🌟页面…

信创实力认证,创邻科技荣获“2023爱分析·信创产品及服务创新奖”

近日,数字化市场研究咨询机构爱分析正式发布“2023爱分析信创产品及服务创新奖”评选结果。经过申报、初评、调研、终评多轮角逐,创邻科技凭借自研产品Galaxybase国产原生高性能图平台以及国产化替代方案成功获评“2023爱分析信创产品及服务创新奖”。 据…

KDZD606绝缘服试验装置

一、产品概述 KDZD606绝缘服试验装置是按照国家电力公司关于颁发DL/T 976-2017《带电作业用工具、装置和设备预防性试验规程》的要求的基础上研制而成,本产品各项指标均符合国标的要求。可以按DL/T 976-2017《带电作业用工具、装置和设备预防性试验规程》要求对绝缘…

Nginx的漏洞浮现

本文参考https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/ 环境搭建均是采用docker 拉取环境请移步到参考。 一、Nginx的配置错误案列 1. CRLF注入漏洞 配置错误文件error1.conf rootubuntu-virtual-machine:/vulhub/vulhub-master/nginx/insecure-confi…

「解析」Pytorch 自动计算 batchsize

日志是一个十分必要的操作,有助于后期分析实验结果,特别是在多台不同环境下训练,为了区分,还是十分有必要记录相关平台信息的,比如 hostname,Python版本信息,Pytorch版本信息等! im…

SpringSecurity定义多个过滤器链

在Spring Security中可以定义多个过滤器链,一个WebSerityConfigurerAdapter的实例就可以配置一个过滤器链,我们只需要配置多个WebSerityConfigurerAdapter的实例即可 可以看到,当请求到达 FilterChainProxy 之后,FilterChainProx…

什么是 CDN

CDN 是一种用来分发内容的网络拓扑结构,在彻底搞明白它之前,我们需要先来理解另外两个名词。 1、节点 用户使用CDN网络前,CDN提供商会在全国/全球部署多个节点。这里的节点可以看做机房,或者服务器集群,专业的称呼是…

瑞吉外卖项目——前后端分离

前后端分离开发 介绍 前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责,这样可以做到分工明确、各司其职,提高开发效率,前后端代码并行开…

Compose 学习总结

ompose发布正式版已经有一段时间了。趁最近比较闲,抓紧学习一波。 学习过程中,主要以实战项目中常用技术为目标。下面是项目地址,会长期更新,希望能给正在学习Compose的小伙伴一点参考。同时您有什么好的建议,也可以提…

嗖的一下!3分钟用ChatGPT生成海南旅游思维导图!

大家好,我是菜鸟哥! 五一长假即将来临,很多小伙伴都要准备出去玩了!旅游肯定要做攻略啊,比如热门的景点海南三亚,北京,上海,成都这些都是打卡的网红景点!小编比较喜欢去海…

IIC协议相关

一.IIC协议初识 IIC(集成电路总线),半双工同步通信方式 *特点 1.简单性和有效性 由于接口直接在组件之上,因此IIC总线占用的空间特别小,减少了电路板的空间和芯片管脚的数量,降低了互联成本,总线的长度可高达25英尺…

Figma转Sketch的3种免费又快捷的方法!

Figma和Sketch是UI设计师常用的两款软件。Figma属于在线协作设计工具,而Sketch是一款本地应用程序。它们都有许多优点,深受许多设计师的喜爱。然而,在实际工作中,有时需要将这两种文件进行转换,例如将需要在Sketch中使…