Я использую Adobe Live Stream Encoder
для потоковой передачи RTMP
живого звука на стороне сервера.в моем клиентском приложении для Android ExoPlayer
с расширением RTMP не может воспроизвести его и вызывает RtmpIOException
, но я могу воспроизвести его с помощью VLC или MPC.
Я протестировал свое приложение для Android с некоторыми другими RTMP
ссылкамии это было хорошо.
Я также использовал этот URL в других видео-плеерах, установленных на моем телефоне (MxPlayer, Vlc), и это было хорошо.
это код в Android для воспроизведения видео:
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);
И это исключение:
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)