EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流

参考:https://blog.csdn.net/N71FS1/article/details/130019563

一、EasyDarwin +ffmpeg

ffmpeg 推送音视频流到rtsp流服务器
EasyDarwin 作为rtsp流服务器 (下载:https://www.easydarwin.org/p/easydarwin.html)OBS 直播音视频录屏加推流到指定rtsp流服务器

1、EasyDarwin安装使用

下载后直接exe可以打开软件;其中ini文件是软件端口等信息,软件默认端口10086,账户秘密admin;rtsp端口10054
在这里插入图片描述
在这里插入图片描述
登录后台页面http://localhost:10086/
在这里插入图片描述

2、然后ffmpeg进行推流

#推送音频
ffmpeg -f dshow -i audio="麦克风阵列 (适用于数字麦克风的英特尔® 智音技术)" -acodec aac -preset:v ultrafas
t -tune:v zerolatency -f rtsp rtsp://127.0.0.1:10054/text#推送摄像头画面声音
ffmpeg -f dshow -i video="Integrated Camera":audio="麦克风阵列 (适用于数字麦克风的英特尔® 智音技术)" -vcodec libx264  -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://127.0.0.1:10054/text##推送实时电脑屏幕
ffmpeg -f dshow -i desktop -codec:v libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://localhost:10054/text
或
ffmpeg -f gdigrab -framerate 30 -i desktop -codec:v libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://localhost:10054/stream

然后vlc 或potplayer工具拉流查看
在这里插入图片描述
手机可以使用MXplayer查看:
在这里插入图片描述
在这里插入图片描述

二、OBS+obs-rtspserver服务器

参考:https://blog.csdn.net/yangyanglulu/article/details/131403696

1、OBS视频推理软件

https://obsproject.com/
在这里插入图片描述

2、obs-rtspserver

https://github.com/iamscottxu/obs-rtspserver/releases
直接下载exe直接安装,然后重启obs即可,可以在工具下面看到rtsp服务器

在这里插入图片描述
需要声音点击音轨,然后直接启动
在这里插入图片描述
直播流这里设置
在这里插入图片描述

然后既可以远程视频浏览器查看:
这里用的potplayer播放器

在这里插入图片描述
在这里插入图片描述
或者下载vlc工具擦好看:
https://get.videolan.org/vlc/3.0.20/win64/vlc-3.0.20-win64.exe
在这里插入图片描述
或者命令查看视频:

ffmpeg -rtsp_transport tcp -i "rtsp://admin:admin@localhost:554/live" -f sdl "SDL Video"

注意:
另外画面视频很多窗口叠加解决方法:

在这里插入图片描述

三、python读取rtsp流

1、opencv读取画面(读取不了声音)

import cv2# RTSP URL
rtsp_url = 'rtsp://localhost:554/live'# 创建视频捕获对象
cap = cv2.VideoCapture(rtsp_url)
# 设置解码器的四字符代码为 H264
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'H264'))# 检查视频捕获对象是否成功打开
if not cap.isOpened():print("无法打开 RTSP 视频流")exit()# 循环读取和显示视频帧
while True:# 从视频捕获对象中读取一帧ret, frame = cap.read()# 检查是否成功读取到帧if not ret:print("无法读取帧")break# 在窗口中显示帧cv2.imshow('RTSP Video Stream', frame)# 按下 'q' 键退出循环if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放视频捕获对象和窗口
cap.release()
cv2.destroyAllWindows()

2、ffmpeg+pyaudio 读取音频进行播放

查看音视频基础信息

ffmpeg -i rtsp://localhost:554/live

在这里插入图片描述

注意采样率这些参数

import subprocess
import pyaudiourl = "rtsp://admin:admin@localhost:554/live"
ffmpeg_cmd = ["ffmpeg","-i", url,"-f", "s16le","-acodec", "pcm_s16le","-ar", "16000","-ac", "1","-"
]# 创建 FFmpeg 进程
process = subprocess.Popen(ffmpeg_cmd,stdout=subprocess.PIPE,stderr=subprocess.DEVNULL,bufsize=1600
)# 创建 PyAudio 音频流
audio_stream = pyaudio.PyAudio().open(rate=16000,channels=1,format=pyaudio.paInt16,output=True
)# 循环读取和播放音频数据
while True:# 从 FFmpeg 进程中读取音频数据audio_data = process.stdout.read(1600)# 检查是否读取到数据if not audio_data:break# 播放音频数据audio_stream.write(audio_data)# 关闭音频流和 FFmpeg 进程
audio_stream.stop_stream()
audio_stream.close()
process.terminate()

import subprocessdef save_rtsp_audio(rtsp_url, output_file):command = ['ffmpeg','-i',rtsp_url,'-map','0:1','-vn','-c:a','copy',output_file]try:subprocess.call(command)print('Audio stream saved successfully.')except subprocess.CalledProcessError as e:print(f'Error executing ffmpeg command: {e.output}')except KeyboardInterrupt:print('Process interrupted by user.')# 使用示例
rtsp_url ="rtsp://localhost:554/live"
output_file = 'output.aac'
save_rtsp_audio(rtsp_url, output_file)

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

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

相关文章

分享:搭建企微知识库简单易学步骤

说起企微知识库,可能有些人还不太清楚,为什么现在很懂企业选择搭建企微知识库?其实,企微知识库就是一个装满了企业的各种知识、经验和资料的载体。目的是为了方便员工随时查找和学习、有助于知识的传承和共享、加强团队协作和沟通…

专题三_二分查找(2)

目录 35. 搜索插入位置 解析 题解 852. 山脉数组的峰顶索引 解析 题解 162. 寻找峰值 解析 题解 35. 搜索插入位置 35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 解析 题解 class Solution { public:int searchInsert(vector<int>& nums, int…

MS SQL Server STUFF 函数实战 统计记录行转为列显示

目录 范例运行环境 视图样本设计 数据统计要求 STUFF函数实现 小结 范例运行环境 操作系统&#xff1a; Windows Server 2019 DataCenter 数据库&#xff1a;Microsoft SQL Server 2016 视图样本设计 假设某一视图 [v_pj_rep1_lname_score] 可查询对某一被评价人的绩效…

重生奇迹mu召唤技能

1、召唤师与法师的共通技能&#xff1a;火球术、真空波、陨石、冰封。 2、摄魂咒&#xff1a;夺取敌人的体力来补充自己的体力。 3、链雷咒&#xff1a;雷系列的技能&#xff0c;给予敌人连锁3次的雷电攻击&#xff0c;如果目标附近没有其他目标&#xff0c;就会攻击第一个对…

手撕算法-有效的括号

描述 分析 使用栈&#xff0c;如果是左括号&#xff0c;入栈&#xff0c;如果是右括号&#xff0c;判断栈是否为空&#xff0c;不是空出栈并校验是否匹配&#xff0c;不匹配返回false。最后如果栈为空&#xff0c;返回true。 代码 class Solution {public boolean isValid(…

朵米3.5客服系统源码,附带系统搭建教程

朵米客服系统是一款全功能的客户服务解决方案&#xff0c;提供多渠道支持&#xff08;如在线聊天、邮件、电话等&#xff09;&#xff0c;帮助企业建立与客户的实时互动。该系统具有智能分流功能&#xff0c;可以快速将客户请求分配给适当的客服人员&#xff0c;提高工作效率。…

【网课必备】学浪视频下载到本地

学浪作为知识付费平台&#xff0c;拥有大量的课程&#xff0c;所以很多人在学浪上购买自己的课程&#xff0c;但是学浪官方没有提供下载选项&#xff0c;只可以在学浪客户端软件观看&#xff0c;并不是很方便 于是为了解决这一个需求&#xff0c;小白老师s开发了学浪视频下载到…

Three.js真实相机模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机&#xff1f; 在这篇博文中&#xff0c;我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始&#xff0c;然后添加真实的镜头畸变。 具体来说&#xff0c;我们将仔细研究 OpenCV 的两个失真模…

C语言第三十八弹---编译和链接

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 编译和链接 1、翻译环境和运行环境 2、翻译环境 2.1、预处理&#xff08;预编译&#xff09; 2.2、编译 2.2.1、词法分析 2.2.2、语法分析 2.2.3、语义分…

共享WiFi项目加盟怎么做?碰到这些服务商要留意!

自2014年共享WiFi项目被微火研发出来让大众都可以参与其中&#xff0c;市场上不少合作伙伴都发现了该项目市场缺口大、推广难度低及落地性强等优势&#xff0c;想要加盟共享wifi项目。从目前的情况来看&#xff0c;不少代理商虽然对这个项目本身有一定的了解&#xff0c;但是靠…

扫地机器人(蓝桥杯)

文章目录 扫地机器人题目描述解题思路二分贪心 扫地机器人 题目描述 小明公司的办公区有一条长长的走廊&#xff0c;由 N 个方格区域组成&#xff0c;如下图所 示。 走廊内部署了 K 台扫地机器人&#xff0c;其中第 i 台在第 Ai 个方格区域中。已知扫地机器人每分钟可以移动…

Transformer模型-用jupyter演示逐步计算attention

学习transformer模型-用jupyter演示如何计算attention&#xff0c;不含multi-head attention&#xff0c;但包括权重矩阵W。 input embedding&#xff1a;文本嵌入 每个字符用长度为5的向量表示&#xff1a; 注意力公式&#xff1a; 1&#xff0c;准备Q K V&#xff1a; 先 生…

漏洞扫描神器:Netsparker 保姆级教程(附链接)

一、介绍 Netsparker是一款专业的网络安全扫描工具&#xff0c;用于自动化地发现和修复网站和Web应用程序中的安全漏洞。它提供了全面的安全测试&#xff0c;包括SQL注入、跨站脚本攻击、远程文件包含、命令注入等常见的安全漏洞。 Netsparker具有以下特点&#xff1a; 自动化…

AI预测福彩3D第24弹【2024年4月2日预测--第6套算法开始计算第1次测试】

今天&#xff0c;咱们进行第6套算法测试&#xff0c;本套算法将结合012路直选共27种组合&#xff0c;同时考虑了对012路的和值进行统计分析。今天为第1次测试&#xff0c;好了&#xff0c;废话不多说了。直接上结果~ 仍旧是分为两个方案&#xff0c;1大1小。 经过人工神经网络计…

Neo4j数据库(一)

目录 新建节点 Neo4j CQL创建具有属性的节点 多个标签到节点 单个标签到关系 MATCH命令 RETURN命令&#xff1a; Neo4j CQL - MATCH & RETURN匹配和返回 总结&#xff1a;本文介绍了Neo4j的CREATE&#xff0c;MATCH&#xff0c;RETURN的基本操作 新建节点 Neo4j创建一…

护眼台灯怎么选看哪些指标?护眼灯十大品牌推荐

在追求高效工作与学习的同时&#xff0c;如何保护视力健康&#xff0c;避免长时间用眼带来的疲劳与伤害&#xff0c;已成为现代人关注的焦点。护眼台灯作为提升用眼环境的重要工具&#xff0c;其选择显得尤为关键。那么&#xff0c;面对市面上琳琅满目的护眼台灯产品&#xff0…

小白的第一次sql注入实战

前言 当时最初接触安全的时候拿下的第一个shell&#xff0c;还是比较兴奋的&#xff0c;忽略一下文章写的很水。 有id尝试sql注入 找这种sql注入的站用sql检索就行了&#xff0c;但是最好挂代理用谷歌搜索&#xff0c;百度的话搜sql注入的很多被别人打过了&#xff0c;导致链…

Rust 机器学习图形库 petgraph

一、介绍 Petgraph 是一个开源的图数据结构库&#xff0c;提供了非常丰富的图形类型和算法&#xff0c;并且支持将图形以 Graphviz 格式输出&#xff0c;还允许你为图的节点和边赋予任意类型的数据&#xff0c;从而能够灵活地处理和表示复杂的数据关系。 Petgraph 支持边的方…

备战蓝桥杯---贪心刷题2

话不多说&#xff0c;直接看题&#xff1a; 首先我们大致分析一下&#xff0c;先排序一下&#xff0c;Kn&#xff0c;那就全部选。 当k<n时&#xff0c;k是偶数&#xff0c;那么结果一定非负&#xff0c;因为假如负数的个数有偶数个&#xff0c;那么我们成对选它&#xff0…

Reasoning on Graphs: Faithful and Interpretable Large Language Model Reasonin

摘要 大型语言模型(llm)在复杂任务中表现出令人印象深刻的推理能力。然而&#xff0c;他们在推理过程中缺乏最新的知识和经验幻觉&#xff0c;这可能导致不正确的推理过程&#xff0c;降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式捕获了大量的事实…