RTSP over HTTP
The key of RTSP over HTTP is to
allow RTSP packets to communicate via HTTP port.
We know that the standard port of RTSP is 554, but due
to various security policy configurations such as
firewalls, there may be restrictions when the client
accesses port 554, which prevents the normal
transmission of RTSP packets.
But the HTTP port (port 80) is generally open, so there
is the idea of letting RTSP packets pass through port
80, namely RTSP over HTTP.
The details of RTSP over HTTP are as follows:
First, the client opens two socket connect to the rtsp server HTTP ports. We call these two sockets "data socket" and "command socket".
Step 1. The client sends an HTTP GET command through the "data socket" to request an RTSP connection.
Step 2. The server responds to the HTTP GET command through the "data socket" and responds with success/failure.
Step 3. The client creates a "command socket" and sends an HTTP POST command through the "command socket" to establish an RTSP session.
At this point, the auxiliary function of HTTP is
completed, and the server does not return the client's
HTTP POST command. Next is the standard process of RTSP
on the HTTP port, but it needs to be completed through
two sockets. The "command socket" is only responsible
for sending, and the "data socket" is only responsible
for receiving.
Step 4. The client sends RTSP commands (BASE64 encoding) through the "command socket".
Step 5. The server responds to the RTSP command (in plain text) through the "data socket".
Step 6. Repeat Step4-Step5 until the client sends the RTSP PLAY command and the server responds to the RTSP PLAY command.
Step 7. The server transmits audio and video data to the client through the "data socket" After the data exchange is complete...
Step 8. The client sends the RTSP TEARDOWN command (BASE64 encoding and) through the "command socket"
Step 9. The server responds to the RTSP TEARDOWN command (in plain text) through the "data socket".
Step 10. Close the two sockets.