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

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第1张

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第2张

登录后台页面http://localhost:10086/

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第3张

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工具拉流查看

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第4张

手机可以使用MXplayer查看:

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第5张

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第6张

或者ffplay 命令行工具进行播放

 ffplay rtsp://127.0.0.1:10054/kkk

二、OBS+obs-rtspserver服务器

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

1、OBS视频推理软件

https://obsproject.com/

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第7张

2、obs-rtspserver

https://github.com/iamscottxu/obs-rtspserver/releases

直接下载exe直接安装,然后重启obs即可,可以在工具下面看到rtsp服务

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第8张

需要声音点击音轨,然后直接启动

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第9张

直播流这里设置

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第10张

然后既可以远程视频浏览器查看:

这里用的potplayer播放器

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第11张

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第12张

或者下载vlc工具擦好看:

https://get.videolan.org/vlc/3.0.20/win64/vlc-3.0.20-win64.exe

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第13张

或者命令查看视频:

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

注意:

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

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第14张

三、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

EasyDarwin 、ffmpeg 音视频推流拉流;OBS视频推理软件、obs-rtspserver服务器;python读取rtsp流,在这里插入图片描述,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,服务,服务器,安装,第15张

注意采样率这些参数

import subprocess
import pyaudio
url = "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 subprocess
def 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)

文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:表情:
评论列表 (暂无评论,0人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码