befovy / fijkplayer

ijkplayer for flutter. ijkplayer 的 flutter 封装。 Flutter video/audio player. Flutter media player plugin for android/iOS based on ijkplayer. fijkplayer 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayer
https://fijkplayer.befovy.com
MIT License
1.65k stars 352 forks source link

[BUG]偶现bug,没有画面,日志无报错,对比正常显示的少了一条日志 #90

Closed fantasy525 closed 5 years ago

fantasy525 commented 5 years ago

Describe the bug 页面黑屏,不显示页面,无报错,通过看输出日志,对比正常可以播放的输出日志发现少了一条输出不确定每次都会出现,但是几率在40%,

先看正常的输出 image

正常的话在最后四条输出中会有一个 video rendering stared的输出 不展示画面的日志如下 image

看到少了一个 video rendering stared 的输出。

To Reproduce 不确定哪次会复现,但是几率在30%, 如果退出播放页面,再进入,多试几次就又可以了

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

fijkplayer version Which version you used.

Smartphone (please complete the following information):

fantasy525 commented 5 years ago

完整的日志输出 image

befovy commented 5 years ago

这个截图中只有 flutter 打印的日志,麻烦提供一下原生的日志, 用 xcode 跑 ios/Runner 可以看到原生日志

fantasy525 commented 5 years ago

这个截图中只有 flutter 打印的日志,麻烦提供一下原生的日志, 用 xcode 跑 ios/Runner 可以看到原生日志

修改日志的输出级别后无画面的输出日志如下: image

xcode运行的日志:

av_version_info: ff3.4--ijk0.8.7--20180103--001
ijk_version_info: f0.3.8-1-g2d258bea
ijkmp_set_inject_opaque(0x282e5fab0)
ijkmp_set_inject_opaque()=void
ijkmp_set_ijkio_inject_opaque(0x282e5fab0)
ijkmp_set_ijkio_inject_opaque()=void
2019-11-11 16:56:02.556594+0800 Runner[14288:2119627] flutter: [sil] 2019-11-11 16:56:02.554690 [fijk] set log level FijkLogLevel{level:0, name:all}
2019-11-11 16:56:02.558369+0800 Runner[14288:2119627] flutter: FijkState.idle
2019-11-11 16:56:02.607547+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.607290 [fijk] create player id:1
2019-11-11 16:56:02.613944+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.613833 [fijk] FijkPlayer{id:1} invoke setDateSource http://img.blingabc.com/608e6f5363c34db4a168be7a659d7e0d.mp4
2019-11-11 16:56:02.614660+0800 Runner[14288:2119627] flutter: [sil] 2019-11-11 16:56:02.614574 [fijk] native log level 0
ijkmp_set_data_source(url="http://img.blingabc.com/608e6f5363c34db4a168be7a659d7e0d.mp4")
ijkmp_set_data_source(url="http://img.blingabc.com/608e6f5363c34db4a168be7a659d7e0d.mp4")=0
2019-11-11 16:56:02.619206+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.619051 [fijk] FijkPlayer{id:1} state changed to FijkState.initialized <= FijkState.idle
2019-11-11 16:56:02.620239+0800 Runner[14288:2119627] flutter: player state = FijkState.initialized
2019-11-11 16:56:02.621115+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.621023 [fijk] FijkPlayer{id:1} invoke prepareAsync
ijkmp_prepare_async()
===== versions =====
ijkplayer    : f0.3.8-1-g2d258bea
FFmpeg       : ff3.4--ijk0.8.7--20180103--001
libavutil    : 55.78.100
libavcodec   : 57.107.100
libavformat  : 57.83.100
libswscale   : 4.8.100
libswresample: 2.9.100
===== options =====
player-opts : overlay-format               = fcc-bgra
player-opts : start-on-prepared            = 0
player-opts : videotoolbox                 = 1
format-opts : ijkapplication               = 4662438080
format-opts : ijkiomanager                 = 4662008384
===================
ijkmp_prepare_async()=0
Opening 'http://img.blingabc.com/608e6f5363c34db4a168be7a659d7e0d.mp4' for reading
Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
2019-11-11 16:56:02.665038+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.664886 [fijk] FijkPlayer{id:1} state changed to FijkState.asyncPreparing <= FijkState.initialized
2019-11-11 16:56:02.665223+0800 Runner[14288:2119627] flutter: player state = FijkState.asyncPreparing
2019-11-11 16:56:02.666652+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.666459 [fijk] FijkPlayer{id:1} invoke start
ijkmp_start()
ijkmp_start()=0
2019-11-11 16:56:02.667411+0800 Runner[14288:2119444] start start 0
2019-11-11 16:56:02.667855+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.667769 [fijk] FijkPlayer{id:1} state changed to FijkState.initialized <= FijkState.idle
2019-11-11 16:56:02.667989+0800 Runner[14288:2119627] flutter: player state = FijkState.initialized
2019-11-11 16:56:02.668492+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:02.668406 [fijk] FijkPlayer{id:1} state changed to FijkState.asyncPreparing <= FijkState.initialized
2019-11-11 16:56:02.668611+0800 Runner[14288:2119627] flutter: player state = FijkState.asyncPreparing
Add dns cache hostname = img.blingabc.com, ip = 27.221.56.136
request: GET /608e6f5363c34db4a168be7a659d7e0d.mp4 HTTP/1.1

User-Agent: Lavf/57.83.100

Accept: */*

Range: bytes=0-

Connection: close

Host: img.blingabc.com

Icy-MetaData: 1

header='HTTP/1.1 206 Partial Content'
http_code=206
header='Server: Tengine'
header='Content-Type: video/mp4'
header='Content-Length: 6188284'
header='Connection: close'
header='Date: Mon, 11 Nov 2019 08:00:32 GMT'
header='x-oss-request-id: 5DC915207860A536347C5973'
header='Accept-Ranges: bytes'
header='ETag: "485438880DBF4EC61D51C3D57F49E323"'
header='Last-Modified: Mon, 22 Jan 2018 06:12:38 GMT'
header='x-oss-object-type: Normal'
header='x-oss-hash-crc64ecma: 16840551051582089474'
header='x-oss-storage-class: Standard'
header='Content-MD5: SFQ4iA2/TsYdUcPVf0njIw=='
header='x-oss-server-time: 24'
header='Via: cache9.l2cn1793[0,304-0,H], cache36.l2cn1793[1,0], vcache19.cn646[0,206-0,H], vcache18.cn646[4,0]'
header='Ali-Swift-Global-Savetime: 1572694664'
header='Age: 3330'
header='X-Cache: HIT TCP_MEM_HIT dirn:10:212538683'
header='X-Swift-SaveTime: Mon, 11 Nov 2019 08:10:47 GMT'
header='X-Swift-CacheTime: 3600'
header='Content-Range: bytes 0-6188283/6188284'
header='Access-Control-Allow-Methods: GET,POST,HEAD,PUT'
header='Access-Control-Allow-Origin: *'
header='Timing-Allow-Origin: *'
header='EagleId: 1bdd38a615734625627471815e'
header=''
Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048
Probing mp3 score:1 size:2048
Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
type:'ftyp' parent:'root' sz: 24 8 6188284
ISO: File Type Major Brand: isom
type:'moov' parent:'root' sz: 13839 32 6188284
type:'mvhd' parent:'moov' sz: 108 8 13831
time scale = 600
type:'iods' parent:'moov' sz: 21 116 13831
type:'trak' parent:'moov' sz: 7765 137 13831
type:'tkhd' parent:'trak' sz: 92 8 7757
type:'mdia' parent:'trak' sz: 7665 100 7757
type:'mdhd' parent:'mdia' sz: 32 8 7657
type:'hdlr' parent:'mdia' sz: 106 40 7657
ctype=[0][0][0][0]
stype=vide
type:'minf' parent:'mdia' sz: 7519 146 7657
type:'vmhd' parent:'minf' sz: 20 8 7511
type:'dinf' parent:'minf' sz: 36 28 7511
type:'dref' parent:'dinf' sz: 28 8 28
Unknown dref type 0x206c7275 size 12
type:'stbl' parent:'minf' sz: 7455 64 7511
type:'stsd' parent:'stbl' sz: 171 8 7447
size=155 4CC=avc1 codec_type=0
type:'avcC' parent:'stsd' sz: 49 8 69
type:'btrt' parent:'stsd' sz: 20 57 69
type:'stts' parent:'stbl' sz: 24 179 7447
track[0].stts.entries = 1
sample_count=902, sample_duration=1000
type:'ctts' parent:'stbl' sz: 2760 203 7447
track[0].ctts.entries = 343
count=1, duration=2000
count=1, duration=3000
count=1, duration=1000
count=3, duration=2000
count=1, duration=3000

上面会有不停的重复输出 还有部分这样的

dts shift 0
type:'stss' parent:'stbl' sz: 32 2963 7447
keyframe_count = 4
type:'stsc' parent:'stbl' sz: 568 2995 7447
track[0].stsc.entries = 46
type:'stsz' parent:'stbl' sz: 3628 3563 7447
sample_size = 0 sample_count = 902
type:'stco' parent:'stbl' sz: 264 7191 7447
AVIndex stream 0, sample 0, offset 362f, dts 0, size 31289, distance 0, keyframe 1
AVIndex stream 0, sample 1, offset b068, dts 1000, size 1707, distance 1, keyframe 0
AVIndex stream 0, sample 2, offset b713, dts 2000, size 411, distance 2, keyframe 0
AVIndex stream 0, sample 3, offset b8ae, dts 3000, size 4389, distance 3, keyframe 0
AVIndex stream 0, sample 4, offset c9d3, dts 4000, size 1752, distance 4, keyframe 0
AVIndex stream 0, sample 5, offset d0ab, dts 5000, size 5249, distance 5, keyframe 0
AVIndex stream 0, sample 6, offset e52c, dts 6000, size 659, distance 6, keyframe 0
AVIndex stream 0, sample 7, offset e7bf, dts 7000, size 174, distance 7, keyframe 0
AVIndex stream 0, sample 8, offset e86d, dts 8000, size 2709, distance 8, keyframe 0
AVIndex stream 0, sample 9, offset f302, dts 9000, size 1367, distance 9, keyframe 0
AVIndex stream 0, sample 10, offset f859, dts 10000, size 4614, distance 10, keyframe 0
AVIndex stream 0, sample 11, offset 10a5f, dts 11000, size 1300, distance 11, keyframe 0
AVIndex stream 0, sample 12, offset 10f73, dts 12000, size 232, distance 12, keyframe 0
AVIndex stream 0, sample 13, offset 1105b, dts 13000, size 7173, distance 13, keyframe 0
AVIndex stream 0, sample 14, offset 12c60, dts 14000, size 2308, distance 14, keyframe 0
AVIndex stream 0, sample 15, offset 13564, dts 15000, size 9893, distance 15, keyframe 0

另一段输出

AVIndex stream 1, sample 1291, offset 5e66b0, dts 1321984, size 777, distance 0, keyframe 1
AVIndex stream 1, sample 1292, offset 5e69b9, dts 1323008, size 775, distance 0, keyframe 1
type:'mdat' parent:'root' sz: 6174361 13871 6188284
Hit DNS cache hostname = img.blingabc.com
request: GET /608e6f5363c34db4a168be7a659d7e0d.mp4 HTTP/1.1

User-Agent: Lavf/57.83.100

Accept: */*

Range: bytes=6188224-

Connection: close

Host: img.blingabc.com

Icy-MetaData: 1

header='HTTP/1.1 206 Partial Content'
http_code=206
header='Server: Tengine'
header='Content-Type: video/mp4'
header='Content-Length: 60'
header='Connection: close'
header='Date: Mon, 11 Nov 2019 08:00:32 GMT'
header='x-oss-request-id: 5DC915207860A536347C5973'
header='Accept-Ranges: bytes'
header='ETag: "485438880DBF4EC61D51C3D57F49E323"'
header='Last-Modified: Mon, 22 Jan 2018 06:12:38 GMT'
header='x-oss-object-type: Normal'
header='x-oss-hash-crc64ecma: 16840551051582089474'
header='x-oss-storage-class: Standard'
header='Content-MD5: SFQ4iA2/TsYdUcPVf0njIw=='
header='x-oss-server-time: 24'
header='Via: cache9.l2cn1793[0,304-0,H], cache36.l2cn1793[1,0], vcache19.cn646[0,206-0,H], vcache6.cn646[2,0]'
header='Ali-Swift-Global-Savetime: 1572694664'
header='Age: 3330'
header='X-Cache: HIT TCP_MEM_HIT dirn:10:212538683'
header='X-Swift-SaveTime: Mon, 11 Nov 2019 08:10:47 GMT'
header='X-Swift-CacheTime: 3600'
header='Content-Range: bytes 6188224-6188283/6188284'
header='Access-Control-Allow-Methods: GET,POST,HEAD,PUT'
header='Access-Control-Allow-Origin: *'
header='Timing-Allow-Origin: *'
header='EagleId: 1bdd389a15734625628868183e'
header=''
type:'free' parent:'root' sz: 60 6188232 6188284
on_parse_exit_offset=6188248
Option ijkiomanager not found.
Before avformat_find_stream_info() pos: 6188248 bytes read:17776 seeks:1 nb_streams:2
nal_unit_type: 7, nal_ref_idc: 3
nal_unit_type: 8, nal_ref_idc: 3
stream 0, sample 0, dts 0
stream 1, sample 0, dts 0
Hit DNS cache hostname = img.blingabc.com
request: GET /608e6f5363c34db4a168be7a659d7e0d.mp4 HTTP/1.1

User-Agent: Lavf/57.83.100

Accept: */*

Range: bytes=13871-

Connection: close

Host: img.blingabc.com

Icy-MetaData: 1

header='HTTP/1.1 206 Partial Content'
http_code=206
header='Server: Tengine'
header='Content-Type: video/mp4'
header='Content-Length: 6174413'
header='Connection: close'
header='Date: Mon, 11 Nov 2019 08:00:32 GMT'
header='x-oss-request-id: 5DC915207860A536347C5973'
header='Accept-Ranges: bytes'
header='ETag: "485438880DBF4EC61D51C3D57F49E323"'
header='Last-Modified: Mon, 22 Jan 2018 06:12:38 GMT'
header='x-oss-object-type: Normal'
header='x-oss-hash-crc64ecma: 16840551051582089474'
header='x-oss-storage-class: Standard'
header='Content-MD5: SFQ4iA2/TsYdUcPVf0njIw=='
header='x-oss-server-time: 24'
header='Via: cache9.l2cn1793[0,304-0,H], cache36.l2cn1793[1,0], vcache19.cn646[0,206-0,H], vcache12.cn646[2,0]'
header='Ali-Swift-Global-Savetime: 1572694664'
header='Age: 3330'
header='X-Cache: HIT TCP_MEM_HIT dirn:10:212538683'
header='X-Swift-SaveTime: Mon, 11 Nov 2019 08:10:47 GMT'
header='X-Swift-CacheTime: 3600'
header='Content-Range: bytes 13871-6188283/6188284'
header='Access-Control-Allow-Methods: GET,POST,HEAD,PUT'
header='Access-Control-Allow-Origin: *'
header='Timing-Allow-Origin: *'
header='EagleId: 1bdd38a015734625629746820e'
header=''
nal_unit_type: 6, nal_ref_idc: 0
nal_unit_type: 5, nal_ref_idc: 3
user data:"x264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00"
Reinit context to 1920x1088, pix_fmt: yuv420p
no picture 
stream 0, sample 1, dts 33333
stream 1, sample 0, dts 0
stream 0, sample 2, dts 66667
stream 1, sample 0, dts 0
stream 0, sample 3, dts 100000
stream 1, sample 0, dts 0
stream 0, sample 4, dts 133333

下一段

skip whole frame, skip left: 0
All info found
stream 0: start_time: 0.067 duration: 30.067
stream 1: start_time: 0.000 duration: 30.023
format: start_time: 0.000 duration: 30.067 bitrate=1646 kb/s
After avformat_find_stream_info() pos: 89123 bytes read:94845 seeks:2 frames:17
max_frame_duration: 10.000
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://img.blingabc.com/608e6f5363c34db4a168be7a659d7e0d.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2018-01-22T02:49:17.000000Z
  Duration: 00:00:30.07, start: 0.000000, bitrate: 1646 kb/s
    Stream #0:0(und), 16, 1/30000: Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 1470 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2018-01-22T02:49:17.000000Z
      handler_name    : level 3 lesson 3.mp4.vc.264#video - Imported with GPAC 0.5.1-DEV-rev4102M
    Stream #0:1(und), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 172 kb/s (default)
    Metadata:
      creation_time   : 2018-01-22T02:49:17.000000Z
      handler_name    : level 3 lesson 3.mp4.vc.aac#audio - Imported with GPAC 0.5.1-DEV-rev4102M
aout_open_audio()
AudioCodec: avcodec, aac
aout_pause_audio(0)
detected 6 logical cores
nal_unit_type: 7, nal_ref_idc: 3
nal_unit_type: 8, nal_ref_idc: 3
vtbformat_init - using avcC atom of size(41), ref_frames(0)m_max_ref_frames 2 
vtbformat_init - using avcC atom of size(41), ref_frames(2)m_max_ref_frames 2 
after scale width 1920 height 1080 
2019-11-11 16:56:03.172875+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.172750 [fijk] FijkPlayer{id:1} audio rendering started
fps: 30.000000 (normal)
fps: 30.000000 (normal)
flushed last keyframe pts 0 
stream 0, sample 16, dts 533333
stream 1, sample 1, dts 23220
skip whole frame, skip left: 0
ffp_toggle_buffering_l: start
aout_pause_audio(1)
ijkmp_get_msg: FFP_MSG_PREPARED
stream 0, sample 16, dts 533333
stream 1, sample 2, dts 46440
stream 0, sample 16, dts 533333
stream 1, sample 3, dts 69660
stream 0, sample 16, dts 533333
stream 1, sample 4, dts 92880
...
...
stream 1, sample 85, dts 1973696
2019-11-11 16:56:03.196400+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.196312 [fijk] FijkPlayer{id:1} state changed to FijkState.prepared <= FijkState.asyncPreparing
2019-11-11 16:56:03.196560+0800 Runner[14288:2119627] flutter: player state = FijkState.prepared
2019-11-11 16:56:03.197059+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.196974 [fijk] FijkPlayer{id:1} state changed to FijkState.started <= FijkState.prepared
stream 0, sample 62, dts 2066667
stream 1, sample 85, dts 1973696
stream 0, sample 63, dts 2100000
stream 1, sample 85, dts 1973696
...
...
2019-11-11 16:56:03.198186+0800 Runner[14288:2119627] flutter: player state = FijkState.started
2019-11-11 16:56:03.215664+0800 Runner[14288:2119627] flutter: render controls
stream 0, sample 66, dts 2200000
stream 1, sample 85, dts 1973696
stream 0, sample 67, dts 2233333
stream 1, sample 85, dts 1973696
stream 0, sample 68, dts 2266667
stream 1, sample 85, dts 1973696
stream 0, sample 69, dts 2300000
stream 1, sample 85, dts 1973696
stream 0, sample 70, dts 2333333
stream 1, sample 85, dts 1973696
stream 0, sample 71, dts 2366667
stream 1, sample 85, dts 1973696
stream 0, sample 72, dts 2400000
stream 1, sample 85, dts 1973696
stream 0, sample 73, dts 2433333
stream 1, sample 85, dts 1973696
stream 0, sample 74, dts 2466667
stream 1, sample 85, dts 1973696
stream 0, sample 75, dts 2500000
stream 1, sample 85, dts 1973696
stream 0, sample 75, dts 2500000
stream 1, sample 86, dts 1996916
stream 0, sample 75, dts 2500000
stream 1, sample 87, dts 2020136
stream 0, sample 75, dts 2500000
stream 1, sample 88, dts 2043356
stream 0, sample 75, dts 2500000
stream 1, sample 89, dts 2066576
stream 0, sample 75, dts 2500000
stream 1, sample 90, dts 2089796
stream 0, sample 75, dts 2500000
stream 1, sample 91, dts 2113016
stream 0, sample 75, dts 2500000
stream 1, sample 92, dts 2136236
stream 0, sample 75, dts 2500000
stream 1, sample 93, dts 2159456
stream 0, sample 75, dts 2500000
stream 1, sample 94, dts 2182676
stream 0, sample 75, dts 2500000
stream 1, sample 95, dts 2205896
stream 0, sample 75, dts 2500000
stream 1, sample 96, dts 2229116
stream 0, sample 75, dts 2500000
stream 1, sample 97, dts 2252336
stream 0, sample 75, dts 2500000
stream 1, sample 98, dts 2275556
stream 0, sample 75, dts 2500000
stream 1, sample 99, dts 2298776
stream 0, sample 75, dts 2500000
stream 1, sample 100, dts 2321995
stream 0, sample 75, dts 2500000
stream 1, sample 101, dts 2345215
stream 0, sample 75, dts 2500000
stream 1, sample 102, dts 2368435
stream 0, sample 75, dts 2500000
stream 1, sample 103, dts 2391655
stream 0, sample 75, dts 2500000
stream 1, sample 104, dts 2414875
stream 0, sample 75, dts 2500000
stream 1, sample 105, dts 2438095
stream 0, sample 75, dts 2500000
stream 1, sample 106, dts 2461315
stream 0, sample 76, dts 2533333
stream 1, sample 106, dts 2461315
stream 0, sample 77, dts 2566667
stream 1, sample 106, dts 2461315
2019-11-11 16:56:03.232785+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.232647 [fijk] FijkPlayer{id:1} setupSurface
ijkmp_ios_set_view(glView=0x28087c300)
ijkmp_ios_set_view(glView=0x28087c300)=void
2019-11-11 16:56:03.233739+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.233619 [fijk] view setup, vid:1
stream 0, sample 78, dts 2600000
stream 1, sample 106, dts 2461315
stream 0, sample 79, dts 2633333
stream 1, sample 106, dts 2461315
stream 0, sample 80, dts 2666667
stream 1, sample 106, dts 2461315
stream 0, sample 81, dts 2700000
stream 1, sample 106, dts 2461315
stream 0, sample 82, dts 2733333
stream 1, sample 106, dts 2461315
vtbformat_init - using avcC atom of size(41), ref_frames(2)m_max_ref_frames 2 
after scale width 1920 height 1080 
stream 0, sample 83, dts 2766667
stream 1, sample 106, dts 2461315
stream 0, sample 84, dts 2800000
stream 1, sample 106, dts 2461315
stream 0, sample 85, dts 2833333
stream 1, sample 106, dts 2461315
2019-11-11 16:56:03.237134+0800 Runner[14288:2119627] flutter: [dbg] 2019-11-11 16:56:03.236893 [fijk] FijkPlayer{id:1} freeze start
ffp_toggle_buffering_l: end
aout_pause_audio(1)
stream 0, sample 86, dts 2866667
stream 1, sample 106, dts 2461315
stream 0, sample 87, dts 2900000
stream 1, sample 106, dts 2461315
stream 0, sample 88, dts 2933333
stream 1, sample 106, dts 2461315
stream 0, sample 89, dts 2966667
stream 1, sample 106, dts 2461315
2019-11-11 16:56:03.248288+0800 Runner[14288:2119627] flutter: [dbg] 2019-11-11 16:56:03.248130 [fijk] FijkPlayer{id:1} freeze end
stream 0, sample 90, dts 3000000
stream 1, sample 106, dts 2461315
stream 0, sample 90, dts 3000000
stream 1, sample 107, dts 2484535
stream 0, sample 90, dts 3000000
stream 1, sample 108, dts 2507755
stream 0, sample 90, dts 3000000
stream 1, sample 109, dts 2530975
stream 0, sample 90, dts 3000000
stream 1, sample 110, dts 2554195
stream 0, sample 90, dts 3000000
stream 1, sample 111, dts 2577415
stream 0, sample 90, dts 3000000
stream 1, sample 112, dts 2600635
stream 0, sample 90, dts 3000000
stream 1, sample 113, dts 2623855
stream 0, sample 90, dts 3000000
stream 1, sample 114, dts 2647075
stream 0, sample 90, dts 3000000
stream 1, sample 115, dts 2670295
stream 0, sample 90, dts 3000000
stream 1, sample 116, dts 2693515
stream 0, sample 90, dts 3000000
stream 1, sample 117, dts 2716735
stream 0, sample 90, dts 3000000
stream 1, sample 118, dts 2739955
stream 0, sample 90, dts 3000000
stream 1, sample 119, dts 2763175
stream 0, sample 90, dts 3000000
stream 1, sample 120, dts 2786395
stream 0, sample 90, dts 3000000
stream 1, sample 121, dts 2809615
stream 0, sample 90, dts 3000000
stream 1, sample 122, dts 2832834
stream 0, sample 90, dts 3000000
stream 1, sample 123, dts 2856054
stream 0, sample 90, dts 3000000
stream 1, sample 124, dts 2879274
stream 0, sample 90, dts 3000000
stream 1, sample 125, dts 2902494
stream 0, sample 90, dts 3000000
stream 1, sample 126, dts 2925714
stream 0, sample 90, dts 3000000
stream 1, sample 127, dts 2948934
stream 0, sample 91, dts 3033333
stream 1, sample 127, dts 2948934
stream 0, sample 92, dts 3066667
stream 1, sample 127, dts 2948934
stream 0, sample 93, dts 3100000
stream 1, sample 127, dts 2948934
stream 0, sample 94, dts 3133333
stream 1, sample 127, dts 2948934
2019-11-11 16:56:03.251817+0800 Runner[14288:2119627] flutter: render controls
stream 0, sample 95, dts 3166667
stream 1, sample 127, dts 2948934
stream 0, sample 96, dts 3200000
stream 1, sample 127, dts 2948934
stream 0, sample 97, dts 3233333
stream 1, sample 127, dts 2948934
stream 0, sample 98, dts 3266667
stream 1, sample 127, dts 2948934
stream 0, sample 99, dts 3300000
stream 1, sample 127, dts 2948934
stream 0, sample 100, dts 3333333
stream 1, sample 127, dts 2948934
stream 0, sample 101, dts 3366667
stream 1, sample 127, dts 2948934
stream 0, sample 102, dts 3400000
stream 1, sample 127, dts 2948934
stream 0, sample 103, dts 3433333
stream 1, sample 127, dts 2948934
stream 0, sample 104, dts 3466667
stream 1, sample 127, dts 2948934
stream 0, sample 104, dts 3466667
stream 1, sample 128, dts 2972154
stream 0, sample 104, dts 3466667
stream 1, sample 129, dts 2995374
stream 0, sample 104, dts 3466667
stream 1, sample 130, dts 3018594
stream 0, sample 104, dts 3466667
stream 1, sample 131, dts 3041814
stream 0, sample 104, dts 3466667
stream 1, sample 132, dts 3065034
stream 0, sample 104, dts 3466667
stream 1, sample 133, dts 3088254
stream 0, sample 104, dts 3466667
stream 1, sample 134, dts 3111474
stream 0, sample 104, dts 3466667
stream 1, sample 135, dts 3134694
stream 0, sample 104, dts 3466667
stream 1, sample 136, dts 3157914
stream 0, sample 104, dts 3466667
stream 1, sample 137, dts 3181134
stream 0, sample 104, dts 3466667
stream 1, sample 138, dts 3204354
stream 0, sample 104, dts 3466667
stream 1, sample 139, dts 3227574
stream 0, sample 104, dts 3466667
stream 1, sample 140, dts 3250794
stream 0, sample 104, dts 3466667
stream 1, sample 141, dts 3274014
stream 0, sample 104, dts 3466667
stream 1, sample 142, dts 3297234
stream 0, sample 104, dts 3466667
stream 1, sample 143, dts 3320454
stream 0, sample 104, dts 3466667
stream 1, sample 144, dts 3343673
stream 0, sample 104, dts 3466667
stream 1, sample 145, dts 3366893
stream 0, sample 104, dts 3466667
stream 1, sample 146, dts 3390113
stream 0, sample 104, dts 3466667
stream 1, sample 147, dts 3413333
stream 0, sample 104, dts 3466667
stream 1, sample 148, dts 3436553
stream 0, sample 105, dts 3500000
stream 1, sample 148, dts 3436553
stream 0, sample 106, dts 3533333
stream 1, sample 148, dts 3436553
stream 0, sample 107, dts 3566667
stream 1, sample 148, dts 3436553
SDL_VoutVideoToolBox_CreateOverlay(w=1920, h=1080, fmt=_VTB, dp=0x2839cf740)
Video: first frame decoded
2019-11-11 16:56:03.296595+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.296454 [fijk] FijkPlayer{id:1} size changed (1920, 1080)
SDL_VoutVideoToolBox_CreateOverlay(w=1920, h=1080, fmt=_VTB, dp=0x2839cf740)
2019-11-11 16:56:03.305975+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.305856 [fijk] FijkPlayer{id:1} size changed (1920, 1080)
SDL_VoutVideoToolBox_CreateOverlay(w=1920, h=1080, fmt=_VTB, dp=0x2839cf740)
2019-11-11 16:56:03.315499+0800 Runner[14288:2119627] flutter: [inf] 2019-11-11 16:56:03.315382 [fijk] FijkPlayer{id:1} size changed (1920, 1080)
fantasy525 commented 5 years ago

@befovy 麻烦可以尽早解决下吗?下周就要用这个上线了,黑屏没画面的体验会遭产品经历骂的

befovy commented 5 years ago

@fantasy525 你好,此问题目前还没有找到原因,不能保证在你们下周上线前能够修复。

fantasy525 commented 5 years ago

@befovy 新发现:如果黑屏的时候,此时再调用一次start就有画面和声音了

befovy commented 5 years ago

在 prepare_async 后调用 start 出现的时序问题,后续会debug彻底解决此问题 目前可以通过调用 setDataSource(url, autoPlay: true) 避免这个问题。

befovy commented 5 years ago

能够确保启动播放器并开始播放的代码调用举例。 其他方式可能会有 bug

await player.setDataSource(url, autoPlay: true);
await player.setDataSource(url);
await player.start();
await player.setDataSource(url);
await player.setOption(FijkOption.playerCategory, "start-on-prepared", 1);
await player.prepareAsync()
await player.setDataSource(url);
var prepared = false;
player.addListener(() {
    FijkValue value = player.value;
    if (value.prepared &&!prepared) {
        prepared = true;
        player.start();
    }
});
await player.prepareAsync()
befovy commented 5 years ago

Attation: the code below could lead to player not start ( just prepared). It'a bug.

/// do not call API like below.
await player.setDataSource(url);
await player.prepareAsync();
await player.start();
befovy commented 5 years ago

@all-contributors please add @fantasy525 for bug

allcontributors[bot] commented 5 years ago

@befovy

I've put up a pull request to add @fantasy525! :tada: