问题描述
我有一个项目需要在 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 (将#修改为@)