Video streaming 是否可以通过RTSP协议传输MP4视频文件?

Video streaming 是否可以通过RTSP协议传输MP4视频文件?,video-streaming,rtsp,Video Streaming,Rtsp,我已经创建了RTSP服务器。客户端是VLC媒体播放器。它通过以下方式与我的服务器连接: OPTIONS rtsp://192.168.1.6:5554/camera RTSP/1.0 CSeq: 2 User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22) RTSP/1.0 200 OK Session: 698955009;timeout=60 Expires: 0 Server: RTSP Camera Server (A

我已经创建了RTSP服务器。客户端是VLC媒体播放器。它通过以下方式与我的服务器连接:

OPTIONS rtsp://192.168.1.6:5554/camera RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)

RTSP/1.0 200 OK
Session: 698955009;timeout=60
Expires: 0
Server: RTSP Camera Server (Android) ver. 1.8
Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER,SET_PARAMETER
Cache-Control: no-cache

DESCRIBE rtsp://192.168.1.6:5554/camera RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Accept: application/sdp

RTSP/1.0 200 OK
Content-Base: rtsp://192.168.1.6:5554/camera
Content-Length: 269
Session: 698955009;timeout=60
Expires: 0
Content-Type: application/sdp
Server: RTSP Camera Server (Android) ver. 1.8
Cache-Control: no-cache

v=0
o=- 0 0 IN IP4 192.168.1.6
s=RTSP_CAMERA
i=N/A
c=IN IP4 192.168.1.6
t=0 0
a=recvonly
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=control:trackID=0
a=fmtp:96 packetization-mode=1;profile-level-id=640029;sprop-parameter-sets=Z2QAKawbGsBQBbk=,aOpDyw==;

SETUP rtsp://192.168.1.6:5554/camera/trackID=0 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

RTSP/1.0 200 OK
Transport: RTP/AVP/UDP;unicast;ssrc=7e15a85d;interleaved=0-1;mode=play
Session: 698955009;timeout=60
Server: RTSP Camera Server (Android) ver. 1.8
Cache-Control: no-cache
Expires: 0

PLAY rtsp://192.168.1.6:5554/camera RTSP/1.0
CSeq: 5
User-Agent: LibVLC/2.2.4 (LIVE555 Streaming Media v2016.02.22)
Session: 698955009
Range: npt=0.000-

RTSP/1.0 200 OK
Session: 698955009;timeout=60
Server: RTSP Camera Server (Android) ver. 1.8
Cache-Control: no-cache
Expires: 0

... sending video.mp4 ...
但是VLC不播放视频。我试着用不同的格式发送视频文件(例如3GP、MOV),但效果不太好。我必须对视频进行编码吗?或者可能有任何服务器响应不正确?因此,我的问题是如何通过RTSP传输媒体文件,这是否足够。

如果不通过RTSP发送“mp4文件”,mp4文件只是媒体样本的容器。相反,您希望将存储在mp4文件中的媒体数据打包。在您问题中的SDP示例中,您希望发送H.264媒体,这意味着您必须根据需要打包NAL单元

此外,您使用的是交错模式,这意味着您必须通过用于RTSP交换的TCP连接多路传输RTP和RTCP数据包。有一节解释了如何做到这一点

总之,听起来您正试图直接流式传输mp4文件。相反,您需要解析mp4文件并提取NAL单元,然后需要通过RTP对其进行打包,并通过RTSP TCP连接进行多路复用。或者,决定不交错并通过UDP发送数据包。 确保实施RFC6184的正确打包模式

您不需要通过RTSP发送“mp4文件”,mp4文件只是媒体样本的容器。相反,您希望将存储在mp4文件中的媒体数据打包。在您问题中的SDP示例中,您希望发送H.264媒体,这意味着您必须根据需要打包NAL单元

此外,您使用的是交错模式,这意味着您必须通过用于RTSP交换的TCP连接多路传输RTP和RTCP数据包。有一节解释了如何做到这一点

总之,听起来您正试图直接流式传输mp4文件。相反,您需要解析mp4文件并提取NAL单元,然后需要通过RTP对其进行打包,并通过RTSP TCP连接进行多路复用。或者,决定不交错并通过UDP发送数据包。 确保实施RFC6184的正确打包模式