我正在写一个嵌入式设备上的应用程序,它接收携带G.729、PCM或H.264的RTP流。数据包作为RTP数据包的char*到达我的应用程序。我希望能够看到或收听数据流(作为测试),但在这个设备上我没有播放器。我想我可以将这个流转发到一个套接字,然后在其他地方播放RTP流,比如在运行播放器的Linux机器上。这有可能吗?我没有RTSP,只有RTP。例如,VLC是一种可行的方法吗?我是否可以简单地将RTP数据包发送到套接字,以便在另一端播放它们?谢谢!
发布于 2011-01-22 22:39:51
不,你不能。简单RTP不包含有关流格式等的任何信息,只包含有关数据包本身的信息:序列号、时间戳、附加同步信息。流式传输RTP的最简单方法是RTP/MPEG (MPEG Transport Stream)。
不幸的是,我不知道是否可以使用解决方案。VLC可以通过UDP从文件中流式(和播放)这样的流,因此它从文件容器格式中获取所需的信息。这样解决方案可以采用SDP格式的外部流描述和实际的RTP包
顺便说一句,奇怪的是你只收到RTP流,没有格式的任何描述,通常它的描述是由RTSP,MPEG-TS或其他东西提供的
发布于 2011-01-25 23:37:53
包含H.264流的SDP示例:
Server: rtsp server
Content-type: application/sdp
Content-base: rtsp://[some URL]
Content-length: 505
v=0
o=rtsp 1295996924 1590699491 IN IP4 0.0.0.0
s=RTSP Session
i=rtsp server
c=IN IP4 192.168.1.2
t=0 0
a=control:*
m=audio 0 RTP/AVP 97
a=rtpmap: 97 mpeg4-generic/8000/1
a=fmtp: 97 streamtype=5; profile-level-id=15; objectType=2; mode=AAC-hbr;
a=range:npt=now-
a=control:trackID=0
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=42E015; sprop-parameter-sets=Z0LgFdoHgtE=,aM4wpIA=; packetization-mode=1
a=range:npt=now-
a=framesize:96 480-352
a=control:trackID=1 发布于 2011-01-22 17:55:33
您可以通过UDP套接字转发RTP数据包。
https://stackoverflow.com/questions/4767158
复制相似问题