连接到RTSP URL的客户端(VLC播放器或浏览器)应该接收什么格式?

时间:2018-04-15 08:08:35

标签: python opencv streaming rtsp

使用Python我尝试从USB摄像头上传OpenCV帧,并使用RTSP协议,实时流式传输以供任何客户端访问(Web浏览器rtsp:// ip:port或VLC播放器) 。经过几天的搜索,我仍然无法找到任何有用的东西,我也不知道如何做到这一点。

1)rtsp流应该接收的格式是什么?是图像还是字符串还是??? VLC播放器甚至采用什么格式?这是我的主要问题。

2)我在这里读到

http://www.informit.com/articles/article.aspx?p=169578&seqNum=3https://cardinalpeak.com/blog/the-many-ways-to-stream-video-using-rtp-and-rtsp/

您可以将TCP或UDP用于RTSP流,但我在这里使用UDP。这会在流式传输帧时引起任何问题吗?

我这里有一些代码可以让我从USB摄像头中捕捉帧

import cv2
import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5000

cap = cv2.VideoCapture(1)

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #udp

while 1:
    ret, frame = cap.read()

    #========= What should I do here?
    FORMAT_OF_FRAME = What is the format that I should change the frame into?

    sock.sendto(FORMAT_OF_FRAME,(UDP_IP, UDP_PORT))

cap.release()

之后,我应该能够通过使用VLC播放器和运行

来查看帧

RTSP://127.0.0.1:5000

或打开具有相同网址的网络浏览器

1 个答案:

答案 0 :(得分:0)

您不能简单地打开套接字,RTSP是一个完全正常工作的协议,如果您想使用原始套接字,您应该实现该协议。你真的需要一个python程序吗? ffmpeg(参见streaming guide)和gstreamer都提供了命令行工具,可以通过rtsp从输入设备流式传输。