首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ExoPlayer无法播放Adobe live流编码器播放的音视频流(RTMP)

ExoPlayer无法播放Adobe live流编码器播放的音视频流(RTMP)
EN

Stack Overflow用户
提问于 2019-02-24 16:04:25
回答 1查看 1.3K关注 0票数 6

我在服务器端使用Adobe Live Stream Encoder来流式传输RTMP live音频。在我的安卓客户端应用程序中,带有RTMP扩展的ExoPlayer不能播放它并导致RtmpIOException,但我可以用VLC或MPC播放它。

我用其他一些RTMP链接测试了我的安卓应用程序,它是可以的。

我也在安装在我手机上的其他视频播放器(MxPlayer,Vlc)中使用了这个url,它是可以的。

这是android的视频播放代码:

代码语言:javascript
运行
复制
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();     

TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory();
TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);

//Create the player
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector);
playerView.setPlayer(player);
MediaSource videoSource = null;

Uri uri = Uri.parse("rtmp://172.18.49.6/live/11");

dataSourceFactory = new RtmpDataSourceFactory();
videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
                .createMediaSource(uri);

player.prepare(videoSource);
player.setPlayWhenReady(true);

这是一个例外:

代码语言:javascript
运行
复制
E/ExoPlayerImplInternal: Source error.
net.butterflytv.rtmp_client.RtmpClient$RtmpIOException
    at net.butterflytv.rtmp_client.RtmpClient.open(RtmpClient.java:56)
    at com.google.android.exoplayer2.ext.rtmp.RtmpDataSource.open(RtmpDataSource.java:60)
    at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
    at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
    at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
EN

回答 1

Stack Overflow用户

发布于 2019-09-12 01:07:21

我也遇到过类似的问题,试着在RTMP URL上修改一下:

代码语言:javascript
运行
复制
Before:
Uri uri = Uri.parse("rtmp://172.18.49.6/live/11");

After:
Uri uri = Uri.parse("rtmp://172.18.49.6/live/11 live=1");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54849946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档