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.hqwc.cn/news/586085.html

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

相关文章

QUndoCommand的使用

目录 引言基本实现主要组成命令(QUndoCommand)命令栈(QUndoStack) 优化技巧组合命令合并命令 完整代码 引言 实现撤销重做(Undo/Redo)是编辑器的必备功能,诸如文本编辑器、电子表格、图像编辑器…

2023年移动游戏逆势增长,原来消息推送是这么玩的!

Unity公布了2024游戏报告,2023年全球移动游戏DAU中位数对比前两年再度提升,证明了移动游戏仍在增长;全球移动玩家的首日留存率和7日留存率中位数分别下滑1%和0.1%。这两条意味着虽然游戏玩家在增多,但是怎么让他们始终保持兴趣在变…

电脑内存不够用了怎么办?!如何给电脑加速?

大家好呀,在教大家如何给系统清理增加内存空间之前,我们要理清两个概念:系统的内存和储存是两个不同的硬件,用英文说,内存是RAM、储存是ROM;分别对应着内存条和机械硬盘或固态硬盘这两种硬件设备。 我们可以…

怎么倒放视频教程?3个简单易行方法分享

怎么倒放视频教程?视频倒放是一种创意性的视频编辑方式,通过倒序播放视频内容,可以为观众带来全新的视觉体验。无论是为了制作搞笑视频,还是为了创作具有艺术感的短片,倒放视频都是一个非常实用的技巧。同时&#xff0…

【C语言】C语言实现猜单词小游戏(源码+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

用于HUD平视显示器的控制芯片:S2D13V40

一款利用汽车抬头显示技术用于HUD平视显示器的控制芯片:S2D13V40。HUD的全称是Head Up Display,即平视显示器,以前应用于军用飞机上,旨在降低飞行员需要低头查看仪表的频率。起初,HUD通过光学原理,将驾驶相关的信息投射…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(5)

PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 初寒调色案例及练习图 等文件 https://www.alipan.…

4.机器学习-十大算法之一线性回归算法(LinearRegression)案例讲解

机器学习-十大算法之一线性回归算法案例讲解 一摘要二个人简介三什么是线性回归四LinearRegression使用方法五糖尿病数据线性回归预测1.数据说明2.导包3.导入数据4.脱敏处理5.抽取训练数据和预测数据6.创建模型7.预测8.线性回归评估指标9.研究每个特征和标记结果之间的关系.来分…

YOLOv9改进策略 :主干优化 | 无需TokenMixer也能达成SOTA性能的极简ViT架构 | CVPR2023 RIFormer

💡💡💡本文改进内容: token mixer被验证能够大幅度提升性能,但典型的token mixer为自注意力机制,推理耗时长,计算代价大,而RIFormers是无需TokenMixer也能达成SOTA性能的极简ViT架构 ,在保证性能的同时足够轻量化。 💡💡💡RIFormerBlock引入到YOLOv9,多个数…

GIt的原理和使用(五):模拟多人协作的两种情况

目录 多人协作 多人协作一 准备工作 协作开发 多人协作二 准备工作 额外场景 申请单合并分支 更推荐写法 远程分支删除后,本地git branch -a依然能看到的解决办法 多人协作 多人协作一 目标:在远程master分支下的file.txt文件新增代码“aaa”…

基础框架SSM-----------spring篇

spring系统架构 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)!!!!!!!! IOC(Inversion of Control)控制反转------解耦合 如图使我们所熟悉的基本逻辑,在业务层中调用Dao层的对象,但是当我们Dao层进行修改的时候…

springcloud基本使用二(远程调用)

创建两个springboot maven子项目 子项目名称分别为order-server和user-server 配置user-server子项目: 所需依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependenc…