android - Android 应用程序中 VideoView 中的 RTSP 流

标签 android video streaming rtsp playback

我正在尝试编写一个非常简单的应用程序,它只是尝试播放由 RTSP 服务器流式传输的视频。 我在某处读到 VideoView 组件能够处理 RTSP 流。 所以我按以下方式编写了代码。

vv = (VideoView) findViewById(R.id.videoView1);
    mc = new MediaController(getApplicationContext());
    vv.setVideoURI(Uri.parse(url));
    vv.setMediaController(mc);
    vv.requestFocus();

    vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

        public void onPrepared(MediaPlayer mp) {
            vv.start();

        }
    });

URL String 格式如下 rtsp://192.168.1.136:8554/mercykilling.mkv

我的问题是我一直收到如下错误

V/MediaPlayer(16501): 收到消息 msg=100, ext 1=1, ext2=-18

任何人都可以就此主题提供任何指示吗?

最佳答案

上一个 FAQ

上一个 background

一般评论 - RTSP/RTP 支持包含一组非常大的底层编码和规范,用于在数据包内打包媒体轨道,我不确定标准 Android libStageFright 库是否在其所有排列中实际支持它。

我查看了 API/media/video 下 sdk 中的 ICS 示例...

ApiDemos\src\com\example\android\apis\media\MediaPlayerDemo_Video.java

查看您的 SDK 以及上述示例中的注释...

        case STREAM_VIDEO:
            /*
             * TODO: Set path variable to progressive streamable mp4 or
             * 3gpp format URL. Http protocol should be used.
             * Mediaplayer can only play "progressive streamable
             * contents" which basically means: 1. the movie atom has to
             * precede all the media data atoms. 2. The clip has to be
             * reasonably interleaved.
             * 
             */

这些评论支持android 4.0 mediaPlayer 将播放RTSP 流的观点。

如果您想测试一个通用的 RTSP 流,我建议您从 Youtube 获取一个提要并尝试播放 format=1 流的 URL,这将是 RTSP 协议(protocol)。 示例 here

关于android - Android 应用程序中 VideoView 中的 RTSP 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10138603/

相关文章:

android - 在 build.gradle 中找不到参数的方法 uploadArchives()

java - 通过 Java 应用程序捕获超声机的视频

ffmpeg - 如何使用一个 init.mp4 文件将 mp4 文件拆分为多个 .m4s block

windows - ffmpeg 帧率不一致

javascript - HTTP 数据流

flash - Flash加载外部文件会卡住页面-或-多个同时下载

java - 替换eclipse中的android.jar

java - 使用 KeyGaurdManager 锁定 Android 确认凭据屏幕的方向

android - 在 Activity.runOnUiThread() 方法后返回一个值

html - 动态改变视频播放速度