微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python 设置 RTSP 流媒体服务器

如何解决使用 Python 设置 RTSP 流媒体服务器

我有一个项目需要在 Python 中使用 OpenCV 执行分析并使用 .NET WPF 应用程序作为前端。

我已经准备好了它的分析部分和 .NET 应用程序。我遇到的问题是将处理过的视频流从 Python 传递到 .NET 应用程序。

我正在探索的解决方案之一是设置一个 RTSP 流媒体服务器,让前端应用充当客户端,读取流媒体数据。

这是我目前正在使用的代码,但我似乎无法通过流获得输出

如果有任何明显的错误,或者是否有更好的方法来为我的用例实施解决方案,请告诉我。任何帮助将不胜感激!

import cv2
import subprocess as sp
if __name__ == "__main__":
    rtsp_server = 'rtsp://127.0.0.1:5000/stream1'
    
    #pull rtsp data,or your cv cap.  (input server)
    cap = cv2.VideoCapture("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov")
    
    
    sizeStr = str(int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))) + \
        'x' + str(int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
    fps = int(cap.get(cv2.CAP_PROP_FPS))
    
    command = ['ffmpeg','-re','-s',sizeStr,'-r',str(fps),# rtsp fps (from input server)
               '-i','-',# You can change ffmpeg parameter after this item.
               '-pix_fmt','yuv420p','30',# output fps
               '-g','50','-c:v','libx264','-b:v','2M','-bufsize','64M','-maxrate',"4M",'-preset','veryfast','-rtsp_transport','tcp','-segment_times','5','-f','rtsp',rtsp_server]

    process = sp.Popen(command,stdin=sp.PIPE,shell = True)

    while(cap.isOpened()):
        ret,frame = cap.read()
        ret2,frame2 = cv2.imencode('.png',frame)
        process.stdin.write(frame2.tobytes())'''

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。