android - RTSP 1080p 直播安卓客户端报错 (100,0)

标签 android android-videoview onvif

我的新监控摄像头刚到,所以我正在尝试编写一个应用程序来实时流式传输来自它的视频。

因为它基本上没有文档,所以我安装了“onvifer”安卓应用程序,它允许您浏览相机的功能。这个应用程序工作正常 - 获取视频并允许 PTZ 控制等。它将流媒体 url 报告为:

 rtsp://192.1.0.193:554/mpeg4

我在 VLC windows 客户端中测试了流,它也能够从该 URL 流式传输视频。这让我很放心,因为网络工作正常。

摄像头声明 Feed 为 1920x1080; VLC 证实了这一点。

我 Activity 中的基本代码:

VideoView videoView = (VideoView)this.findViewById(R.id.VideoView);
videoView.setVideoURI(Uri.parse("rtsp://192.1.0.193:554/mpeg4"));
videoView.requestFocus();
videoView.start();

我还在 AndroidManifest.xml 中授予应用程序 INTERNET 权限,禁用相机上的身份验证,并在真实设备(而非模拟器)上运行。

当我运行该应用程序时,LogCat 会立即显示:

setDataSource IOException happend :
java.io.FileNotFoundException: No content provider: rtsp://192.1.0.193:554/mpeg4
at android.content.ContentResolver.openTypedAssetFileDescriptor (ContentResolver.java).

大约 15 秒后,应用程序显示“无法播放此视频”模式对话框,并将其添加到 LogCat:

MediaPlayer      error (100, 0)
AudioSystem      AudioFlinger server died!
MediaPlayer      error (100, 0)
VideoView        Error: 100,0

我用谷歌搜索了所有我能想到的东西,但没有找到任何有用的东西。

有什么想法吗?

最佳答案

在你的 logcat 和 RC=100 上进行疯狂猜测...没有 SDP 文件或没有用于协商流/container/codec/格式细节所需的“moov atom” block 的 RTSP 等效文件...您可以获得 mediaPlayer/videoView 的 AOSP 代码,并在源代码中获取 RC 值。

RTSP 很难调试(请注意工具链接)并且由于 UDP 问题不能保证在 NAT 网络中运行。因此,为了获得更好的结果,您可能需要考虑强制您的配置在 TCP 而不是 UDP 上执行数据通道。或者可能是其他问题,其中有很多。

如果你真的想调查,下面的一些可能的工具:

使用命令行和CURL client请求您的流:

Android - Java RTSP session 管理包 on Git

Protocol dumps用于到 Youtube RTSP/SDP 流的 CLI RTSP session

要解决这个问题,您可能需要使用调试工具深入了解在 MediaPlayer 实际开始播放流之前的协议(protocol)协商细节的调试工具。这将包括学习 RFP和协议(protocol)细节。

关于android - RTSP 1080p 直播安卓客户端报错 (100,0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215724/

相关文章:

java - 在android中使用阿拉伯文字

android - 在 Canvas 上绘图需要帮助 - Android

android - 如何刷新 Activity

安卓 :How to stretch video in android device with the device height-width?

android - 如何为 Android Studio 中的单独模块生成签名的 APK?

java - 异步加载内容时闪烁

android - 将艺术品附加到 ExoPlayer 的 mp3 Uri

linux - 摄像机端(而非客户端)的 ONVIF 视频流

c++ - ONVIF:Profile S 需要哪些 wsdl 文件

camera - Onvif 模拟器用于测试 Onvif Web 服务客户端