media icon indicating copy to clipboard operation
media copied to clipboard

RTMP does not output video

Open xakermonkey opened this issue 10 months ago • 6 comments

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

Screenshot_2024-04-24-09-19-21-33_39ea704a41bc6ed35dbc5ea24649ebd7

Bug Report

  • [ ] You will email the zip file produced by adb bugreport to [email protected] after filing this issue.

xakermonkey avatar Apr 24 '24 06:04 xakermonkey

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.

icbaker avatar Apr 24 '24 13:04 icbaker

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.

xakermonkey avatar Apr 24 '24 13:04 xakermonkey

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

icbaker avatar Apr 24 '24 13:04 icbaker

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]

xakermonkey avatar Apr 24 '24 14:04 xakermonkey

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

icbaker avatar Apr 24 '24 14:04 icbaker

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!

google-oss-bot avatar May 14 '24 01:05 google-oss-bot

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.

google-oss-bot avatar May 22 '24 01:05 google-oss-bot