播放视频时遇到问题。
关于HTC Desire 2.2视频播放效果不错,没问题 但是在Nexus One 2.3.4和Nexus S 4.0.3上,我只有音频,但没有显示视频
这是在N1和NS上具有相同问题的块日志
02-27 11:42:30.914: W/MyHandler(116): Unsupported format. Ignoring track #2.
02-27 11:42:30.914: I/MyHandler(116): SETUP(2) completed with result -1010 (Unknown error: 1010)
完整日志:
02-27 11:42:20.634: I/MyHandler(116): connection request completed with result 0 (Unknown error: 0)
02-27 11:42:20.664: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:20.674: I/MyHandler(116): DESCRIBE completed with result 0 (Unknown error: 0)
02-27 11:42:20.674: I/ASessionDescription(116): v=0
02-27 11:42:20.674: I/ASessionDescription(116): o=- 952000 952000 IN IP4 178.124.133.2
02-27 11:42:20.674: I/ASessionDescription(116): s=WowzaMediaServer
02-27 11:42:20.674: I/ASessionDescription(116): i=<No author> <No copyright>
02-27 11:42:20.674: I/ASessionDescription(116): c=IN IP4 0.0.0.0
02-27 11:42:20.674: I/ASessionDescription(116): t=0 0
02-27 11:42:20.674: I/ASessionDescription(116): a=SdpplinVersion:1610641560
02-27 11:42:20.674: I/ASessionDescription(116): a=StreamCount:integer;2
02-27 11:42:20.674: I/ASessionDescription(116): a=control:*
02-27 11:42:20.674: I/ASessionDescription(116): a=LiveStream:integer;1
02-27 11:42:20.674: I/ASessionDescription(116): a=Title:buffer;"V293emFNZWRpYVNlcnZlcg=="
02-27 11:42:20.674: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:20.674: I/ASessionDescription(116): a=tool:libavformat 53.5.0
02-27 11:42:20.674: I/ASessionDescription(116): m=audio 7234 RTP/AVP 97
02-27 11:42:20.674: I/ASessionDescription(116): b=AS:72
02-27 11:42:20.674: I/ASessionDescription(116): b=TIAS:64000
02-27 11:42:20.674: I/ASessionDescription(116): b=RR:1280
02-27 11:42:20.674: I/ASessionDescription(116): b=RS:640
02-27 11:42:20.674: I/ASessionDescription(116): a=maxprate:16.000000
02-27 11:42:20.674: I/ASessionDescription(116): a=control:streamid=1
02-27 11:42:20.674: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:20.674: I/ASessionDescription(116): a=length:npt=0
02-27 11:42:20.674: I/ASessionDescription(116): a=rtpmap:97 MP4A-LATM/44100/2
02-27 11:42:20.684: I/ASessionDescription(116): a=fmtp:97 profile-level-id=41;cpresent=0;config=400024203fc0
02-27 11:42:20.684: I/ASessionDescription(116): a=mimetype:string;"audio/MP4A-LATM"
02-27 11:42:20.684: I/ASessionDescription(116): a=ASMRuleBook:string;"Marker=0,AverageBandwidth=64000,TimestampDelivery=TRUE,InterDepend=1;Marker=1,AverageBandwidth=0,TimestampDelivery=TRUE,InterDepend=0;"
02-27 11:42:20.684: I/ASessionDescription(116): a=3GPP-Adaptation-Support:1
02-27 11:42:20.684: I/ASessionDescription(116): a=Helix-Adaptation-Support:1
02-27 11:42:20.684: I/ASessionDescription(116): a=AvgBitRate:integer;64000
02-27 11:42:20.684: I/ASessionDescription(116): a=ForceRTP:integer;1
02-27 11:42:20.684: I/ASessionDescription(116): m=video 7232 RTP/AVP 96
02-27 11:42:20.684: I/ASessionDescription(116): b=AS:208
02-27 11:42:20.684: I/ASessionDescription(116): b=TIAS:200000
02-27 11:42:20.684: I/ASessionDescription(116): b=RR:4000
02-27 11:42:20.684: I/ASessionDescription(116): b=RS:2000
02-27 11:42:20.684: I/ASessionDescription(116): a=maxprate:16.000000
02-27 11:42:20.684: I/ASessionDescription(116): a=control:streamid=2
02-27 11:42:20.684: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:20.684: I/ASessionDescription(116): a=length:npt=0
02-27 11:42:20.684: I/ASessionDescription(116): a=rtpmap:96 H264/90000
02-27 11:42:20.684: I/ASessionDescription(116): a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LAFdoCMK/r/wDTAMcQAAADABAAAAMB4PFi6g==,aM48gA==
02-27 11:42:20.684: I/ASessionDescription(116): a=mimetype:string;"video/H264"
02-27 11:42:20.684: I/ASessionDescription(116): a=ASMRuleBook:string;"Marker=0,AverageBandwidth=200000,TimestampDelivery=TRUE,InterDepend=1;Marker=1,AverageBandwidth=0,TimestampDelivery=TRUE,InterDepend=0;"
02-27 11:42:20.684: I/ASessionDescription(116): a=3GPP-Adaptation-Support:1
02-27 11:42:20.684: I/ASessionDescription(116): a=Helix-Adaptation-Support:1
02-27 11:42:20.694: I/ASessionDescription(116): a=AvgBitRate:integer;200000
02-27 11:42:20.694: I/ASessionDescription(116): a=ForceRTP:integer;1
02-27 11:42:20.704: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:20.704: I/MyHandler(116): SETUP(1) completed with result 0 (Unknown error: 0)
02-27 11:42:20.704: W/MyHandler(116): Missing 'source' field in Transport response. Using RTSP endpoint address.
02-27 11:42:20.704: W/MyHandler(116): Unsupported format. Ignoring track #2.
02-27 11:42:20.714: I/MyHandler(116): SETUP(2) completed with result -1010 (Unknown error: 1010)
02-27 11:42:20.754: I/ActivityManager(163): Displayed by.tut.android/.tv.channelselector.VideoViewActivity: +338ms
02-27 11:42:20.804: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:20.814: I/MyHandler(116): PLAY completed with result 0 (Unknown error: 0)
02-27 11:42:30.824: W/MyHandler(116): Never received any data, switching transports.
02-27 11:42:30.824: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:30.834: I/MyHandler(116): TEARDOWN completed with result 0 (Unknown error: 0)
02-27 11:42:30.844: I/MyHandler(116): connection request completed with result 0 (Unknown error: 0)
02-27 11:42:30.864: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:30.874: I/MyHandler(116): DESCRIBE completed with result 0 (Unknown error: 0)
02-27 11:42:30.874: I/ASessionDescription(116): v=0
02-27 11:42:30.874: I/ASessionDescription(116): o=- 139000 139000 IN IP4 178.124.133.2
02-27 11:42:30.874: I/ASessionDescription(116): s=WowzaMediaServer
02-27 11:42:30.874: I/ASessionDescription(116): i=<No author> <No copyright>
02-27 11:42:30.874: I/ASessionDescription(116): c=IN IP4 0.0.0.0
02-27 11:42:30.874: I/ASessionDescription(116): t=0 0
02-27 11:42:30.884: I/ASessionDescription(116): a=SdpplinVersion:1610641560
02-27 11:42:30.884: I/ASessionDescription(116): a=StreamCount:integer;2
02-27 11:42:30.884: I/ASessionDescription(116): a=control:*
02-27 11:42:30.884: I/ASessionDescription(116): a=LiveStream:integer;1
02-27 11:42:30.884: I/ASessionDescription(116): a=Title:buffer;"V293emFNZWRpYVNlcnZlcg=="
02-27 11:42:30.884: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:30.884: I/ASessionDescription(116): a=tool:libavformat 53.5.0
02-27 11:42:30.884: I/ASessionDescription(116): m=audio 7234 RTP/AVP 97
02-27 11:42:30.884: I/ASessionDescription(116): b=AS:72
02-27 11:42:30.894: I/ASessionDescription(116): b=TIAS:64000
02-27 11:42:30.894: I/ASessionDescription(116): b=RR:1280
02-27 11:42:30.894: I/ASessionDescription(116): b=RS:640
02-27 11:42:30.894: I/ASessionDescription(116): a=maxprate:16.000000
02-27 11:42:30.894: I/ASessionDescription(116): a=control:streamid=1
02-27 11:42:30.894: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:30.894: I/ASessionDescription(116): a=length:npt=0
02-27 11:42:30.894: I/ASessionDescription(116): a=rtpmap:97 MP4A-LATM/44100/2
02-27 11:42:30.894: I/ASessionDescription(116): a=fmtp:97 profile-level-id=41;cpresent=0;config=400024203fc0
02-27 11:42:30.904: I/ASessionDescription(116): a=mimetype:string;"audio/MP4A-LATM"
02-27 11:42:30.904: I/ASessionDescription(116): a=ASMRuleBook:string;"Marker=0,AverageBandwidth=64000,TimestampDelivery=TRUE,InterDepend=1;Marker=1,AverageBandwidth=0,TimestampDelivery=TRUE,InterDepend=0;"
02-27 11:42:30.904: I/ASessionDescription(116): a=3GPP-Adaptation-Support:1
02-27 11:42:30.904: I/ASessionDescription(116): a=Helix-Adaptation-Support:1
02-27 11:42:30.904: I/ASessionDescription(116): a=AvgBitRate:integer;64000
02-27 11:42:30.904: I/ASessionDescription(116): a=ForceRTP:integer;1
02-27 11:42:30.904: I/ASessionDescription(116): m=video 7232 RTP/AVP 96
02-27 11:42:30.904: I/ASessionDescription(116): b=AS:208
02-27 11:42:30.904: I/ASessionDescription(116): b=TIAS:200000
02-27 11:42:30.904: I/ASessionDescription(116): b=RR:4000
02-27 11:42:30.904: I/ASessionDescription(116): b=RS:2000
02-27 11:42:30.904: I/ASessionDescription(116): a=maxprate:16.000000
02-27 11:42:30.904: I/ASessionDescription(116): a=control:streamid=2
02-27 11:42:30.904: I/ASessionDescription(116): a=range:npt=0-
02-27 11:42:30.904: I/ASessionDescription(116): a=length:npt=0
02-27 11:42:30.904: I/ASessionDescription(116): a=rtpmap:96 H264/90000
02-27 11:42:30.904: I/ASessionDescription(116): a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LAFdoCMK/r/wDTAMcQAAADABAAAAMB4PFi6g==,aM48gA==
02-27 11:42:30.904: I/ASessionDescription(116): a=mimetype:string;"video/H264"
02-27 11:42:30.904: I/ASessionDescription(116): a=ASMRuleBook:string;"Marker=0,AverageBandwidth=200000,TimestampDelivery=TRUE,InterDepend=1;Marker=1,AverageBandwidth=0,TimestampDelivery=TRUE,InterDepend=0;"
02-27 11:42:30.904: I/ASessionDescription(116): a=3GPP-Adaptation-Support:1
02-27 11:42:30.904: I/ASessionDescription(116): a=Helix-Adaptation-Support:1
02-27 11:42:30.904: I/ASessionDescription(116): a=AvgBitRate:integer;200000
02-27 11:42:30.904: I/ASessionDescription(116): a=ForceRTP:integer;1
02-27 11:42:30.914: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:30.914: I/MyHandler(116): SETUP(1) completed with result 0 (Unknown error: 0)
02-27 11:42:30.914: W/MyHandler(116): Unsupported format. Ignoring track #2.
02-27 11:42:30.914: I/MyHandler(116): SETUP(2) completed with result -1010 (Unknown error: 1010)
02-27 11:42:31.254: I/ARTSPConnection(116): status: RTSP/1.0 200 OK
02-27 11:42:31.254: I/MyHandler(116): PLAY completed with result 0 (Unknown error: 0)
02-27 11:42:32.866: I/AwesomePlayer(116): ARTSPController::connect returned 0
答案 0 :(得分:0)
这是什么服务器?编辑 - 我刚看到WowzaMediaServer
实际上,可能没有足够的信息,服务器日志也会非常有用。
首先,android在这些版本中更改了媒体服务器,从OpenCore转移到StageFright。
错误是“02-27 11:42:20.704:W / MyHandler(116):不支持的格式。忽略曲目#2”
android rtp客户端返回了“设置”视频轨道的错误。 明显的第一个: 您的SDP文件指定端口7232“m =视频7232 RTP / AVP 96”。这个端口是否已经在使用?
来自libstagefright媒体播放器的APacketSource.cpp,
设置失败的原因可能是因为:
1)SDP或编码的sprops中没有有效的图片尺寸(尝试手动解码)使用base64工具(以及支持二进制数据的工具,而不仅仅是ascii文本)),
2)如果使用AMR和采样率!= 8000并且有超过1个通道(你不是)
3)如果使用AMR WB并且采样率!= 16000并且有超过1个通道(你不是)
4)你有一个字符串描述不满足其中一个 - 如果:
“H264 /”,“H263-2000 /”,“H263-1998 /”,“MP4A-LATM /”,“AMR /”,“AMR-WB /”,“MP4V-ES /”,“mpeg4-generic / “
您同时拥有“H264 / 90000”和“video / H264”
我在SDP文件中丢失了“a = mimetype:string;”video / H264“”字符串,看看它是如何工作的?虽然这是一个远景(但这并不能解释为什么音频有效,因为它是相同的)
虽然在这方面没有任何问题,但到目前为止,在我使用android和RTP / RTSP / SDP的经验中,stagefright在处理扩展类型方面并不是很好,只有裸小数据。
如果您想查看我上面解释的内容,您可以查看android源代码,文件位于“/ media / libstagefrigt / rtsp /”。相关文件是MyHandler.h和APacketSource.cpp
更新:你有另一个/更糟的问题
我刚刚在你的日志中看到了这个: “02-27 11:42:30.824:W / MyHandler(116):从未收到任何数据,切换传输。” 我注意到这两次尝试都背靠背,而不是我认为你复制并粘贴两次尝试。
这里有两个问题,一个是视频设置失败,另一个是整个第一个会话设置失败。
在发出PLAY命令的Android发出10秒超时之后,“从未收到任何数据,切换传输”错误发生,并且10秒内未接收数据。然后它会断开会话并尝试通过TCP建立会话。
很可能某些UDP端口被阻止或未在您的计算机/防火墙上打开等。这会导致第一个会话失败。它甚至可以解释视频设置失败的原因。检查服务器尝试用于视频设置的端口。确保它们高于1024。
另外,我不喜欢你的SDP如何首先列出音频,然后是视频,但音频使用的端口比后续视频低(这可能很好,只是“看起来很奇怪”)