Giter Club home page Giter Club logo

fplayer's People

Contributors

biless avatar lucinhu avatar zwfon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fplayer's Issues

使用帮助

您好,我使用了您的代码,但是我在设置播放速度的时候发现当设置的速度值超过1的时候播放速度没有起到作用,如果低于1时是有效的,能帮忙解答一下吗?
player.setSpeed(0.75); 有效
player.setSpeed(0.5); 有效
player.setSpeed(1.5); 无效
player.setSpeed(2.0); 无效

关于亮度调节问题

播放过程中可以自由调节亮度,但是,播放器注销后,亮度会定格,无法通过系统亮度调节进行调节
原因: Fplugin 插件中,设置亮度的函数 禁止将亮度设置为-1(表示跟随系统亮度)。
解决办法: 把-1这个例外包含进参数范围。

无法播放RTSP视频流,总是显示501

我不太清楚还需要设置什么蚕食,setOption哪里讲的太少了

Performing hot reload...
Syncing files to device sdk gphone64 x86 64...
I/flutter (12762): [inf] 2023-10-10 15:38:51.512733 [fplayer] FPlayer{id:7} invoke release #2
I/flutter (12762): [inf] 2023-10-10 15:38:51.515225 [fplayer] FPlayer{id:7} invoke stop
Reloaded 1 of 1482 libraries in 352ms (compile: 27 ms, reload: 147 ms, reassemble: 109 ms).
D/IJKMEDIA(12762): ijkmp_stop()
D/IJKMEDIA(12762): ijkmp_stop()=0
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13267]
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13268]
I/flutter (12762): [inf] 2023-10-10 15:38:51.541066 [fplayer] FPlayer{id:7} state changed to FState.stopped <= FState.completed
D/IJKMEDIA(12762): IjkMediaPlayer_release
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x0)
D/IJKMEDIA(12762): ffpipeline_set_surface()
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x0)=void
D/IJKMEDIA(12762): ijkmp_shutdown_l()
I/IJKMEDIA(12762): convert image convert_frame_count = 0
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13279]
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13271]
W/AudioTrack(12762): restartIfDisabled(45): releaseBuffer() track 0x740f5acdeaf0 disabled due to previous underrun, restarting
D/AudioTrack(12762): stop(45): called with 91328 frames delivered
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13270]
D/IJKMEDIA(12762): ijkmp_shutdown_l()=void
D/IJKMEDIA(12762): ijkmp_dec_ref(): ref=0
D/IJKMEDIA(12762): ijkmp_shutdown_l()
D/IJKMEDIA(12762): ijkmp_shutdown_l()=void
D/EGL_emulation(12762): app_time_stats: avg=46444.16ms min=46444.16ms max=46444.16ms count=1
D/IJKMEDIA(12762): message_loop exit
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13266]
I/flutter (12762): [inf] 2023-10-10 15:38:51.597908 [fplayer] FPlayer{id:7} invoke release #2 -> done
I/flutter (12762): {code: 200, msg: OK, data: [{id: 6, name: GD-WYQ-302418023, neo: GDDXWQF302218023, alias: , updated_at: 2023-09-08T01:14:19Z, status: 0}, {id: 1, name: GD-WYQ-302418023, neo: GDDXWQF302418023, alias: 测试, updated_at: 2023-10-09T10:36:36Z, status: 0}, {id: 9, name: GD-WYQ-302418023, neo: GDDXWQF302218023, alias: , updated_at: 2023-10-09T14:36:53Z, status: 1}]}
I/flutter (12762): ApiResponseEntity.fromJson: Instance of 'DeviceList'
I/flutter (12762): 循环中的 GD-WYQ-302418023
I/flutter (12762): 循环中的 GD-WYQ-302418023
I/flutter (12762): 循环中的 GD-WYQ-302418023
D/IJKMEDIA(12762): IjkMediaPlayer_native_setup
I/IJKMEDIA(12762): av_version_info: ff4.0-20230611
I/IJKMEDIA(12762): ijk_version_info: 
D/IJKMEDIA(12762): ffpipeline_create_from_android()
D/IJKMEDIA(12762): ijkmp_set_inject_opaque(0x35b2)
D/IJKMEDIA(12762): ijkmp_set_inject_opaque()=void
D/IJKMEDIA(12762): ijkmp_set_ijkio_inject_opaque(0x35b2)
D/IJKMEDIA(12762): ijkmp_set_ijkio_inject_opaque()=void
D/IJKMEDIA(12762): ijkmp_android_set_mediacodec_select_callback()
D/IJKMEDIA(12762): ffpipeline_set_mediacodec_select_callback
D/IJKMEDIA(12762): ijkmp_android_set_mediacodec_select_callback()=void
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
D/EGL_emulation(12762): app_time_stats: avg=610.47ms min=5.23ms max=2361.80ms count=4
I/flutter (12762): [inf] 2023-10-10 15:38:54.047585 [fplayer] create player id:8
I/flutter (12762): [inf] 2023-10-10 15:38:54.049787 [fplayer] FPlayer{id:8} invoke setDataSource asset:///assets/file.mp4
D/IJKMEDIA(12762): IjkMediaPlayer_setDataSourceCallback
V/IJKMEDIA(12762): setDataSourceCallback: 13654
D/IJKMEDIA(12762): ijkmp_set_data_source(url="ijkmediadatasource:13654")
D/IJKMEDIA(12762): ijkmp_set_data_source(url="ijkmediadatasource:13654")=0
I/flutter (12762): [inf] 2023-10-10 15:38:54.054493 [fplayer] FPlayer{id:8} state changed to FState.initialized <= FState.idle
I/flutter (12762): [inf] 2023-10-10 15:38:54.057154 [fplayer] FPlayer{id:8} setOption k:cover-after-prepared, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:54.082619 [fplayer] FPlayer{id:8} invoke prepareAsync
D/IJKMEDIA(12762): IjkMediaPlayer_prepareAsync
D/IJKMEDIA(12762): ijkmp_prepare_async()
I/IJKMEDIA(12762): ===== versions =====
I/IJKMEDIA(12762): ijkplayer    : 
I/IJKMEDIA(12762): FFmpeg       : ff4.0-20230611
I/IJKMEDIA(12762): libavutil    : 56.14.100
I/IJKMEDIA(12762): libavcodec   : 58.18.100
I/IJKMEDIA(12762): libavformat  : 58.12.100
I/IJKMEDIA(12762): libswscale   : 5.1.100
I/IJKMEDIA(12762): libswresample: 3.1.100
I/IJKMEDIA(12762): SDL_RunThread: [13294] ff_msg_loop
D/IJKMEDIA(12762): message_loop
I/IJKMEDIA(12762): ===== options =====
I/IJKMEDIA(12762): player-opts : enable-position-notify       = 1
I/IJKMEDIA(12762): player-opts : start-on-prepared            = 0
I/IJKMEDIA(12762): player-opts : cover-after-prepared         = 1
I/IJKMEDIA(12762): format-opts : ijkapplication               = 127607149160832
I/IJKMEDIA(12762): format-opts : ijkiomanager                 = 127611712465392
I/IJKMEDIA(12762): ===================
D/IJKMEDIA(12762): FFP_MSG_FLUSH:
D/IJKMEDIA(12762): ijkmp_prepare_async()=0
I/IJKMEDIA(12762): SDL_RunThread: [13295] ff_vout
I/IJKMEDIA(12762): SDL_RunThread: [13296] ff_read
E/IJKMEDIA(12762): Option ijkapplication not found.
D/IJKMEDIA(12762): FFP_MSG_OPEN_INPUT:
I/flutter (12762): [inf] 2023-10-10 15:38:54.108984 [fplayer] FPlayer{id:8} state changed to FState.asyncPreparing <= FState.initialized
I/flutter (12762): [inf] 2023-10-10 15:38:54.116369 [fplayer] FPlayer{id:8} state changed to FState.initialized <= FState.idle
I/IJKMEDIA(12762): max_frame_duration: 10.000
I/IJKMEDIA(12762): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ijkmediadatasource:13654':
I/IJKMEDIA(12762):   Metadata:
I/IJKMEDIA(12762):     major_brand     : 
I/IJKMEDIA(12762): isom
I/IJKMEDIA(12762): 
I/flutter (12762): [inf] 2023-10-10 15:38:54.124912 [fplayer] FPlayer{id:8} state changed to FState.asyncPreparing <= FState.initialized
I/IJKMEDIA(12762):     minor_version   : 
I/IJKMEDIA(12762): 512
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     compatible_brands: 
I/IJKMEDIA(12762): isomiso2avc1mp41
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     encoder         : 
I/IJKMEDIA(12762): Lavf58.20.100
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):   Duration: 
I/IJKMEDIA(12762): 00:03:44.88
I/IJKMEDIA(12762): , start: 
I/IJKMEDIA(12762): 0.000000
I/IJKMEDIA(12762): , bitrate: 
I/IJKMEDIA(12762): 1269 kb/s
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     Stream #0:0
I/IJKMEDIA(12762): (und)
I/IJKMEDIA(12762): : Video: h264 (avc1 / 0x31637661), yuv420p, 960x544, 1138 kb/s
I/IJKMEDIA(12762): , SAR 136:135 DAR 16:9
I/IJKMEDIA(12762): , 
I/IJKMEDIA(12762): 25 fps, 
I/IJKMEDIA(12762): 25 tbr, 
I/IJKMEDIA(12762): 12800 tbn, 
I/IJKMEDIA(12762): 50 tbc
I/IJKMEDIA(12762):  (default)
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     Metadata:
I/IJKMEDIA(12762):       handler_name    : 
I/IJKMEDIA(12762): ISO Media file produced by Google Inc. Created on: 07/13/2023.
I/IJKMEDIA(12762): 
D/IJKMEDIA(12762): FFP_MSG_FIND_STREAM_INFO:
I/IJKMEDIA(12762):     Stream #0:1
I/IJKMEDIA(12762): (und)
I/IJKMEDIA(12762): : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 126 kb/s
I/IJKMEDIA(12762):  (default)
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     Metadata:
I/IJKMEDIA(12762):       handler_name    : 
I/IJKMEDIA(12762): ISO Media file produced by Google Inc. Created on: 07/13/2023.
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762): SDL_Android_AudioTrack: CHANNEL_OUT_STEREO
I/IJKMEDIA(12762): SDL_Android_AudioTrack: ENCODING_PCM_16BIT
W/AudioTrack(12762): Use of stream types is deprecated for operations other than volume control
W/AudioTrack(12762): See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
I/IJKMEDIA(12762): SDL_Android_AudioTrack_new_from_spec: init volume as 1.000000/(0.000000,1.000000)
I/IJKMEDIA(12762): audio_session_id = 369
I/IJKMEDIA(12762): AudioCodec: avcodec, aac
I/IJKMEDIA(12762): SDL_RunThread: [13298] ff_aout_android
I/IJKMEDIA(12762): SDL_RunThread: [13299] ff_audio_dec
I/IJKMEDIA(12762): VideoCodec: avcodec, h264
W/IJKMEDIA(12762): fps: 25.000000 (normal)
W/IJKMEDIA(12762): fps: 25.000000 (normal)
I/IJKMEDIA(12762): SDL_RunThread: [13307] ff_video_dec
D/IJKMEDIA(12762): FFP_MSG_COMPONENT_OPEN:
D/IJKMEDIA(12762): FFP_MSG_VIDEO_SIZE_CHANGED: 960, 544
D/IJKMEDIA(12762): FFP_MSG_SAR_CHANGED: 0, 1
D/IJKMEDIA(12762): ijkmp_get_msg: FFP_MSG_PREPARED
D/IJKMEDIA(12762): FFP_MSG_PREPARED:
D/IJKMEDIA(12762): FFP_MSG_BUFFERING_START:
D/IJKMEDIA(12762): FFP_MSG_VIDEO_ROTATION_CHANGED: 0
I/flutter (12762): [inf] 2023-10-10 15:38:54.191234 [fplayer] FPlayer{id:8} prepared duration 0:03:44.880000
I/flutter (12762): [inf] 2023-10-10 15:38:54.194816 [fplayer] FPlayer{id:8} setupSurface
D/IJKMEDIA(12762): IjkMediaPlayer_setVideoSurface
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x7ffcac72a18c)
D/IJKMEDIA(12762): ffpipeline_set_surface()
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x7ffcac72a18c)=void
D/IJKMEDIA(12762): SDL_VoutFFmpeg_CreateOverlay(w=960, h=544, fmt=RV32(0x32335652, dp=0x740f6ac8d680)
D/IJKMEDIA(12762): FFP_MSG_VIDEO_SIZE_CHANGED: 960, 544
D/IJKMEDIA(12762): Video: first frame decoded
D/IJKMEDIA(12762): SDL_VoutFFmpeg_CreateOverlay(w=960, h=544, fmt=RV32(0x32335652, dp=0x740f6ac8d680)
D/IJKMEDIA(12762): FFP_MSG_VIDEO_DECODED_START:
D/IJKMEDIA(12762): FFP_MSG_VIDEO_SIZE_CHANGED: 960, 544
D/IJKMEDIA(12762): ANativeWindow_setBuffersGeometry: w=1, h=1, f=�(0x1) => w=960, h=544, f=RV32(0x32335652)
D/IJKMEDIA(12762): FFP_MSG_VIDEO_SIZE_CHANGED: 960, 544
D/IJKMEDIA(12762): FFP_MSG_BUFFERING_END:
I/flutter (12762): [inf] 2023-10-10 15:38:54.256791 [fplayer] FPlayer{id:8} rotate degree 0
I/flutter (12762): [inf] 2023-10-10 15:38:54.262491 [fplayer] FPlayer{id:8} size changed (960.0, 544.0)
I/flutter (12762): [inf] 2023-10-10 15:38:54.265338 [fplayer] FPlayer{id:8} setupSurface
I/flutter (12762): [inf] 2023-10-10 15:38:54.267461 [fplayer] FPlayer{id:8} state changed to FState.prepared <= FState.asyncPreparing
I/flutter (12762): [inf] 2023-10-10 15:38:54.268877 [fplayer] FPlayer{id:8} setupSurface
I/flutter (12762): [inf] 2023-10-10 15:38:54.270225 [fplayer] FPlayer{id:8} state changed to FState.paused <= FState.prepared
I/flutter (12762): [inf] 2023-10-10 15:38:54.271941 [fplayer] FPlayer{id:8} setupSurface
I/flutter (12762): [inf] 2023-10-10 15:38:54.275121 [fplayer] view setup, vid:5
I/IJKMEDIA(12762): first video frame rendered, ret 0
D/IJKMEDIA(12762): SDL_VoutFFmpeg_CreateOverlay(w=960, h=544, fmt=RV32(0x32335652, dp=0x740f6ac8d680)
D/IJKMEDIA(12762): FFP_MSG_VIDEO_RENDERING_START:
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(12762): Info: MEDIA_INFO_VIDEO_RENDERING_START
I/flutter (12762): [inf] 2023-10-10 15:38:54.283198 [fplayer] FPlayer{id:8} size changed (960.0, 544.0)
I/flutter (12762): [inf] 2023-10-10 15:38:54.285282 [fplayer] FPlayer{id:8} size changed (960.0, 544.0)
I/flutter (12762): [inf] 2023-10-10 15:38:54.288257 [fplayer] FPlayer{id:8} size changed (960.0, 544.0)
I/flutter (12762): [inf] 2023-10-10 15:38:54.296343 [fplayer] view setup, vid:5
I/flutter (12762): [inf] 2023-10-10 15:38:54.298499 [fplayer] view setup, vid:5
I/flutter (12762): [inf] 2023-10-10 15:38:54.299864 [fplayer] view setup, vid:5
I/flutter (12762): [inf] 2023-10-10 15:38:54.301140 [fplayer] FPlayer{id:8} video rendering started
D/EGL_emulation(12762): app_time_stats: avg=63.70ms min=6.59ms max=151.60ms count=16
D/EGL_emulation(12762): app_time_stats: avg=62.40ms min=48.32ms max=67.43ms count=16
I/flutter (12762): [inf] 2023-10-10 15:38:56.584809 [fplayer] FPlayer{id:8} invoke release #1
I/flutter (12762): [inf] 2023-10-10 15:38:56.588218 [fplayer] FPlayer{id:8} invoke stop
D/IJKMEDIA(12762): ijkmp_stop()
D/IJKMEDIA(12762): ijkmp_stop()=0
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13296]
I/flutter (12762): [inf] 2023-10-10 15:38:56.602612 [fplayer] FPlayer{id:8} state changed to FState.stopped <= FState.paused
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13295]
D/IJKMEDIA(12762): IjkMediaPlayer_release
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x0)
D/IJKMEDIA(12762): ffpipeline_set_surface()
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x0)=void
D/IJKMEDIA(12762): ijkmp_shutdown_l()
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13299]
I/IJKMEDIA(12762): first audio frame rendered
D/IJKMEDIA(12762): FFP_MSG_AUDIO_RENDERING_START:
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13298]
I/IJKMEDIA(12762): convert image convert_frame_count = 0
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13307]
I/IJKMEDIA(12762): SDL_Overlay(ffmpeg): overlay_free_l(0x740edacb2a10)
I/IJKMEDIA(12762): SDL_Overlay(ffmpeg): overlay_free_l(0x740edac802e0)
I/IJKMEDIA(12762): SDL_Overlay(ffmpeg): overlay_free_l(0x740edac814e0)
D/IJKMEDIA(12762): ijkmp_shutdown_l()=void
D/IJKMEDIA(12762): ijkmp_dec_ref(): ref=0
D/IJKMEDIA(12762): ijkmp_shutdown_l()
D/IJKMEDIA(12762): ijkmp_shutdown_l()=void
D/IJKMEDIA(12762): message_loop exit
I/IJKMEDIA(12762): SDL_JNI_DetachThreadEnv: [13294]
W/tv.danmaku.ijk.media.player.IjkMediaPlayer(12762): IjkMediaPlayer went away with unhandled events
W/tv.danmaku.ijk.media.player.IjkMediaPlayer(12762): IjkMediaPlayer went away with unhandled events
I/flutter (12762): [inf] 2023-10-10 15:38:56.640855 [fplayer] FPlayer{id:8} invoke release #1 -> done
I/flutter (12762): {code: 200, msg: OK, data: b5f032a28808977e/1696952338/online}
I/flutter (12762): ApiResponseEntity.fromJson: b5f032a28808977e/1696952338/online
I/flutter (12762): URL: rtsp://10.0.2.2/devices/b5f032a28808977e/1696952338/online}
D/IJKMEDIA(12762): IjkMediaPlayer_native_setup
I/IJKMEDIA(12762): av_version_info: ff4.0-20230611
I/IJKMEDIA(12762): ijk_version_info: 
D/IJKMEDIA(12762): ffpipeline_create_from_android()
D/IJKMEDIA(12762): ijkmp_set_inject_opaque(0x3612)
D/IJKMEDIA(12762): ijkmp_set_inject_opaque()=void
D/IJKMEDIA(12762): ijkmp_set_ijkio_inject_opaque(0x3612)
D/IJKMEDIA(12762): ijkmp_set_ijkio_inject_opaque()=void
D/IJKMEDIA(12762): ijkmp_android_set_mediacodec_select_callback()
D/IJKMEDIA(12762): ffpipeline_set_mediacodec_select_callback
D/IJKMEDIA(12762): ijkmp_android_set_mediacodec_select_callback()=void
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.622749 [fplayer] create player id:9
I/flutter (12762): [inf] 2023-10-10 15:38:57.625445 [fplayer] FPlayer{id:9} invoke setDataSource rtsp://10.0.2.2/devices/b5f032a28808977e/1696946385/online
I/flutter (12762): [inf] 2023-10-10 15:38:57.626938 [fplayer] FPlayer{id:9} setOption k:enable-snapshot, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setDataSourceAndHeaders
V/IJKMEDIA(12762): setDataSource: path rtsp://10.0.2.2/devices/b5f032a28808977e/1696946385/online
D/IJKMEDIA(12762): ijkmp_set_data_source(url="rtsp://10.0.2.2/devices/b5f032a28808977e/1696946385/online")
D/IJKMEDIA(12762): ijkmp_set_data_source(url="rtsp://10.0.2.2/devices/b5f032a28808977e/1696946385/online")=0
I/flutter (12762): [inf] 2023-10-10 15:38:57.628391 [fplayer] FPlayer{id:9} setOption k:request-screen-on, v:1
D/EGL_emulation(12762): app_time_stats: avg=78.98ms min=2.20ms max=1030.38ms count=17
I/flutter (12762): [inf] 2023-10-10 15:38:57.630984 [fplayer] FPlayer{id:9} setOption k:request-audio-focus, v:1
I/flutter (12762): [inf] 2023-10-10 15:38:57.632602 [fplayer] FPlayer{id:9} setOption k:reconnect, v:20
I/flutter (12762): [inf] 2023-10-10 15:38:57.634181 [fplayer] FPlayer{id:9} setOption k:framedrop, v:20
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.635626 [fplayer] FPlayer{id:9} setOption k:enable-accurate-seek, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.638024 [fplayer] FPlayer{id:9} setOption k:mediacodec, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.638479 [fplayer] FPlayer{id:9} setOption k:packet-buffering, v:0
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.642448 [fplayer] FPlayer{id:9} setOption k:soundtouch, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
I/flutter (12762): [inf] 2023-10-10 15:38:57.646182 [fplayer] FPlayer{id:9} state changed to FState.initialized <= FState.idle
I/flutter (12762): [inf] 2023-10-10 15:38:57.648645 [fplayer] FPlayer{id:9} invoke prepareAsync and start #1
I/flutter (12762): [inf] 2023-10-10 15:38:57.649491 [fplayer] FPlayer{id:9} setOption k:start-on-prepared, v:1
D/IJKMEDIA(12762): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(12762): IjkMediaPlayer_setOption
D/IJKMEDIA(12762): IjkMediaPlayer_prepareAsync
D/IJKMEDIA(12762): ijkmp_prepare_async()
W/IJKMEDIA(12762): remove 'timeout' option for rtmp.
I/IJKMEDIA(12762): ===== versions =====
I/IJKMEDIA(12762): ijkplayer    : 
I/IJKMEDIA(12762): FFmpeg       : ff4.0-20230611
I/IJKMEDIA(12762): libavutil    : 56.14.100
I/IJKMEDIA(12762): SDL_RunThread: [13316] ff_msg_loop
D/IJKMEDIA(12762): message_loop
I/IJKMEDIA(12762): libavcodec   : 58.18.100
I/IJKMEDIA(12762): libavformat  : 58.12.100
I/IJKMEDIA(12762): libswscale   : 5.1.100
I/IJKMEDIA(12762): libswresample: 3.1.100
I/IJKMEDIA(12762): ===== options =====
I/IJKMEDIA(12762): player-opts : enable-position-notify       = 1
I/IJKMEDIA(12762): player-opts : soundtouch                   = 1
I/IJKMEDIA(12762): player-opts : reconnect                    = 20
I/IJKMEDIA(12762): player-opts : framedrop                    = 20
I/IJKMEDIA(12762): player-opts : enable-accurate-seek         = 1
I/IJKMEDIA(12762): player-opts : mediacodec                   = 1
I/IJKMEDIA(12762): player-opts : packet-buffering             = 0
I/IJKMEDIA(12762): player-opts : start-on-prepared            = 1
I/IJKMEDIA(12762): player-opts : overlay-format               = fcc-_es2
I/IJKMEDIA(12762): format-opts : ijkapplication               = 127607149090944
D/IJKMEDIA(12762): FFP_MSG_FLUSH:
I/IJKMEDIA(12762): format-opts : ijkiomanager                 = 127611712460064
I/IJKMEDIA(12762): ===================
D/IJKMEDIA(12762): ijkmp_prepare_async()=0
I/IJKMEDIA(12762): SDL_RunThread: [13318] ff_read
W/IJKMEDIA(12762): remove 'timeout' option for rtmp.
I/IJKMEDIA(12762): SDL_RunThread: [13317] ff_vout
I/IJKMEDIA(12762): cur ipv4 c_ipaddr = 10.0.2.2
I/IJKMEDIA(12762): tcp did open uri = tcp://10.0.2.2:554?timeout=0, ip =  port = 0
I/flutter (12762): [inf] 2023-10-10 15:38:57.688095 [fplayer] FPlayer{id:9} state changed to FState.asyncPreparing <= FState.initialized
I/flutter (12762): [inf] 2023-10-10 15:38:57.691424 [fplayer] FPlayer{id:9} invoke prepareAsync and start #1 -> done
I/flutter (12762): [inf] 2023-10-10 15:38:57.693544 [fplayer] FPlayer{id:9} state changed to FState.initialized <= FState.idle
I/flutter (12762): [inf] 2023-10-10 15:38:57.695376 [fplayer] FPlayer{id:9} state changed to FState.asyncPreparing <= FState.initialized
W/IJKMEDIA(12762): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
W/IJKMEDIA(12762): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
W/IJKMEDIA(12762): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
W/IJKMEDIA(12762): 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
E/IJKMEDIA(12762): Option ijkapplication not found.
D/IJKMEDIA(12762): FFP_MSG_OPEN_INPUT:
D/EGL_emulation(12762): app_time_stats: avg=19.96ms min=9.80ms max=37.38ms count=45
D/EGL_emulation(12762): app_time_stats: avg=15.32ms min=6.48ms max=39.34ms count=56
D/EGL_emulation(12762): app_time_stats: avg=12.09ms min=6.32ms max=21.15ms count=61
D/EGL_emulation(12762): app_time_stats: avg=13.48ms min=4.87ms max=26.11ms count=59
D/EGL_emulation(12762): app_time_stats: avg=14.85ms min=7.49ms max=22.29ms count=59
D/EGL_emulation(12762): app_time_stats: avg=13.53ms min=5.52ms max=23.60ms count=56
D/EGL_emulation(12762): app_time_stats: avg=12.25ms min=5.94ms max=21.70ms count=59
D/EGL_emulation(12762): app_time_stats: avg=13.64ms min=5.96ms max=27.90ms count=56
D/EGL_emulation(12762): app_time_stats: avg=14.48ms min=7.06ms max=18.10ms count=61
D/EGL_emulation(12762): app_time_stats: avg=12.61ms min=6.07ms max=22.48ms count=58
W/IJKMEDIA(12762): UDP timeout, retrying with TCP
E/IJKMEDIA(12762): method PAUSE failed: 501 Not Implemented
W/IJKMEDIA(12762): Could not find codec parameters for stream 1 (Video: h264, none): unspecified size
W/IJKMEDIA(12762): Consider increasing the value for the 'analyzeduration' and 'probesize' options
I/IJKMEDIA(12762): max_frame_duration: 10.000
I/IJKMEDIA(12762): Input #0, rtsp, from 'rtsp://10.0.2.2/devices/b5f032a28808977e/1696946385/online':
I/IJKMEDIA(12762):   Metadata:
I/IJKMEDIA(12762):     title           : 
I/IJKMEDIA(12762): Stream
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):   Duration: 
I/IJKMEDIA(12762): N/A
I/IJKMEDIA(12762): , bitrate: 
D/IJKMEDIA(12762): FFP_MSG_FIND_STREAM_INFO:
I/IJKMEDIA(12762): N/A
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     Stream #0:0
I/IJKMEDIA(12762): : Audio: aac, 44100 Hz, stereo, fltp
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762):     Stream #0:1
I/IJKMEDIA(12762): : Video: h264, none
I/IJKMEDIA(12762): , 
I/IJKMEDIA(12762): 90k tbr, 
I/IJKMEDIA(12762): 90k tbn, 
I/IJKMEDIA(12762): 180k tbc
I/IJKMEDIA(12762): 
I/IJKMEDIA(12762): SDL_Android_AudioTrack: CHANNEL_OUT_STEREO
I/IJKMEDIA(12762): SDL_Android_AudioTrack: ENCODING_PCM_16BIT
W/AudioTrack(12762): Use of stream types is deprecated for operations other than volume control
W/AudioTrack(12762): See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
I/IJKMEDIA(12762): SDL_Android_AudioTrack_new_from_spec: init volume as 1.000000/(0.000000,1.000000)
I/IJKMEDIA(12762): audio_session_id = 377
I/IJKMEDIA(12762): AudioCodec: avcodec, aac
I/IJKMEDIA(12762): SDL_RunThread: [13322] ff_audio_dec
I/IJKMEDIA(12762): SDL_RunThread: [13321] ff_aout_android
D/IJKMEDIA(12762): ffpipenode_create_video_decoder_from_android_mediacodec()
I/IJKMEDIA(12762): API-Level: 34
W/IJKMEDIA(12762): ffpipenode_create_video_decoder_from_android_mediacodec: MediaCodec: (-99) unknown profile: disabled
I/IJKMEDIA(12762): VideoCodec: avcodec, h264
W/IJKMEDIA(12762): fps: 90000.000000 (normal)
I/IJKMEDIA(12762): SDL_RunThread: [13330] ff_video_dec
D/IJKMEDIA(12762): FFP_MSG_COMPONENT_OPEN:
D/IJKMEDIA(12762): FFP_MSG_VIDEO_SIZE_CHANGED: 0, 0
D/IJKMEDIA(12762): FFP_MSG_SAR_CHANGED: 0, 1
D/IJKMEDIA(12762): ijkmp_get_msg: FFP_MSG_PREPARED
D/IJKMEDIA(12762): FFP_MSG_PREPARED:
D/IJKMEDIA(12762): FFP_MSG_VIDEO_ROTATION_CHANGED: 0
I/flutter (12762): [inf] 2023-10-10 15:39:07.888376 [fplayer] FPlayer{id:9} prepared duration 0:00:00.000000
I/FPLAYER (12762): audioFocus request state:false
D/IJKMEDIA(12762): FFP_MSG_AUDIO_RENDERING_START:
I/IJKMEDIA(12762): first audio frame rendered
I/flutter (12762): [inf] 2023-10-10 15:39:07.891868 [fplayer] FPlayer{id:9} setupSurface
I/flutter (12762): [inf] 2023-10-10 15:39:07.894585 [fplayer] FPlayer{id:9} rotate degree 0
I/flutter (12762): [inf] 2023-10-10 15:39:07.897161 [fplayer] FPlayer{id:9} state changed to FState.prepared <= FState.asyncPreparing
I/flutter (12762): [inf] 2023-10-10 15:39:07.898250 [fplayer] FPlayer{id:9} setupSurface
D/IJKMEDIA(12762): IjkMediaPlayer_setOption
D/IJKMEDIA(12762): IjkMediaPlayer_setMediaCodecSurface
D/IJKMEDIA(12762): ijkmp_set_android_surface(amc_surface=0x7ffcac72a18c)
D/IJKMEDIA(12762): ffpipeline_set_surface()
D/IJKMEDIA(12762): ijkmp_set_android_surface(amc_surface=0x7ffcac72a18c)
D/IJKMEDIA(12762): IjkMediaPlayer_setVideoSurface
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x7ffcac72a18c)
D/IJKMEDIA(12762): ijkmp_set_android_surface(surface=0x7ffcac72a18c)=void
D/IJKMEDIA(12762): IjkMediaPlayer_setOption
I/flutter (12762): [inf] 2023-10-10 15:39:07.911367 [fplayer] FPlayer{id:9} state changed to FState.started <= FState.prepared
I/flutter (12762): [inf] 2023-10-10 15:39:07.912807 [fplayer] FPlayer{id:9} setupSurface
D/IJKMEDIA(12762): IjkMediaPlayer_setOption
I/flutter (12762): [inf] 2023-10-10 15:39:07.920325 [fplayer] FPlayer{id:9} audio rendering started
I/flutter (12762): [inf] 2023-10-10 15:39:07.922432 [fplayer] FPlayer{id:9} setupSurface
D/IJKMEDIA(12762): IjkMediaPlayer_setOption
I/flutter (12762): [inf] 2023-10-10 15:39:07.929543 [fplayer] view setup, vid:6
I/flutter (12762): [inf] 2023-10-10 15:39:07.931882 [fplayer] view setup, vid:6
I/flutter (12762): [inf] 2023-10-10 15:39:07.935445 [fplayer] view setup, vid:6
I/flutter (12762): [inf] 2023-10-10 15:39:07.936334 [fplayer] view setup, vid:6
D/EGL_emulation(12762): app_time_stats: avg=58.51ms min=9.15ms max=149.24ms count=19
D/EGL_emulation(12762): app_time_stats: avg=131.14ms min=121.44ms max=135.15ms count=8
W/IJKMEDIA(12762): UDP timeout, retrying with TCP
E/IJKMEDIA(12762): method PAUSE failed: 501 Not Implemented
W/IJKMEDIA(12762): UDP timeout, retrying with TCP
E/IJKMEDIA(12762): method PAUSE failed: 501 Not Implemented
W/IJKMEDIA(12762): UDP timeout, retrying with TCP
E/IJKMEDIA(12762): method PAUSE failed: 501 Not Implemented
W/IJKMEDIA(12762): UDP timeout, retrying with TCP
E/IJKMEDIA(12762): method PAUSE failed: 501 Not Implemented
W/IJKMEDIA(12762): msg complete, duration 0. position 0
I/IJKMEDIA(12762): ffp_toggle_buffering: completed: OK
D/IJKMEDIA(12762): ijkmp_get_msg: FFP_MSG_COMPLETED
D/IJKMEDIA(12762): FFP_MSG_COMPLETED:
I/flutter (12762): [inf] 2023-10-10 15:39:58.299200 [fplayer] FPlayer{id:9} state changed to FState.completed <= FState.started
D/EGL_emulation(12762): app_time_stats: avg=48415.84ms min=48415.84ms max=48415.84ms count=1

使用帮助

作者你好,我如何能禁用缓冲。我只想预览第一帧。无需提前缓冲后面的帧数。

关于视频亮度调节问题

关于视频亮度调节问题

全屏的时候比如我开到最亮 缩小的时候 也会手机最亮 同理最小也是

9d1b862c241d19c6089a72a0af9e1407.mp4

iphone15pro ios17 报错

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(UNAVAILABLE, Battery info unavailable, null, null)
#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652:7)
#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:310:18)

#2 __FPanel2State.getBatteryLevel (package:flutter_rural_revitalization/views/fvideo/MyfPanelBuilder.dart:414:19)

HLS视频播放时没有声音

我的HLS视频的TS文件在FFmpegFFplay中播放并没有问题,声音和视频都正常,但是在Fplayer中播放就出现了问题,视频正常播放但是没有声音

音频编码格式是:ACC 编码

日志:

====================================================================================================
I/flutter ( 4406): {code: 200, msg: OK, data: http://127.0.0.1:8089/record/test-1/hhh.m3u8}
I/flutter ( 4406): ApiResponseEntity.fromJson: http://127.0.0.1:8089/record/test-1/hhh.m3u8
I/flutter ( 4406): [war] 2023-11-06 10:04:34.917073 [fplayer] call setDataSource with both autoPlay and showCover true, showCover will be ignored
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.917524 [fplayer] FPlayer{id:4} invoke setDataSource http://10.0.2.2:8089/record/test-1/hhh.m3u8
I/flutter ( 4406): [err] 2023-11-06 10:04:34.918575 [fplayer] FPlayer{id:4} invoke start invalid state:FState.idle
D/IJKMEDIA( 4406): IjkMediaPlayer_setDataSourceAndHeaders
V/IJKMEDIA( 4406): setDataSource: path http://10.0.2.2:8089/record/test-1/hhh.m3u8
D/IJKMEDIA( 4406): ijkmp_set_data_source(url="http://10.0.2.2:8089/record/test-1/hhh.m3u8")
D/IJKMEDIA( 4406): ijkmp_set_data_source(url="http://10.0.2.2:8089/record/test-1/hhh.m3u8")=0
E/flutter ( 4406): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: call start on invalid state FState.idle
E/flutter ( 4406): 
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.928207 [fplayer] FPlayer{id:4} state changed to FState.initialized <= FState.idle
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.941300 [fplayer] FPlayer{id:4} invoke prepareAsync and start #1
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.941854 [fplayer] FPlayer{id:4} setOption k:start-on-prepared, v:1
D/IJKMEDIA( 4406): IjkMediaPlayer_setOptionLong
D/IJKMEDIA( 4406): IjkMediaPlayer_prepareAsync
D/IJKMEDIA( 4406): ijkmp_prepare_async()
I/IJKMEDIA( 4406): ===== versions =====
I/IJKMEDIA( 4406): ijkplayer    : 
I/IJKMEDIA( 4406): FFmpeg       : ff4.0-20230611
I/IJKMEDIA( 4406): libavutil    : 56.14.100
I/IJKMEDIA( 4406): libavcodec   : 58.18.100
I/IJKMEDIA( 4406): libavformat  : 58.12.100
I/IJKMEDIA( 4406): SDL_RunThread: [4518] ff_msg_loop
D/IJKMEDIA( 4406): message_loop
I/IJKMEDIA( 4406): libswscale   : 5.1.100
D/IJKMEDIA( 4406): FFP_MSG_FLUSH:
I/IJKMEDIA( 4406): libswresample: 3.1.100
I/IJKMEDIA( 4406): ===== options =====
I/IJKMEDIA( 4406): player-opts : enable-position-notify       = 1
I/IJKMEDIA( 4406): player-opts : mediacodec-handle-resolution-change = 1
I/IJKMEDIA( 4406): player-opts : packet-buffering             = 0
I/IJKMEDIA( 4406): player-opts : framedrop                    = 1
I/IJKMEDIA( 4406): player-opts : max-fps                      = 30
I/IJKMEDIA( 4406): player-opts : mediacodec                   = 1
I/IJKMEDIA( 4406): player-opts : mediacodec-auto-rotate       = 1
I/IJKMEDIA( 4406): player-opts : start-on-prepared            = 1
I/IJKMEDIA( 4406): format-opts : ijkapplication               = 129028648340608
I/IJKMEDIA( 4406): format-opts : ijkiomanager                 = 129030527500848
I/IJKMEDIA( 4406): format-opts : analyzemaxduration           = 100
I/IJKMEDIA( 4406): format-opts : probesize                    = 10240
I/IJKMEDIA( 4406): format-opts : flush_packets                = 1
I/IJKMEDIA( 4406): format-opts : rtsp_transport               = tcp
I/IJKMEDIA( 4406): ===================
D/IJKMEDIA( 4406): ijkmp_prepare_async()=0
I/IJKMEDIA( 4406): SDL_RunThread: [4519] ff_vout
I/IJKMEDIA( 4406): SDL_RunThread: [4520] ff_read
I/IJKMEDIA( 4406): cur ipv4 c_ipaddr = 10.0.2.2
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.954314 [fplayer] FPlayer{id:4} state changed to FState.asyncPreparing <= FState.initialized
I/IJKMEDIA( 4406): tcp did open uri = tcp://10.0.2.2:8089, ip =  port = 0
I/IJKMEDIA( 4406): request: GET /record/test-1/hhh.m3u8 HTTP/1.1
I/IJKMEDIA( 4406): User-Agent: Lavf/58.12.100
I/IJKMEDIA( 4406): Accept: */*
I/IJKMEDIA( 4406): Range: bytes=0-
I/IJKMEDIA( 4406): Connection: close
I/IJKMEDIA( 4406): Host: 10.0.2.2:8089
I/IJKMEDIA( 4406): Icy-MetaData: 1
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): 
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.958884 [fplayer] FPlayer{id:4} invoke prepareAsync and start #1 -> done
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.960145 [fplayer] FPlayer{id:4} state changed to FState.initialized <= FState.idle
I/flutter ( 4406): [inf] 2023-11-06 10:04:34.961347 [fplayer] FPlayer{id:4} state changed to FState.asyncPreparing <= FState.initialized
I/IJKMEDIA( 4406): header='HTTP/1.1 206 Partial Content'
I/IJKMEDIA( 4406): header='Accept-Ranges: bytes'
I/IJKMEDIA( 4406): header='Content-Length: 175'
I/IJKMEDIA( 4406): header='Content-Range: bytes 0-174/175'
I/IJKMEDIA( 4406): header='Content-Type: text/plain; charset=utf-8'
I/IJKMEDIA( 4406): header='Last-Modified: Mon, 06 Nov 2023 04:33:22 GMT'
I/IJKMEDIA( 4406): header='Date: Mon, 06 Nov 2023 10:04:36 GMT'
I/IJKMEDIA( 4406): header='Connection: close'
I/IJKMEDIA( 4406): header=''
I/IJKMEDIA( 4406): Opening 'http://10.0.2.2:8089/record/test-1/1698927386.ts' for reading
I/IJKMEDIA( 4406): cur ipv4 c_ipaddr = 10.0.2.2
I/IJKMEDIA( 4406): tcp did open uri = tcp://10.0.2.2:8089, ip =  port = 0
I/IJKMEDIA( 4406): request: GET /record/test-1/1698927386.ts HTTP/1.1
I/IJKMEDIA( 4406): User-Agent: Lavf/58.12.100
I/IJKMEDIA( 4406): Accept: */*
I/IJKMEDIA( 4406): Connection: keep-alive
I/IJKMEDIA( 4406): Host: 10.0.2.2:8089
I/IJKMEDIA( 4406): Icy-MetaData: 1
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): header='HTTP/1.1 200 OK'
I/IJKMEDIA( 4406): header='Accept-Ranges: bytes'
I/IJKMEDIA( 4406): header='Content-Length: 11987820'
I/IJKMEDIA( 4406): header='Content-Type: text/plain; charset=utf-8'
I/IJKMEDIA( 4406): header='Last-Modified: Thu, 02 Nov 2023 12:16:35 GMT'
I/IJKMEDIA( 4406): header='Date: Mon, 06 Nov 2023 10:04:36 GMT'
I/IJKMEDIA( 4406): header=''
I/IJKMEDIA( 4406): Opening 'http://10.0.2.2:8089/record/test-1/1698927395.ts' for reading
I/IJKMEDIA( 4406): cur ipv4 c_ipaddr = 10.0.2.2
I/IJKMEDIA( 4406): tcp did open uri = tcp://10.0.2.2:8089, ip =  port = 0
I/IJKMEDIA( 4406): request: GET /record/test-1/1698927395.ts HTTP/1.1
I/IJKMEDIA( 4406): User-Agent: Lavf/58.12.100
I/IJKMEDIA( 4406): Accept: */*
I/IJKMEDIA( 4406): Connection: keep-alive
I/IJKMEDIA( 4406): Host: 10.0.2.2:8089
I/IJKMEDIA( 4406): Icy-MetaData: 1
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): header='HTTP/1.1 200 OK'
I/IJKMEDIA( 4406): header='Accept-Ranges: bytes'
I/IJKMEDIA( 4406): header='Content-Length: 11195400'
I/IJKMEDIA( 4406): header='Content-Type: text/plain; charset=utf-8'
I/IJKMEDIA( 4406): header='Last-Modified: Thu, 02 Nov 2023 12:16:43 GMT'
I/IJKMEDIA( 4406): header='Date: Mon, 06 Nov 2023 10:04:36 GMT'
I/IJKMEDIA( 4406): header=''
E/IJKMEDIA( 4406): Option ijk-http-error not found.
D/IJKMEDIA( 4406): FFP_MSG_OPEN_INPUT:
W/IJKMEDIA( 4406): Stream #0: not enough frames to estimate rate; consider increasing probesize
I/IJKMEDIA( 4406): decoding for stream 0 failed
W/IJKMEDIA( 4406): Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
W/IJKMEDIA( 4406): Consider increasing the value for the 'analyzeduration' and 'probesize' options
I/IJKMEDIA( 4406): max_frame_duration: 10.000
I/IJKMEDIA( 4406): Input #0, hls,applehttp, from 'http://10.0.2.2:8089/record/test-1/hhh.m3u8':
I/IJKMEDIA( 4406):   Duration: 
I/IJKMEDIA( 4406): 00:00:15.00
I/IJKMEDIA( 4406): , start: 
I/IJKMEDIA( 4406): 24616.706789
I/IJKMEDIA( 4406): , bitrate: 
I/IJKMEDIA( 4406): 0 kb/s
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406):   Program 0 
I/IJKMEDIA( 4406):     Metadata:
I/IJKMEDIA( 4406):       variant_bitrate : 
I/IJKMEDIA( 4406): 0
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406):     Stream #0:0
I/IJKMEDIA( 4406): : Video: h264 ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080
I/IJKMEDIA( 4406): , 
I/IJKMEDIA( 4406): 90k tbr, 
I/IJKMEDIA( 4406): 90k tbn, 
I/IJKMEDIA( 4406): 180k tbc
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406):     Metadata:
I/IJKMEDIA( 4406):       variant_bitrate : 
I/IJKMEDIA( 4406): 0
I/IJKMEDIA( 4406): 
D/IJKMEDIA( 4406): FFP_MSG_FIND_STREAM_INFO:
I/IJKMEDIA( 4406):     Stream #0:1
I/IJKMEDIA( 4406): : Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406):     Metadata:
I/IJKMEDIA( 4406):       variant_bitrate : 
I/IJKMEDIA( 4406): 0
I/IJKMEDIA( 4406): 
D/IJKMEDIA( 4406): ffpipenode_create_video_decoder_from_android_mediacodec()
I/IJKMEDIA( 4406): API-Level: 30
I/IJKMEDIA( 4406): ffpipenode_create_video_decoder_from_android_mediacodec: MediaCodec: H264_HIGH: enabled
I/IJKMEDIA( 4406): AMediaFormat: video/avc, 1920x1080
D/IJKMEDIA( 4406): SDL_AMediaFormatJava_createVideoFormat
E/IJKMEDIA( 4406): csd-0: naked
I/IJKMEDIA( 4406): amc: rotate notify: 0
D/IJKMEDIA( 4406): ffpipeline_select_mediacodec_l
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_ROTATION_CHANGED: 0
I/tv.danmaku.ijk.media.player.IjkMediaPlayer( 4406): onSelectCodec: mime=video/avc, profile=100, level=40
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.082872 [fplayer] FPlayer{id:4} rotate degree 0
I/VideoCapabilities( 4406): Unsupported profile 4 for video/mp4v-es
I/tv.danmaku.ijk.media.player.IjkMediaPlayer( 4406): candidate codec: OMX.android.goldfish.h264.decoder rank=700
I/IjkMediaCodecInfo( 4406):  Unknown Profile Level 52 (524288,65536)
I/tv.danmaku.ijk.media.player.IjkMediaPlayer( 4406): candidate codec: OMX.google.h264.decoder rank=200
I/IjkMediaCodecInfo( 4406):  Unknown Profile Level 52 (524288,65536)
I/tv.danmaku.ijk.media.player.IjkMediaPlayer( 4406): selected codec: OMX.android.goldfish.h264.decoder rank=700
I/IJKMEDIA( 4406): SDL_AMediaCodecDummy_create
D/IJKMEDIA( 4406): SDL_AMediaCodec_increaseReference(): ref=1
I/IJKMEDIA( 4406): reconfigure_codec_l:new acodec: 0x7559e2c35600
D/IJKMEDIA( 4406): SDL_AMediaCodec_increaseReference(): ref=2
I/IJKMEDIA( 4406): VideoCodec: MediaCodec, OMX.android.goldfish.h264.decoder
W/IJKMEDIA( 4406): fps: 90000.000000 (normal)
D/IJKMEDIA( 4406): FFP_MSG_COMPONENT_OPEN:
I/IJKMEDIA( 4406): SDL_RunThread: [4528] ff_video_dec
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_SIZE_CHANGED: 1920, 1080
D/IJKMEDIA( 4406): FFP_MSG_SAR_CHANGED: 0, 1
D/IJKMEDIA( 4406): ijkmp_get_msg: FFP_MSG_PREPARED
D/IJKMEDIA( 4406): FFP_MSG_PREPARED:
I/IJKMEDIA( 4406): SDL_RunThread: [4529] amediacodec_input_thread
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.127865 [fplayer] FPlayer{id:4} size changed (1920.0, 1080.0)
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.132455 [fplayer] FPlayer{id:4} prepared duration 0:00:15.000000
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.132759 [fplayer] FPlayer{id:4} setupSurface
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.133717 [fplayer] FPlayer{id:4} state changed to FState.prepared <= FState.asyncPreparing
D/IJKMEDIA( 4406): IjkMediaPlayer_setVideoSurface
D/IJKMEDIA( 4406): ijkmp_set_android_surface(surface=0x7ffdb62d2688)
D/IJKMEDIA( 4406): ffpipeline_set_surface()
D/IJKMEDIA( 4406): SDL_AMediaCodec_decreaseReference(): ref=1
D/IJKMEDIA( 4406): ijkmp_set_android_surface(surface=0x7ffdb62d2688)=void
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.134321 [fplayer] FPlayer{id:4} setupSurface
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.135608 [fplayer] FPlayer{id:4} state changed to FState.started <= FState.prepared
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.136948 [fplayer] FPlayer{id:4} setupSurface
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.139280 [fplayer] view setup, vid:1
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.140457 [fplayer] view setup, vid:1
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.142360 [fplayer] view setup, vid:1
D/IJKMEDIA( 4406): ffpipeline_set_surface_need_reconfigure_l(0)
I/IJKMEDIA( 4406): quirk: reconfigure with new codec
D/IJKMEDIA( 4406): SDL_AMediaCodec_decreaseReference(): ref=0
D/IJKMEDIA( 4406): SDL_AMediaCodecJava_createByCodecName
I/OMXClient( 4406): IOmx service obtained
D/IJKMEDIA( 4406): SDL_AMediaCodecJava_init
D/IJKMEDIA( 4406): SDL_AMediaCodec_increaseReference(): ref=1
D/IJKMEDIA( 4406): SDL_AMediaCodecJava_configure_surface
E/IJKMEDIA( 4406): configure acodec:0x2aa6 format:0x2a26: surface:0x2a86
D/SurfaceUtils( 4406): connecting to surface 0x755ae2c31210, reason connectToSurface
I/MediaCodec( 4406): [OMX.android.goldfish.h264.decoder] setting surface generation to 4511745
D/SurfaceUtils( 4406): disconnecting from surface 0x755ae2c31210, reason connectToSurface(reconnect)
D/SurfaceUtils( 4406): connecting to surface 0x755ae2c31210, reason connectToSurface(reconnect)
E/ACodec  ( 4406): [OMX.android.goldfish.h264.decoder] setPortMode on output to DynamicANWBuffer failed w/ err -1010
D/IJKMEDIA( 4406): SDL_AMediaCodecJava_start
D/SurfaceUtils( 4406): disconnecting from surface 0x755ae2c31210, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils( 4406): connecting to surface 0x755ae2c31210, reason setNativeWindowSizeFormatAndUsage
D/SurfaceUtils( 4406): set up nativeWindow 0x755ae2c31210 for 1920x1080, color 0x13, rotation 0, usage 0x1002900
W/Gralloc4( 4406): allocator 3.x is not supported
I/IJKMEDIA( 4406): reconfigure_codec_l:new acodec: 0x7559e2c36cb0
D/IJKMEDIA( 4406): SDL_AMediaCodec_increaseReference(): ref=2
W/ACodec  ( 4406): [OMX.android.goldfish.h264.decoder] BAD CODEC: Output format changed unexpectedly from (diff) AMessage(what = 0x00000000) = {
W/ACodec  ( 4406):       int32_t color-standard = 1
W/ACodec  ( 4406):       int32_t android._dataspace = 260
W/ACodec  ( 4406):     } to (diff) AMessage(what = 0x00000000) = {
W/ACodec  ( 4406):       int32_t color-standard = 2
W/ACodec  ( 4406):       int32_t android._dataspace = 258
W/ACodec  ( 4406):     }
I/IJKMEDIA( 4406): SDL_AMediaCodecJava_dequeueOutputBuffer: INFO_OUTPUT_FORMAT_CHANGED
I/IJKMEDIA( 4406): AMEDIACODEC__INFO_OUTPUT_FORMAT_CHANGED
D/IJKMEDIA( 4406): SDL_AMediaFormatJava_init
I/IJKMEDIA( 4406): AMEDIACODEC__INFO_OUTPUT_FORMAT_CHANGED
I/IJKMEDIA( 4406):     width-height: (1920 x 1080)
I/IJKMEDIA( 4406):     color-format: (FormatYUV420Planar: 0x13)
I/IJKMEDIA( 4406):     stride:       (1920)
I/IJKMEDIA( 4406):     slice-height: (1080)
I/IJKMEDIA( 4406):     crop:         (0, 0, 1919, 1079)
D/IJKMEDIA( 4406): SDL_VoutAMediaCodec_CreateOverlay(w=1920, h=1080, fmt=_AMC vout=0x7559c2bb1c70)
D/IJKMEDIA( 4406): Video: first frame decoded
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_SIZE_CHANGED: 1920, 1080
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_DECODED_START:
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.466202 [fplayer] FPlayer{id:4} size changed (1920.0, 1080.0)
I/IJKMEDIA( 4406): first video frame rendered, ret 0
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_RENDERING_START:
I/tv.danmaku.ijk.media.player.IjkMediaPlayer( 4406): Info: MEDIA_INFO_VIDEO_RENDERING_START
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.508424 [fplayer] FPlayer{id:4} video rendering started
D/IJKMEDIA( 4406): SDL_VoutAMediaCodec_CreateOverlay(w=1920, h=1080, fmt=_AMC vout=0x7559c2bb1c70)
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_SIZE_CHANGED: 1920, 1080
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.516723 [fplayer] FPlayer{id:4} size changed (1920.0, 1080.0)
D/IJKMEDIA( 4406): SDL_VoutAMediaCodec_CreateOverlay(w=1920, h=1080, fmt=_AMC vout=0x7559c2bb1c70)
D/IJKMEDIA( 4406): FFP_MSG_VIDEO_SIZE_CHANGED: 1920, 1080
I/flutter ( 4406): [inf] 2023-11-06 10:04:35.575830 [fplayer] FPlayer{id:4} size changed (1920.0, 1080.0)
I/IJKMEDIA( 4406): Opening 'http://10.0.2.2:8089/record/test-1/1698927403.ts' for reading
I/IJKMEDIA( 4406): request: GET /record/test-1/1698927403.ts HTTP/1.1
I/IJKMEDIA( 4406): User-Agent: Lavf/58.12.100
I/IJKMEDIA( 4406): Accept: */*
I/IJKMEDIA( 4406): Connection: keep-alive
I/IJKMEDIA( 4406): Host: 10.0.2.2:8089
I/IJKMEDIA( 4406): Icy-MetaData: 1
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): 
I/IJKMEDIA( 4406): header='HTTP/1.1 200 OK'
I/IJKMEDIA( 4406): header='Accept-Ranges: bytes'
I/IJKMEDIA( 4406): header='Content-Length: 7537860'
I/IJKMEDIA( 4406): header='Content-Type: text/plain; charset=utf-8'
I/IJKMEDIA( 4406): header='Last-Modified: Thu, 02 Nov 2023 12:16:48 GMT'
I/IJKMEDIA( 4406): header='Date: Mon, 06 Nov 2023 10:04:36 GMT'
I/IJKMEDIA( 4406): header=''

关于缓冲问题

偶尔会出现缓冲12800%,但是无法播放。菜鸡都算不上的我,看不懂代码。没有解决办法

功能建议

很好用,就提几个issues吧
第一个:手势屏蔽靠近状态栏的地方,全屏状态下容易误触
第二个:隐藏系统的音量提示

第三个 :手势长按倍速
第四个 :分屏模式(vr)
第五个:小窗
第六个:我太菜了,可能有些功能作者已经实现了,但是我不会哈哈哈。

大佬能不能详细说下,implementation(name: 'fplayer-core', ext: 'aar')和fplayer-core.aar应该放在哪个目录,我这边试了下面的组合,都不行。感激不尽

          大佬能不能详细说下,implementation(name: 'fplayer-core', ext: 'aar')和fplayer-core.aar应该放在哪个目录,我这边试了下面的组合,都不行。感激不尽

fplayer/android/build.gradle和fplayer/android/aars

example/android/build.grade和example/android/aars

example/android/app/build.gradle和example/android/app/aars

Originally posted by @YaoShuwei in #12 (comment)

ios用最新版本编译不过提示如下内容

[!] CocoaPods could not find compatible versions for pod "fplayer-core":
In snapshot (Podfile.lock):
fplayer-core (= 1.0.0)

  In Podfile:
    fplayer (from `.symlinks/plugins/fplayer/ios`) was resolved to 0.0.1, which depends on
      fplayer-core (= 1.0.1)

默认头信息UA导致有的链接鉴权UA,播放失败

请教全屏状态下,动态控制屏幕显示

` FView(
height: 220,
color: Colors.black,
fsFit: FFit.contain, // 全屏状态:contain:默认,fill:填充,cover:拉伸,全屏状态下,我有个切换屏幕样式的操作,此处怎么动态设置:fsFit参数
fit: FFit.contain, // 正常状态:contain:默认,fill:填充,cover:拉伸
player: player,
panelBuilder: (FPlayer player, FData data, BuildContext context, Size viewSize, Rect texturePos,) {
return CustomFijkPanel(
player: player,
viewSize: viewSize,
texturePos: texturePos,
pageContent: context,
showTopCon: true,
playerTitle: vodData['info']['vod_name'],
onChangeVideo: onChangeVideo,
updateFsFit: updateFsFit,
videoList: videoList,
curTabIdx: _curTabIdx,
curActiveIdx: _curActiveIdx,

          );
        },
      ),`

播放地址太长导致播放器播放失败

比如播放地址:
https://ccp-bj29-video-preview.oss-enet.aliyuncs.com/lt/9E7E759E81D26204BF35DBC33CAC6C5215A2A58C_2284082979__sha1_bj29_db1c0424/FHD/media.m3u8?di=bj29&dr=471978182&f=653a3c4d2705fb1ebd3b47f6a690924d3cdc6930&security-token=CAIS%2BgF1q6Ft5B2yfSjIr5fMOenAlOcZ8JOnU2f5pnojONpLtpzjkTz2IHFPeHJrBeAYt%2FoxmW1X5vwSlq5rR4QAXlDfNQTKXG%2BIqFHPWZHInuDox55m4cTXNAr%2BIhr%2F29CoEIedZdjBe%2FCrRknZnytou9XTfimjWFrXWv%2Fgy%2BQQDLItUxK%2FcCBNCfpPOwJms7V6D3bKMuu3OROY6Qi5TmgQ41Uh1jgjtPzkkpfFtkGF1GeXkLFF%2B97DRbG%2FdNRpMZtFVNO44fd7bKKp0lQLukMWr%2Fwq3PIdp2ma447NWQlLnzyCMvvJ9OVDFyN0aKEnH7J%2Bq%2FzxhTPrMnpkSlacGoABA7PcK4KlWaHtk8sWYeo4QBBc%2BlCMCfGmigrgfSQP%2FYOoc3laWqrso3YfJ7m4fGTGRq8fBHvSs8EW0iLXJkeSwuzVkl5gfdBL056rq0KI8AxBFuBpQQd%2FzTI1WhEVKh5UGwgWgzoeOBk6AuT6hLotX%2FPz1EvwlivsZZBLk22Cc9YgAA%3D%3D&u=9b241ee080f6477994550311f100ff99&x-oss-access-key-id=STS.NTyrSty88GQLQAHBzv4UgYYHs&x-oss-expires=1698329804&x-oss-process=hls%2Fsign%2Cparams_ZGksZHIsZix1&x-oss-signature=k3vgf3P6DJDx%2Fl5Lr8mSrjn1RumAoIoXiHE4H3TZVWk%3D&x-oss-signature-version=OSS2

日志显示:
D/IJKMEDIA(16693): IjkMediaPlayer_setOptionLong I/flutter (16693): [inf] 2023-10-26 10:35:11.635324 [fijk] FijkPlayer{id:3} state changed to FijkState.initialized <= FijkState.idle D/IJKMEDIA(16693): IjkMediaPlayer_prepareAsync D/IJKMEDIA(16693): ijkmp_prepare_async() E/IJKMEDIA(16693): ffp_prepare_async_l too long url I/IJKMEDIA(16693): ===== versions ===== I/IJKMEDIA(16693): ijkplayer : I/IJKMEDIA(16693): FFmpeg : ff4.0--ijk0.8.8--20211030--926 I/IJKMEDIA(16693): libavutil : 56.14.100 I/IJKMEDIA(16693): libavcodec : 58.18.100 I/IJKMEDIA(16693): libavformat : 58.12.100

视频地址有一个URL的302跳转,有疑问

默认比如视频地址:
URL01
实际上在播放视频的是时候URL01进行了 302跳转,跳转后的地址是:
URL02

这样的话,播放器正常播放,但是感觉没有在电脑上用网页播放器相应速度快。

系统音量控制栏不显示

在修复了这个 issues 第二项【隐藏系统的音量提示】后,现在在视频播放页面,通过手机按键调整音量也不会出现音量控制栏

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.