wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
126 stars 20 forks source link

播放 .m3u8 视频时,播放过 #EXT-X-DISCONTINUITY 的位置后,出现当前播放时间跳到 00:00:00 #76

Closed aaronfsfs closed 3 months ago

aaronfsfs commented 3 months ago

同样的 .m3u8 可以在 video_player 上正常播放

log: 在 mac 上:

flutter: mdk.INFO: 16:27:33.349: [FFmpeg:hls] The m3u8 list sequence may have been wrapped.
flutter: mdk.INFO: 16:27:33.349: [FFmpeg:hls] Opening 'http://cloud-private....._11.ts' for reading
flutter: mdk.INFO: 16:27:33.356: seeking media's position is 110228=====
flutter: mdk.INFO: 16:27:33.373: audio stream#2 is seeking #4... got flush pkt. flush decoder and  drop frames until seek target 110.2240s...
flutter: mdk.INFO: 16:27:33.373: invalid audio frame @-1.000000
flutter: mdk.INFO: 16:27:33.385: [FFmpeg:hls] Opening 'http://cloud-private....._0.ts' for reading
flutter: mdk.INFO: 16:27:33.418: 1 packets is read after seek. seek result pts: 110.08s, requested: 110228
flutter: mdk.INFO: 16:27:33.418: default 0x1436c17a0 FrameReader::update MediaStatus 0X1A4=>0X124
flutter: fvp.FINE: 16:27:33.418: 760253233 player5426120464 onMediaStatus: MediaStatus(+loaded+prepared+buffered) => MediaStatus(+loaded+prepared+buffered)
flutter: mdk.INFO: 16:27:33.418: seek_drop_non_video_: 110224 ms, seek_wait_frame_: 0...
flutter: mdk.INFO: 16:27:33.419: #4/4 audio seek_done: 1, seek_wait_frame_: 0/1
flutter: mdk.INFO: 16:27:33.419: audio stream#2 sending 1 invalid AOT frame @110.208000s. seeking: 0
flutter: mdk.INFO: 16:27:33.419: 0x14788c800 seek end audio frame @110.208000 seek_pos_: 110228, sync_ao_ 1
flutter: mdk.INFO: 16:27:33.426: video stream#1 is seeking #4... got flush pkt. flush decoder and  drop frames until seek target 110.2240s...
flutter: mdk.INFO: 16:27:33.426: invalid video frame @-1.000000
flutter: mdk.INFO: 16:27:33.438: #4/4 video seek_done: 1, seek_wait_frame_: 0/0
flutter: mdk.INFO: 16:27:33.438: video stream#1 sending 1 invalid AOT frame @110.200000s. seeking: 0
flutter: mdk.INFO: 16:27:33.439: VideoRenderer clear buffered frames
flutter: mdk.INFO: 16:27:33.439: 0-track seek end video frame @110.200000 seek_pos_: 110228
flutter: mdk.INFO: 16:27:33.439: video stream#1 AOT frame is sent
flutter: mdk.INFO: 16:27:33.439: default FrameReader0x1436c17a0 #4 seekComplete 110200
flutter: mdk.INFO: 16:27:33.439: default 0x1436c17a0 FrameReader::update MediaStatus 0X124=>0X124
flutter: mdk.INFO: 16:27:33.439: default FrameReader 0x1436c17a0 callbacks 1, seeking: 0, seekComplete#4 @110200
flutter: mdk.INFO: 16:27:33.439: default FrameReader 0x1436c17a0 callbacks 0, seeking 0 flag 0, seekComplete#4 @110200
flutter: mdk.INFO: 16:27:33.525: [FFmpeg:hls] The m3u8 list sequence may have been wrapped.
flutter: mdk.INFO: 16:27:33.525: [FFmpeg:http] Opening 'http://cloud-private.....1.ts' for reading
flutter: mdk.INFO: 16:27:33.525: [FFmpeg:hls] The m3u8 list sequence may have been wrapped.
flutter: mdk.INFO: 16:27:33.525: [FFmpeg:http] Opening 'http://cloud-private.......2.ts' for reading
flutter: mdk.INFO: 16:27:33.526: [FFmpeg:hls] The m3u8 list sequence may have been wrapped.
flutter: mdk.INFO: 16:27:33.526: [FFmpeg:http] Opening 'http://cloud-private....._3.ts' for reading

在 windows 上:

flutter: mdk: audio stream#2 sending 1 invalid AOT frame @176.656000s. seeking: 0
flutter: mdk: 0000027D1DA851B0 seek end audio frame @176.656000 seek_pos_: 176753, sync_ao_ 1
flutter: mdk: seeking media's position is 176753=====
flutter: mdk: >>>>>>>>1st audio frame (after seek) rendered: 1, ao: 176752, a: 176656, delta: 96 +0.128000
flutter: mdk: audio stream#2 AOT frame is sent
flutter: mdk: [FFmpeg:hls] The m3u8 list sequence may have been wrapped.
flutter: mdk: [FFmpeg:mpegts] DTS 0 < 16205850 out of order
flutter: mdk: [FFmpeg:hls] DTS 0 < 16205850 out of order