当前位置: 首页 > 知识库问答 >
问题:

如何在EXOPlayer中播放RTSP视频url

梁丘璞瑜
2023-03-14

我正在开发一个应用程序,我使用了谷歌的ExoPlayer,它工作起来很有魅力,现在我想在我的应用程序中添加RTSP支持,但使用ExoPlayer我无法播放,请任何人都可以帮我,如果有人有其他选择,请与我分享。

val playerView = findViewById<PlayerView>(R.id.simple_player)

        playerView.player = player

        val rtmpDataSourceFactory = RtmpDataSourceFactory()

        val url = mVideoPath
        val videoSource = ExtractorMediaSource.Factory(rtmpDataSourceFactory)
            .createMediaSource(Uri.parse("rtsp://192.168.1.74/12"))

        player.prepare(videoSource)

        player.playWhenReady = true

日志

E/ExoPlayerImplInternal:源错误。网蝴蝶电视。rtmp_客户端。RtmpClient$RtmpIOException at net。蝴蝶电视。rtmp_客户端。RtmpClient。在com上打开(RtmpClient.java:56)。谷歌。Androidexoplayer2。ext.rtmp。RtmpDataSource。在com上打开(RtmpDataSource.java:60)。谷歌。Androidexoplayer2。上游StatsDataSource。在com上打开(StatsDataSource.java:83)。谷歌。Androidexoplayer2。来源ExtractormDiaperiod$ExtractingLoadable。在com上加载(extractoremiperiod.java:885)。谷歌。Androidexoplayer2。上游Loader$LoadTask。在java上运行(Loader.java:381)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1133)。util。同时发生的ThreadPoolExecutor$Worker。在java上运行(ThreadPoolExecutor.java:607)。朗。丝线。运行(Thread.java:761)

共有2个答案

曾绯辞
2023-03-14

ExoPlayer似乎为Rtsp流媒体提供了一个补丁。我使用的是ExoPlayer v2.15.0,这是最新的版本,其中包含了Rtsp流媒体支持。但是我们仍然无法流“rtsp://192.168.0.26:554/11”这种网址。同时VLC也能够流这种网址。

下面是我在给定rtsp url时流式传输的代码

    MediaSource mediaSource =
            new RtspMediaSource.Factory().setForceUseRtpTcp(true)
                    .createMediaSource(MediaItem.fromUri("rtsp://192.168.0.26:554/11"));

获取源错误与此。

日志: ExoPlayerInimplified:回放错误com.google.android.exoplayer2. ExoPlayback异常:源错误引起的:javahtml" target="_blank">.net.NoRouteToHostExctive:主机无法访问

注意:我们已将设备连接到同一网络中!!!

钮巴英
2023-03-14

似乎RTSP支持不适用于常规的ExoPlayer版本,他们仍然有一个开放的票证来添加RTSP支持,但有一个支持RTSP的git分支。

如果您使用的是RtmpDataSourceFactory,可以尝试使用RtspMediaSource。取而代之的是工厂。

您还可以阅读RTMP和RTSP之间的区别。

 类似资料:
  • RTSP视频可以在Android MediaPlayer中播放吗?如果是,怎么做?我得到的服务器死亡错误(100,0)这是我的编码部分包com的错误。实例样本媒体; 这是我的Logcat结果,我得到的结果是07-09 12:17:05.484:E/MediaPlayer(3990):error(1,-2147483648)07-09 12:17:05.484:W/System。err(3990):

  • 我已使用Azure媒体服务存储加密视频 有人能帮我解决以下问题吗: 我从哪里获得Widevine许可证URL,以便在Exo Player中播放视频 提前感谢。

  • 我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。

  • 我正在尝试在android中实现BrightCove Exoplayer。我能够成功地实现播放单个视频。现在我正在尝试使用Exoplayer播放播放列表。播放列表中的第一个视频,在第一个视频结束时,播放器不会播放播放列表中的下一个视频。它再次显示第一个视频的开头;如果我按下播放按钮,第一个视频将再次播放。我想实现连续播放播放列表中的所有视频。我错过什么了吗?我将我的代码张贴在下面: 主要活动:

  • 在linux盒子上,我有一个用openssl加密的MP4视频: 请注意,这是一个练习,算法的强度并不重要。 该文件被发送到Android应用程序,我正在尝试使用ExoPlayer播放它。 我之前已经对文本文件进行了一些测试,以确保解密工作正常 关于ExoPlayer,在AiscipherDataSource、AiscipherDataSink、SimpleCache等之间有点势不可挡。我无法找到一