windows下python使用ffmpeg实现rtsp推流

 更新时间:2023年09月12日 14:46:44   作者:嘿,不许笑  
这篇文章主要为大家详细介绍了在windows环境下python如何使用ffmpeg实现rtsp推流,文中的示例代码讲解详细,有需要的小伙伴可以了解一下

rtsp推流

1、下载

rtsp 服务器下载网址:https://github.com/aler9/rtsp-simple-server/releases

windows环境下选择windows_amd64.zip文件下载

2、配置环境变量

照顾新手!额,算了,大家都是大佬~此处略过

3、启动

没啥说的,双击都行

命令行启动:rtsp-simple-server.exe(建议命令行启动)

运行以后就是长这个鬼样子的,我们要关注的就是tcp的端口号,ok,下一步

!呕吼,等等、等等,细心的朋友可能发现了,下面不是有个rtmp嘛~是的,恭喜你发现了新大陆!回头一点要自己试一下哦。

4、推流

如果想把本地文件推出去使用下面的命令即可,参数请自行调整食用。

推流命令:

ffmpeg -re -stream_loop -1 -i (你的文件名) -c copy -f rtsp rtsp://127.0.0.1:8554/video

简单对参数说明

  • -re  是以流的方式读取
  • -stream_loop -1   表示无限循环读取
  • -i  就是输入的文件
  • -f  格式化输出到哪里

当然我们还有另一种需求:

把拉过来的流,处理之后再推出去。

拉流-----处理-----推流这里和rtmp推流方法基本一致

需要把command中

-f 后 ‘flv’ 改为 ’rtsp’

rtmpurl 改为 rtsp 推流地址即可

#此处换为你自己的地址
rtsp_url = 'rtsp://127.0.0.1:8554/video'
cap = cv2.VideoCapture(“拉流地址”)
# Get video information
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
command = ['ffmpeg',
               '-y',
               '-f', 'rawvideo',
               '-vcodec', 'rawvideo',
               '-pix_fmt', 'bgr24',
               '-s', "{}x{}".format(width, height),
               '-r', str(fps),
               '-i', '-',
               '-c:v', 'libx264',
               '-pix_fmt', 'yuv420p',
               '-preset', 'ultrafast',
               '-f', 'rtsp',
               rtsp_url]
p = sp.Popen(command, stdin=sp.PIPE)
while (cap.isOpened()):
    ret, frame = cap.read()
    if not ret:
        print("Opening camera is failed")
        break
    frame = 你的图像处理的函数(frame)
    p.stdin.write(frame.tostring())

5、测试

来来来,刚刚学到的拉流又能用到了~趁热打铁、再来一次

import cv2
cap = cv2.VideoCapture("rtsp://127.0.0.1:8554/video")
while (cap.isOpened()):
    ret, frame = cap.read()
    if not ret:
        print("Opening camera is failed")
        break
    cv2.imshow('起个名字',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
            break
cap.release()
cv2.destroyAllWindows()

当然,如果这几行代码你也不愿意写的话~我只能教你一点别的办法了

VLC media player

下载地址:https://www.videolan.org/vlc/index.html

运行之后选择媒体----网络串流----网络----填写地址(刚刚rtsp推流的地址)----选择播放

(这里有个简单的方法,打开vlc之后直接把网址 ctrl+v 粘贴 点确定就可以了)

迅雷影音 新手推荐如果只是想看能不能推流,用这个试一下吧,对新手比较友好,有迅雷的直接使用就行,不需要再下载安装软件了,但是用起来确实不如vlc
下载地址:算了自己找吧~

食用方法:打开之后在中间的 框框中输入rtsp推流的地址就ok了

qq影音使用同迅雷影音…总有一款适合你

ok 大功告成~

到此这篇关于windows下python使用ffmpeg实现rtsp推流的文章就介绍到这了,更多相关python ffmpeg rtsp推流内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python制作动态排名图的实现代码

    利用Python制作动态排名图的实现代码

    这篇文章主要介绍了利用Python制作动态排名图的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • python 写一个水果忍者游戏

    python 写一个水果忍者游戏

    这篇文章主要介绍了python 如何写一个水果忍者游戏,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python可视化学习之seaborn绘制线型回归曲线

    Python可视化学习之seaborn绘制线型回归曲线

    这篇文章主要为大家介绍了如何利用seaborn绘制变量之间线型回归(linear regression)曲线,2文中涉及如下两个重要函数:seaborn.regplot和seaborn.lmplot,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-02-02
  • Python中输入和输出(打印)数据实例方法

    Python中输入和输出(打印)数据实例方法

    在本篇文章里小编给大家整理的是关于Python中输入和输出(打印)数据实例方法以及相关知识点,有需要的朋友们参考下。
    2019-10-10
  • Python实现的彩票机选器实例

    Python实现的彩票机选器实例

    这篇文章主要介绍了Python实现彩票机选器的方法,可以模拟彩票号码的随机生成功能,需要的朋友可以参考下
    2015-06-06
  • OpenCV立体图像深度图Depth Map基础

    OpenCV立体图像深度图Depth Map基础

    这篇文章主要为大家介绍了OpenCV立体图像深度图Depth Map基础详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 详解Django ORM引发的数据库N+1性能问题

    详解Django ORM引发的数据库N+1性能问题

    这篇文章主要介绍了详解Django ORM引发的数据库N+1性能问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解

    这篇文章主要介绍了Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容方法详解,需要的朋友可以参考下
    2020-02-02
  • Python实现层次分析法及自调节层次分析法的示例

    Python实现层次分析法及自调节层次分析法的示例

    这篇文章主要介绍了Python实现层次分析法及自调节层次分析法的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python实现基于SVM手写数字识别功能

    python实现基于SVM手写数字识别功能

    这篇文章主要为大家详细介绍了python实现基于SVM手写数字识别功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论