首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过RTSP协议可以传输MP4视频文件吗?

通过RTSP协议可以传输MP4视频文件吗?
EN

Stack Overflow用户
提问于 2017-03-07 17:45:55
回答 1查看 3.2K关注 0票数 0

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

代码语言:javascript
运行
复制
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来流媒体文件,这是否足够。

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 18:59:15

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

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

总之,听起来您正在尝试直接流mp4文件。相反,您需要解析mp4文件并提取NAL单元,然后需要在RTP上进行打包,并在RTSP连接上进行多路复用。或者,决定不交叉并在UDP上发送数据包。确保实现正确的RFC6184打包模式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42654864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档