libStreaming多路推流,但是VLC播放只显示了第一个推流的视频

anyuan9 2016-06-21 01:43:04
现在在做libStreaming的推流EasyDarwin流媒体服务器,我想实现多路推流,而且用VLC可以播放多路录制的视频,但是实验多路推流时,如果有两个手机A、B同时推流到同一个EasyDarwin时,用VLC播放只显示了第一个手机A推流的视频,第二个手机B推流的视频一直无法显示出来。在结束了第一个手机A,然后再开启后,用VLC播放就只显示了手机B推流的视频,就好像是一个端口,先到先得,而且两个视频还串起来了。但是用EasyPusher推流到EasyDarwin,是能够实现多路推流和播放的。
libStreaming的NTP时间戳计算如下:
Timestamp = (uptime/1000)<<32 & (((uptime-((uptime/1000)*1000))>>32)/1000);
// NTP timestamp,计算NTP时间戳,由于后一项为0,所以整个计算结果也肯定为0
原始的sdp如下:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=recvonly
a=control:*
m=audio 0 RTP/AVP 96
a=3GPP-Adaptation-Support:1
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1;
a=control:trackID=0
m=video 0 RTP/AVP 96
a=3GPP-Adaptation-Support:1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=420014;sprop-parameter-sets=J0IA
FKaCxMQ=,KM48gA==;
a=control:trackID=1
\n

EasyPusher的sdp如下:
v=0
o=- 2205756022 2205756022 IN IP4 127.0.0.1
s=EasyDarwin
i=EasyDarwin
c=IN IP4 0.0.0.0
t=0 0
a=x-qt-text-nam:EasyDarwin
a=x-qt-text-inf:EasyDarwin
a=x-qt-text-cmt:source application::EasyDarwin
a=x-qt-text-aut:
a=x-qt-text-cpy:
a=control:*
m=video 0 RTP/AVP 96
a=3GPP-Adaptation-Support:1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=
a=control:trackID=1
m=audio 0 RTP/AVP 97
a=3GPP-Adaptation-Support:1
a=rtpmap:97 MPEG4-GENERIC/8000/1
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength
=3;indexdeltalength=3;config=1408
a=control:trackID=2
\n

参考了EasyPusher的格式后,libStreaming修改后如下:
v=0
o=- 2205756022 2205756022 IN IP4 127.0.0.1
s=EasyDarwin
i=EasyDarwin
c=IN IP4 0.0.0.0
t=0 0
a=x-qt-text-nam:EasyDarwin
a=x-qt-text-inf:EasyDarwin
a=x-qt-text-cmt:source application::EasyDarwin
a=x-qt-text-aut:
a=x-qt-text-cpy:
a=control:*
m=audio 0 RTP/AVP 96
a=3GPP-Adaptation-Support:1
a=rtpmap:96 mpeg4-generic/8000
a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1588; SizeLeng
th=13; IndexLength=3; IndexDeltaLength=3;
a=control:trackID=0
m=video 0 RTP/AVP 96
a=3GPP-Adaptation-Support:1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=420014;sprop-parameter-sets=J0IA
FKaCxMQ=,KM48gA==;
a=control:trackID=1
\n
但是依然无法多路推流和VLC播放,请问有谁知道如何解决吗??
...全文
2136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
顽石33 2020-07-16
  • 打赏
  • 举报
回复
遇到同样的问题!请问怎么解决的?
kxlsccd 2017-12-08
  • 打赏
  • 举报
回复
这个问题具体是咋解决的,能帮忙说的详细点么?现在我也遇到这个问题,找不到解决方式 对rtsp不是很熟 谢谢
anyuan9 2016-06-27
  • 打赏
  • 举报
回复
发现我的是SDP设置的数据与传递的最终数据不相符,在程序运行后抓包,再追踪TCP流,发现里面的o,c,m等的参数值设置的都不是我想要的,后来我是通过设置固定值解决的

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧