我正在嵌入式设备上编写应用程序,该设备接收携带G.729,PCM或H.264的RTP流。数据包作为char *到达我的应用程序到RTP数据包。我希望能够看到或收听流(作为测试),但在这个设备上我没有播放器。我想我可以将这个流转发到套接字并在其他地方播放RTP流,就像在运行播放器的Linux机器上一样。这可能吗?我没有RTSP,只有RTP。例如,VLC是否可以这样做?我可以简单地将RTP数据包发送到套接字以在另一端播放它们吗? 谢谢!
答案 0 :(得分:0)
您可以通过UDP套接字转发RTP数据包。
答案 1 :(得分:0)
不幸的是我不知道准备使用解决方案。 VLC可以通过UDP从文件中流式传输(和播放)此类流,因此它从文件容器格式中获取所需的信息。这种解决方案可以采用SDP格式的外部流描述和您的实际RTP数据包
[编辑]顺便说一下,你收到的RTP流没有任何格式描述很奇怪,通常它的描述是以RTSP,MPEG-TS或其他方式提供的
答案 2 :(得分:0)
包含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