使用 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 (将#修改为@)