fijkplayer icon indicating copy to clipboard operation
fijkplayer copied to clipboard

[BUG] Stream not found error

Open raphasauer opened this issue 2 years ago • 0 comments

Describe the bug Using the Fijkplayer example, I cannot find an RTSP stream. The connection is logged in my RTSP server:

2023/06/07 16:43:29 INF [RTSP] [conn 192.168.0.5:37462] opened
2023/06/07 16:43:29 INF [RTSP] [session 1d28fa07] created by 192.168.0.5:37462
2023/06/07 16:43:29 INF [RTSP] [session 1d28fa07] is reading from path 'test', with TCP, 1 track (Generic)

But the player gives this:

Syncing files to device SM G950F...
D/J4A     (24900): J4ALoader: OK: 'android.os.Build$VERSION' loaded
D/J4A     (24900): J4ALoader: OK: 'android.os.Build' loaded
D/J4A     (24900): J4ALoader: OK: 'java.nio.Buffer' loaded
D/J4A     (24900): J4ALoader: OK: 'java.nio.ByteBuffer' loaded
D/J4A     (24900): J4ALoader: OK: 'java.util.ArrayList' loaded
I/J4A     (24900): API-Level: 28
D/J4A     (24900): J4ALoader: OK: 'android.media.AudioTrack' loaded
D/J4A     (24900): J4ALoader: OK: 'android.media.MediaCodec$BufferInfo' loaded
D/J4A     (24900): J4ALoader: OK: 'android.media.MediaCodec' loaded
D/J4A     (24900): J4ALoader: OK: 'android.media.MediaFormat' loaded
D/J4A     (24900): J4ALoader: OK: 'android.media.PlaybackParams' loaded
D/J4A     (24900): J4ALoader: OK: 'android.os.Bundle' loaded
D/J4A     (24900): J4ALoader: OK: 'tv.danmaku.ijk.media.player.misc.IMediaDataSource' loaded
D/J4A     (24900): J4ALoader: OK: 'tv.danmaku.ijk.media.player.misc.IAndroidIO' loaded
D/J4A     (24900): J4ALoader: OK: 'tv.danmaku.ijk.media.player.misc.MediaCodecSurface' loaded
D/J4A     (24900): J4ALoader: OK: 'tv.danmaku.ijk.media.player.IjkMediaPlayer' loaded
D/IJKMEDIA(24900): ijkmediaplayer version : 
D/IJKMEDIA(24900): IjkMediaPlayer_native_init
D/IJKMEDIA(24900): IjkMediaPlayer_native_setup
I/IJKMEDIA(24900): av_version_info: ff4.0--ijk0.8.8--20211030--926
I/IJKMEDIA(24900): ijk_version_info: 
D/IJKMEDIA(24900): ffpipeline_create_from_android()
D/IJKMEDIA(24900): ijkmp_set_inject_opaque(0x28b6)
D/IJKMEDIA(24900): ijkmp_set_inject_opaque()=void
D/IJKMEDIA(24900): ijkmp_set_ijkio_inject_opaque(0x28b6)
D/IJKMEDIA(24900): ijkmp_set_ijkio_inject_opaque()=void
D/IJKMEDIA(24900): ijkmp_android_set_mediacodec_select_callback()
D/IJKMEDIA(24900): ffpipeline_set_mediacodec_select_callback
D/IJKMEDIA(24900): ijkmp_android_set_mediacodec_select_callback()=void
D/IJKMEDIA(24900): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(24900): IjkMediaPlayer_setOptionLong
D/vndksupport(24900): Loading /vendor/lib64/hw/[email protected] from current namespace instead of sphal namespace.
D/ViewRootImpl@bccb79e[MainActivity](24900): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x3 surface={valid=true 546134720512} changed=false
I/flutter (24900): [inf] 2023-06-07 15:49:12.669753 [fijk] create player id:2
I/flutter (24900): [inf] 2023-06-07 15:49:12.688465 [fijk] FijkPlayer{id:2} invoke setDataSource rtsp://192.168.0.4:8554/test
D/IJKMEDIA(24900): IjkMediaPlayer_setDataSourceAndHeaders
V/IJKMEDIA(24900): setDataSource: path rtsp://192.168.0.4:8554/test
D/IJKMEDIA(24900): ijkmp_set_data_source(url="rtsp://192.168.0.4:8554/test")
D/IJKMEDIA(24900): ijkmp_set_data_source(url="rtsp://192.168.0.4:8554/test")=0
I/flutter (24900): [inf] 2023-06-07 15:49:12.709327 [fijk] FijkPlayer{id:2} state changed to FijkState.initialized <= FijkState.idle
I/flutter (24900): [inf] 2023-06-07 15:49:12.721893 [fijk] FijkPlayer{id:2} invoke prepareAsync and start #1
I/flutter (24900): [inf] 2023-06-07 15:49:12.723128 [fijk] FijkPlayer{id:2} setOption k:start-on-prepared, v:1
D/IJKMEDIA(24900): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(24900): IjkMediaPlayer_prepareAsync
D/IJKMEDIA(24900): ijkmp_prepare_async()
W/IJKMEDIA(24900): remove 'timeout' option for rtmp.
I/IJKMEDIA(24900): ===== versions =====
I/IJKMEDIA(24900): ijkplayer    : 
I/IJKMEDIA(24900): FFmpeg       : ff4.0--ijk0.8.8--20211030--926
I/IJKMEDIA(24900): libavutil    : 56.14.100
I/IJKMEDIA(24900): libavcodec   : 58.18.100
I/IJKMEDIA(24900): libavformat  : 58.12.100
I/IJKMEDIA(24900): libswscale   : 5.1.100
I/IJKMEDIA(24900): libswresample: 3.1.100
I/IJKMEDIA(24900): ===== options =====
I/IJKMEDIA(24900): player-opts : enable-position-notify       = 1
I/IJKMEDIA(24900): player-opts : start-on-prepared            = 1
I/IJKMEDIA(24900): format-opts : ijkapplication               = 546139561056
I/IJKMEDIA(24900): SDL_RunThread: [24980] ff_msg_loop
I/IJKMEDIA(24900): format-opts : ijkiomanager                 = 546134369280
I/IJKMEDIA(24900): ===================
D/IJKMEDIA(24900): message_loop
D/IJKMEDIA(24900): ijkmp_prepare_async()=0
I/IJKMEDIA(24900): SDL_RunThread: [24981] ff_vout
I/IJKMEDIA(24900): SDL_RunThread: [24982] ff_read
I/flutter (24900): [inf] 2023-06-07 15:49:12.751927 [fijk] FijkPlayer{id:2} state changed to FijkState.asyncPreparing <= FijkState.initialized
W/IJKMEDIA(24900): remove 'timeout' option for rtmp.
I/flutter (24900): [inf] 2023-06-07 15:49:12.752579 [fijk] FijkPlayer{id:2} invoke prepareAsync and start #1 -> done
I/IJKMEDIA(24900): cur ipv4 c_ipaddr = 192.168.0.4
D/IJKMEDIA(24900): FFP_MSG_FLUSH:
I/flutter (24900): [inf] 2023-06-07 15:49:12.770040 [fijk] FijkPlayer{id:2} state changed to FijkState.initialized <= FijkState.idle
I/flutter (24900): [inf] 2023-06-07 15:49:12.770977 [fijk] FijkPlayer{id:2} state changed to FijkState.asyncPreparing <= FijkState.initialized
I/este_exo_playe(24900): Compiler allocated 4MB to compile void android.view.ViewRootImpl.performTraversals()
I/IJKMEDIA(24900): tcp did open uri = tcp://192.168.0.4:8554?timeout=0, ip =  port = 0
W/IJKMEDIA(24900): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
W/IJKMEDIA(24900): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
D/IJKMEDIA(24900): FFP_MSG_OPEN_INPUT:
E/IJKMEDIA(24900): Option ijkapplication not found.
W/IJKMEDIA(24900): Failed to parse extradata
I/IJKMEDIA(24900): max_frame_duration: 10.000
D/IJKMEDIA(24900): FFP_MSG_FIND_STREAM_INFO:
I/IJKMEDIA(24900): Input #0, rtsp, from 'rtsp://192.168.0.4:8554/test':
I/IJKMEDIA(24900):   Metadata:
I/IJKMEDIA(24900):     title           : 
I/IJKMEDIA(24900): Stream
I/IJKMEDIA(24900): 
I/IJKMEDIA(24900):   Duration: 
I/IJKMEDIA(24900): N/A
I/IJKMEDIA(24900): , start: 
I/IJKMEDIA(24900): 0.119611
I/IJKMEDIA(24900): , bitrate: 
I/IJKMEDIA(24900): N/A
I/IJKMEDIA(24900): 
I/IJKMEDIA(24900):     Stream #0:0
I/IJKMEDIA(24900): : Video: mpeg4, none, 1280x720 [SAR 1:1 DAR 16:9]
I/IJKMEDIA(24900): , 
I/IJKMEDIA(24900): 30 tbr, 
I/IJKMEDIA(24900): 90k tbn, 
I/IJKMEDIA(24900): 30 tbc
I/IJKMEDIA(24900): 
W/IJKMEDIA(24900): No codec could be found with id 12
D/IJKMEDIA(24900): FFP_MSG_COMPONENT_OPEN:
F/IJKMEDIA(24900): Failed to open file 'rtsp://192.168.0.4:8554/test' or configure filtergraph
I/IJKMEDIA(24900): SDL_JNI_DetachThreadEnv: [24982]
D/IJKMEDIA(24900): FFP_MSG_ERROR: -1381258232
E/tv.danmaku.ijk.media.player.IjkMediaPlayer(24900): Error (-1381258232,0,Stream not found)
I/flutter (24900): [err] 2023-06-07 15:49:13.133997 [fijk] FijkPlayer{id:2} errorListener: FijkException(-1381258232, Stream not found)
I/flutter (24900): [inf] 2023-06-07 15:49:13.135531 [fijk] FijkPlayer{id:2} state changed to FijkState.error <= FijkState.asyncPreparing

What attempts have you made to resolve this error ? I've tried different options in the player, since I believe it could be just not set up

To Reproduce Just running this simple example. I've tried with a URL I use for testing as well (rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4) but it didn't work either.

import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final FijkPlayer player = FijkPlayer();

  @override
  void initState() {
    super.initState();
    player.setDataSource('rtsp://192.168.0.4:8554/test', autoPlay: true);
    //player.setOption (FijkOption.formatCategory, "rtsp_transport", "udp");
    //player.setOption(FijkOption.playerCategory, "packet-buffering", "0");

  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("Fijkplayer Example")),
        body: Container(
          alignment: Alignment.center,
          child: FijkView(
            player: player,
          ),
        ));
  }

  @override
  void dispose() {
    super.dispose();
    player.release();
  }
}

fijkplayer version fijkplayer: ^0.10.1

Smartphone (please complete the following information):

  • Device: Samsung S8
  • OS: Android 9

raphasauer avatar Jun 07 '23 19:06 raphasauer