media
media copied to clipboard
RTMP does not output video
Version
Media3 main branch
More version details
No response
Devices that reproduce the issue
OnePlus 10T
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
I'm trying to get a video broadcast on my local network. It definitely works. I checked this using VLC both on my computer and on my phone, on which I am trying to run the following simple code:
@OptIn(markerClass = UnstableApi.class)
public class MainActivity extends AppCompatActivity {
private ExoPlayer player;
private PlayerView playerView;
private String streamUrl = "rtmp://172.17.1.17/live/livestream?secret=b1d0340bc9884765aed7c0f4ef4a923e";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
playerView = findViewById(R.id.player_view);
RtmpDataSource.Factory rtmpDataSourceFactory = new RtmpDataSource.Factory();
// DataSource.Factory rtmpDataSourceFactory = new RtmpDataSource.Factory();
MediaSource rtmpMediaSource = new ProgressiveMediaSource.Factory(rtmpDataSourceFactory)
.createMediaSource(MediaItem.fromUri(Uri.parse(streamUrl)));
DataSpec dataSpec = new DataSpec(Uri.parse(streamUrl));
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(streamUrl));
// MediaSource.Factory mediaSourceFactory = new ProgressiveMediaSource.Factory(rtmpDataSourceFactory);
player = new ExoPlayer.Builder(this)
// .setMediaSourceFactory(mediaSourceFactory)
.build();
// player.setMediaItem(mediaItem);
player.setMediaSource(rtmpMediaSource);
playerView.setPlayer(player);
player.prepare();
}
}
It shows that I am trying to transmit the source in different combinations, but it is useless.
Library version:
val media3_version = "1.3.1"
implementation("androidx.media3:media3-exoplayer:$media3_version")
implementation("androidx.media3:media3-exoplayer-dash:$media3_version")
implementation("androidx.media3:media3-ui:$media3_version")
implementation("androidx.media3:media3-datasource-rtmp:$media3_version")
Expected result
Output of the broadcast video
Actual result
Black screen. At the same time, it seems that some data is going on, the time in the player is changing, but the video is not shown. The AudioSink$InexpectedDiscontinuityException error also appears periodically. Although I'm not really interested in audio output, I would disable it altogether. The main thing for me is to display the video:
2024-04-24 09:19:43.569 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:19:43.569 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:19:45.493 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 9418/9428 (recycle/alloc) - 47/9427 (fetch/transfer)
2024-04-24 09:19:46.877 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:19:46.877 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:19:50.198 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:19:50.198 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:19:50.508 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 9637/9647 (recycle/alloc) - 47/9647 (fetch/transfer)
2024-04-24 09:19:52.836 6135-6780 MediaCodecAudioRenderer com.apps.broadcasts E Audio sink error
androidx.media3.exoplayer.audio.AudioSink$UnexpectedDiscontinuityException: Unexpected audio track timestamp discontinuity: expected 1000230236081, got 1000230540000
at androidx.media3.exoplayer.audio.DefaultAudioSink.handleBuffer(DefaultAudioSink.java:994)
at androidx.media3.exoplayer.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:744)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:2010)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:827)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1112)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:240)
at android.os.Looper.loop(Looper.java:351)
at android.os.HandlerThread.run(HandlerThread.java:67)
2024-04-24 09:19:52.841 6135-6794 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] pipelineFull: too many frames in pipeline (6)
2024-04-24 09:19:52.841 6135-6790 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] pipelineFull: too many frames in pipeline (6)
2024-04-24 09:19:53.558 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:19:53.558 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:19:56.095 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 9874/9884 (recycle/alloc) - 47/9883 (fetch/transfer)
2024-04-24 09:19:56.873 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:19:56.873 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:19:56.996 6135-6780 MediaCodecAudioRenderer com.apps.broadcasts E Audio sink error
androidx.media3.exoplayer.audio.AudioSink$UnexpectedDiscontinuityException: Unexpected audio track timestamp discontinuity: expected 1000234719592, got 1000234982000
at androidx.media3.exoplayer.audio.DefaultAudioSink.handleBuffer(DefaultAudioSink.java:994)
at androidx.media3.exoplayer.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:744)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:2010)
at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:827)
at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1112)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:240)
at android.os.Looper.loop(Looper.java:351)
at android.os.HandlerThread.run(HandlerThread.java:67)
2024-04-24 09:20:00.199 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:00.199 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:01.370 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 10101/10111 (recycle/alloc) - 47/10110 (fetch/transfer)
2024-04-24 09:20:03.515 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:03.515 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:06.446 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 10320/10330 (recycle/alloc) - 47/10329 (fetch/transfer)
2024-04-24 09:20:06.923 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:06.924 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:07.298 6135-6790 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] pipelineFull: too many frames in pipeline (6)
2024-04-24 09:20:10.235 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:10.235 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:11.576 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 10541/10551 (recycle/alloc) - 47/10550 (fetch/transfer)
2024-04-24 09:20:13.557 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:13.558 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:16.686 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 10761/10771 (recycle/alloc) - 47/10770 (fetch/transfer)
2024-04-24 09:20:16.919 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:16.919 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:20.241 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:20.241 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:21.912 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 10989/10999 (recycle/alloc) - 47/10999 (fetch/transfer)
2024-04-24 09:20:23.636 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:23.637 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:27.007 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:27.008 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:27.455 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 11225/11235 (recycle/alloc) - 47/11234 (fetch/transfer)
2024-04-24 09:20:30.407 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:30.407 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:32.612 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 11447/11457 (recycle/alloc) - 47/11456 (fetch/transfer)
2024-04-24 09:20:33.723 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:33.723 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:37.079 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:37.079 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:37.717 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 11670/11680 (recycle/alloc) - 47/11680 (fetch/transfer)
2024-04-24 09:20:40.403 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:40.403 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:42.748 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 11887/11897 (recycle/alloc) - 47/11897 (fetch/transfer)
2024-04-24 09:20:43.759 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:43.760 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:47.159 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:47.159 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:48.336 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 12124/12134 (recycle/alloc) - 47/12133 (fetch/transfer)
2024-04-24 09:20:50.555 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:50.555 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:53.393 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 12345/12355 (recycle/alloc) - 47/12355 (fetch/transfer)
2024-04-24 09:20:53.922 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:53.923 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:57.285 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:20:57.285 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:20:58.633 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 3(24576 size) used buffers - 12571/12581 (recycle/alloc) - 47/12579 (fetch/transfer)
2024-04-24 09:21:00.595 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:21:00.595 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:21:03.657 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 12784/12794 (recycle/alloc) - 47/12793 (fetch/transfer)
2024-04-24 09:21:03.962 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:21:03.963 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:21:07.326 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:21:07.327 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
2024-04-24 09:21:08.691 6135-6790 BufferPoolAccessor2.0 com.apps.broadcasts D bufferpool2 0xb4000071fe364228 : 5(40960 size) total buffers - 1(8192 size) used buffers - 13001/13011 (recycle/alloc) - 47/13010 (fetch/transfer)
2024-04-24 09:21:10.683 6135-6791 CCodecBufferChannel com.apps.broadcasts D [c2.android.aac.decoder#278] DEBUG: elapsed: mInputMetEos 6, hasPendingOutputsInClient 0, n=1 [in=0 pipeline=0 out=2]
2024-04-24 09:21:10.683 6135-6791 PipelineWatcher com.apps.broadcasts D [0xb4000071fe281080] elapsed: mFramesInPipeline 2, n 6
Unfortunately, there is no application in the examples that uses RTMP, so I have to create this issue. Any help. Thanks
Media
Bug Report
- [ ] You will email the zip file produced by
adb bugreport
to [email protected] after filing this issue.
Reproducible in the demo app?
No
What happens when you try and use the demo app to play your stream? If it works (which is what I understand from your "not reproducible" answer here), that suggests there is an issue with your app rather than the library.
Reproducible in the demo app?
No
No, it does not mean that the problem is not reproduced in the demo application.
Unfortunately, there is no application in the examples that uses RTMP, so I have to create this issue
And below I wrote this message. None of the examples use RTMP.
Please try and play your RTMP stream in the demo app, using one of the approaches described here: https://developer.android.com/media/media3/exoplayer/demo-application#playing-your-own-content
Unsuccessfully
2024-04-24 16:58:14.487 16638-16638 EventLogger androidx.media3.demo.main D loading [eventTime=0.06, mediaPos=0.00, window=0, period=0, true]
2024-04-24 16:58:14.489 16638-16638 EventLogger androidx.media3.demo.main D timeline [eventTime=0.06, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2024-04-24 16:58:14.489 16638-16638 EventLogger androidx.media3.demo.main D period [?]
2024-04-24 16:58:14.489 16638-16638 EventLogger androidx.media3.demo.main D window [?, seekable=false, dynamic=false]
2024-04-24 16:58:14.489 16638-16638 EventLogger androidx.media3.demo.main D ]
2024-04-24 16:58:14.494 16638-16638 EventLogger androidx.media3.demo.main E internalError [eventTime=0.06, mediaPos=0.00, window=0, period=0, loadError
androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
]
2024-04-24 16:58:14.497 16638-16638 EventLogger androidx.media3.demo.main E internalError [eventTime=0.07, mediaPos=0.00, window=0, period=0, loadError
androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
]
2024-04-24 16:58:14.498 16638-16638 VRI[Sample...rActivity] androidx.media3.demo.main D handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus false mAdded true
2024-04-24 16:58:14.499 16638-16638 Quality androidx.media3.demo.main I Skipped: false 5 cost 44.232304 refreshRate 8370552 bit true processName androidx.media3.demo.main
2024-04-24 16:58:14.510 16638-16638 SurfaceSyncer androidx.media3.demo.main E Failed to find sync for id=0
2024-04-24 16:58:14.510 16638-16638 VRI[PlayerActivity] androidx.media3.demo.main D registerCallbacksForSync syncBuffer=false
2024-04-24 16:58:14.512 16638-17697 VRI[PlayerActivity] androidx.media3.demo.main D Received frameCommittedCallback lastAttemptedDrawFrameNum=2 didProduceBuffer=true syncBuffer=false
2024-04-24 16:58:14.512 16638-16638 VRI[PlayerActivity] androidx.media3.demo.main D draw finished.
2024-04-24 16:58:14.576 16638-16638 VRI[PlayerActivity] androidx.media3.demo.main D onFocusEvent true
2024-04-24 16:58:14.577 16638-16638 VRI[PlayerActivity] androidx.media3.demo.main D send msg MSG_WINDOW_FOCUS_CHANGED with caller android.view.ViewRootImplExtImpl.markAndDumpWindowFocusChangeMsg:1026 android.view.ViewRootImpl.windowFocusChanged:9847 android.view.ViewRootImpl$WindowInputEventReceiver.onFocusEvent:9560 android.os.MessageQueue.nativePollOnce:-2 android.os.MessageQueue.next:349 android.os.Looper.loopOnce:186 android.os.Looper.loop:351 android.app.ActivityThread.main:8423 java.lang.reflect.Method.invoke:-2 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run:584 com.android.internal.os.ZygoteInit.main:1013 <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack> <bottom of call stack>
2024-04-24 16:58:14.577 16638-16638 VRI[PlayerActivity] androidx.media3.demo.main D handleWindowFocusChanged mWindowFocusChanged true mUpcomingWindowFocus true mAdded true
2024-04-24 16:58:14.971 16638-17738 VRI[Sample...rActivity] androidx.media3.demo.main D dispatchAppVisibility visible:false
2024-04-24 16:58:14.971 16638-16638 VRI[Sample...rActivity] androidx.media3.demo.main D setWindowStopped stopped:true
2024-04-24 16:58:14.983 16638-16638 OpenGLRenderer androidx.media3.demo.main D RenderProxy::destroy: this=0xb40000720397ca00, mContext=0xb4000072039adb00
2024-04-24 16:58:14.983 16638-17697 OpenGLRenderer androidx.media3.demo.main D SkiaOpenGLPipeline::setSurface: this=0xb4000071f3e1bd00, surface=NULL
2024-04-24 16:58:14.984 16638-17697 BufferQueueProducer androidx.media3.demo.main D [VRI[SampleChooserActivity]#0(BLAST Consumer)0](id:40fe00000000,api:1,p:16638,c:16638) disconnect: api 1
2024-04-24 16:58:14.984 16638-17697 BufferQueueConsumer androidx.media3.demo.main D [VRI[SampleChooserActivity]#0(BLAST Consumer)0](id:40fe00000000,api:0,p:-1,c:16638) disconnect
2024-04-24 16:58:15.479 16638-16638 EventLogger androidx.media3.demo.main E internalError [eventTime=1.04, mediaPos=0.00, window=0, period=0, loadError
androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
]
2024-04-24 16:58:15.500 16638-16638 OplusScrollToTopManager androidx.media3.demo.main D androidx.media3.demo.main/androidx.media3.demo.main.SampleChooserActivity,This DecorView@9e5b524[SampleChooserActivity] change focus to false
2024-04-24 16:58:15.579 16638-16638 OplusScrollToTopManager androidx.media3.demo.main D androidx.media3.demo.main/androidx.media3.demo.main.PlayerActivity,This DecorView@f7c8256[PlayerActivity] change focus to true
2024-04-24 16:58:17.524 16638-17737 ExoPlayerImplInternal androidx.media3.demo.main E Playback error
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:717)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:689)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:240)
at android.os.Looper.loop(Looper.java:351)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
2024-04-24 16:58:17.525 16638-16638 EventLogger androidx.media3.demo.main E internalError [eventTime=3.05, mediaPos=0.00, window=0, period=0, loadError
androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
]
2024-04-24 16:58:17.545 16638-16638 EventLogger androidx.media3.demo.main E playerFailed [eventTime=3.11, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_IO_NETWORK_CONNECTION_FAILED
androidx.media3.exoplayer.ExoPlaybackException: Source error
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:717)
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:689)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:240)
at android.os.Looper.loop(Looper.java:351)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: androidx.media3.datasource.cronet.CronetDataSource$OpenException: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at androidx.media3.datasource.cronet.CronetDataSource.open(CronetDataSource.java:584)
at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:275)
at androidx.media3.datasource.cache.CacheDataSource.openNextSource(CacheDataSource.java:799)
at androidx.media3.datasource.cache.CacheDataSource.open(CacheDataSource.java:612)
at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1029)
at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:421)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: m.mt: Exception in CronetUrlRequest: net::ERR_UNKNOWN_URL_SCHEME, ErrorCode=11, InternalErrorCode=-302, Retryable=false
at org.chromium.net.impl.CronetUrlRequest.onError(:com.google.android.gms.dynamite_cronetdynamite@[email protected] (190408-0):4)
]
2024-04-24 16:58:17.546 16638-16638 EventLogger androidx.media3.demo.main D loading [eventTime=3.12, mediaPos=0.00, window=0, period=0, false]
2024-04-24 16:58:17.547 16638-16638 EventLogger androidx.media3.demo.main D state [eventTime=3.12, mediaPos=0.00, window=0, period=0, IDLE]
Did you build the demo app 'with decoder extensions'? It's a poorly named gradle flavour in this case, since RTMP isn't a decoder, but it is used to control whether the RTMP extension is used: https://github.com/androidx/media/blob/d833d59124d795afc146322fe488b2c0d4b9af6a/demos/main/build.gradle#L92
Docs here: https://developer.android.com/media/media3/exoplayer/demo-application#enabling-bundled-decoders
The provided logs look like RtmpDataSource
isn't being used by the demo app (since it looks like it's trying to open the rtmp://
URI with CronetDataSource
). I assume this is due to hitting rtmpDataSource == null
here:
https://github.com/androidx/media/blob/d833d59124d795afc146322fe488b2c0d4b9af6a/libraries/datasource/src/main/java/androidx/media3/datasource/DefaultDataSource.java#L354-L356
I assume you also see the following line logged:
Attempting to play RTMP stream without depending on the RTMP extension
Hey @xakermonkey. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
Since there haven't been any recent updates here, I am going to close this issue.
@xakermonkey if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.