debugly / ijkplayer

【持续更新】macOS/iOS video player based on ijkplayer, using FFmpeg 5.1, support Metal、hw accel、HDR、ass subtitle effect...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于获取章节信息

zdw19840929 opened this issue · comments

大佬,问一个问题,我看log里面打印是有章节信息的,如果有的话是在IJKFFMoviePlayerController里面的traverseIJKMetaData这个方法里面解析吗?

log 能贴下吗?

这是我视频解析的 log, 大佬有时间看下哈 @debugly

[IJKMEDIA] Metadata:
title : Encoded By Anonymous @ Only For CHD
encoder : libebml v1.4.4 + libmatroska v1.7.1
creation_time : 2024-02-06T02:37:03.000000Z
Duration: 03:00:24.00, start: 0.000000, bitrate: 7576 kb/s
[IJKMEDIA] Chapters:
Chapter #0:0: start 0.000000, [IJKMEDIA]end 443.526400
[IJKMEDIA] Metadata:
title : 第 01 章
Chapter #0:1: start 443.526400, [IJKMEDIA]end 996.078400
[IJKMEDIA] Metadata:
title : 第 02 章
Chapter #0:2: start 996.078400, [IJKMEDIA]end 1643.975667
[IJKMEDIA] Metadata:
title : 第 03 章
Chapter #0:3: start 1643.975667, [IJKMEDIA]end 2161.534356
[IJKMEDIA] Metadata:
title : 第 04 章
Chapter #0:4: start 2161.534356, [IJKMEDIA]end 2571.652400
[IJKMEDIA] Metadata:
title : 第 05 章
Chapter #0:5: start 2571.652400, [IJKMEDIA]end 3151.606778
[IJKMEDIA] Metadata:
title : 第 06 章
Chapter #0:6: start 3151.606778, [IJKMEDIA]end 3596.593000
[IJKMEDIA] Metadata:
title : 第 07 章
Chapter #0:7: start 3596.593000, [IJKMEDIA]end 4253.540956
[IJKMEDIA] Metadata:
title : 第 08 章
Chapter #0:8: start 4253.540956, [IJKMEDIA]end 4678.215200
[IJKMEDIA] Metadata:
title : 第 09 章
Chapter #0:9: start 4678.215200, [IJKMEDIA]end 5054.340956
[IJKMEDIA] Metadata:
title : 第 10 章
Chapter #0:10: start 5054.340956, [IJKMEDIA]end 5767.011244
[IJKMEDIA] Metadata:
title : 第 11 章
Chapter #0:11: start 5767.011244, [IJKMEDIA]end 6186.930733
[IJKMEDIA] Metadata:
title : 第 12 章
Chapter #0:12: start 6186.930733, [IJKMEDIA]end 6679.589578
[IJKMEDIA] Metadata:
title : 第 13 章
Chapter #0:13: start 6679.589578, [IJKMEDIA]end 7218.377822
[IJKMEDIA] Metadata:
title : 第 14 章
Chapter #0:14: start 7218.377822, [IJKMEDIA]end 7742.192778
[IJKMEDIA] Metadata:
title : 第 15 章
Chapter #0:15: start 7742.192778, [IJKMEDIA]end 8228.637067
[IJKMEDIA] Metadata:
title : 第 16 章
Chapter #0:16: start 8228.637067, [IJKMEDIA]end 9124.949156
[IJKMEDIA] Metadata:
title : 第 17 章
Chapter #0:17: start 9124.949156, [IJKMEDIA]end 10060.633911
[IJKMEDIA] Metadata:
title : 第 18 章
Chapter #0:18: start 10060.633911, [IJKMEDIA]end 10452.442000
[IJKMEDIA] Metadata:
title : 第 19 章
Chapter #0:19: start 10452.442000, [IJKMEDIA]end 10824.000000
[IJKMEDIA] Metadata:
title : 第 20 章
Stream #0:0, 1, 1/1000: Video: hevc, 1 reference frame, yuv420p10le(tv, bt709, topleft), 1920x1080, 0/1, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn (default)
[IJKMEDIA] Metadata:
BPS : 3029174
DURATION : 03:00:22.145000000
NUMBER_OF_FRAMES: 259472
NUMBER_OF_BYTES : 4097770223
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1(eng), 7, 1/1000: Audio: dts, 48000 Hz, 5.1(side), s32p (24 bit) (default)
[IJKMEDIA] Metadata:
BPS : 3566822
DURATION : 03:00:22.155000000
NUMBER_OF_FRAMES: 1014577
NUMBER_OF_BYTES : 4825087720
SOURCE_ID : 001100
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:2(chi), 0, 1/1000: Audio: ac3, 48000 Hz, 6 channels, fltp (default)
[IJKMEDIA] Metadata:
title : 公映国配
BPS : 448000
DURATION : 03:00:24.000000000
NUMBER_OF_FRAMES: 338250
NUMBER_OF_BYTES : 606144000
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3(eng), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
BPS : 61673
DURATION : 02:53:12.466000000
NUMBER_OF_FRAMES: 6170
NUMBER_OF_BYTES : 80117445
SOURCE_ID : 001200
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:4(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 原盘粤语中字
BPS : 44187
DURATION : 02:59:19.708000000
NUMBER_OF_FRAMES: 5904
NUMBER_OF_BYTES : 59431097
SOURCE_ID : 001208
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:5(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 原盘繁体中文
BPS : 41446
DURATION : 02:59:19.708000000
NUMBER_OF_FRAMES: 5992
NUMBER_OF_BYTES : 55743861
SOURCE_ID : 001209
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:6(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 简体特效
BPS : 81150
DURATION : 02:56:13.313000000
NUMBER_OF_FRAMES: 8519
NUMBER_OF_BYTES : 107253548
SOURCE_ID : 00120b
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:7(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 繁体特效
BPS : 82418
DURATION : 02:56:13.313000000
NUMBER_OF_FRAMES: 8519
NUMBER_OF_BYTES : 108929269
SOURCE_ID : 00120c
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:8(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 简英特效
BPS : 114254
DURATION : 02:56:13.313000000
NUMBER_OF_FRAMES: 8537
NUMBER_OF_BYTES : 151006246
SOURCE_ID : 00120d
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:9(chi), 0, 1/1000: Subtitle: hdmv_pgs_subtitle (default)
[IJKMEDIA] Metadata:
title : 繁英特效
BPS : 115525
DURATION : 02:56:13.313000000
NUMBER_OF_FRAMES: 8537
NUMBER_OF_BYTES : 152685272
SOURCE_ID : 00120e
_STATISTICS_WRITING_APP: mkvmerge v81.0 ('Milliontown') 64-bit
_STATISTICS_WRITING_DATE_UTC: 2024-02-06 02:37:03
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:10, 1, 1/90000: Video: mjpeg, 1 reference frame, yuvj420p(pc, bt470bg/unknown/unknown, center), 1517x1950 [SAR 1:1 DAR 1517:1950], 0/1, 90k tbr, 90k tbn (attached pic)
[IJKMEDIA] Metadata:
filename : cover.jpg
mimetype : image/jpeg
[IJKMEDIA]multiple video stream found, prefer first h264 stream: -1
[IJKMEDIA]aout_open_audio()
aout_open_audio:3,unsupported channels 6[IJKMEDIA]SDL_OpenAudio (6 channels, 48000 Hz)
[IJKMEDIA]aout_open_audio()
aout_open_audio:3,unsupported channels 4[IJKMEDIA]SDL_OpenAudio (4 channels, 48000 Hz)
[IJKMEDIA]aout_open_audio()
[IJKMEDIA]AudioCodec: avcodec, dts
[IJKMEDIA]aout_pause_audio(0)
[IJKMEDIA]try use videotoolbox accel
[IJKMEDIA]detected 6 logical cores
[IJKMEDIA]nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]Decoding VPS
[IJKMEDIA]Main 10 profile bitstream
[IJKMEDIA]nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]Decoding SPS
[IJKMEDIA]Main 10 profile bitstream
[IJKMEDIA]Decoding VUI
[IJKMEDIA]nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]Decoding PPS
[IJKMEDIA]nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]Decoding SEI
[IJKMEDIA]VideoCodec: avcodec, hevc
[IJKMEDIA]fps: 23.976024 (normal)
[IJKMEDIA]fps: 23.976024 (normal)
[IJKMEDIA]sub stream opened:3,serial:1
[IJKMEDIA]SubtitleCodec: avcodec, hdmv_pgs_subtitle
[IJKMEDIA]auto decision max buffer size:12MB
[IJKMEDIA]ijkmp_get_msg: FFP_MSG_PREPARED
[IJKMEDIA]nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]nal_unit_type: 20(IDR_N_LP), nuh_layer_id: 0, temporal_id: 0
[IJKMEDIA]Decoding VPS
[IJKMEDIA]Main 10 profile bitstream
[IJKMEDIA]Decoding SPS
[IJKMEDIA]Main 10 profile bitstream
[IJKMEDIA]Decoding VUI
[IJKMEDIA]Decoding PPS
[IJKMEDIA]Decoding SEI
[IJKMEDIA]Format videotoolbox_vld chosen by get_format().
[IJKMEDIA]Format videotoolbox_vld requires hwaccel initialisation.
[IJKMEDIA]ijkmp_get_meta_l
[IJKMEDIA]ijkmp_get_meta_l()=void
[IJKMEDIA]ijkmp_set_playback_rate(1.000000)
[IJKMEDIA]Playback rate: 1.000000
[IJKMEDIA]ijkmp_set_playback_rate()=void
[IJKMEDIA]ijkmp_set_playback_volume(1.000000)
[IJKMEDIA]ijkmp_set_playback_volume()=void
播放器已准备好,可以开始播放了
[IJKMEDIA]ijkmp_seek_to(6589000)
[IJKMEDIA]ijkmp_seek_to(6589000)=0
[IJKMEDIA]ijkmp_start()
[IJKMEDIA]ijkmp_start()=0
[IJKMEDIA]ijkmp_get_msg: FFP_REQ_SEEK
[IJKMEDIA]stream_seek 6589000000(6589000) + 0,
[IJKMEDIA]ijkmp_get_msg: FFP_REQ_SEEK: seek to 6589000
[IJKMEDIA]ijkmp_get_msg: FFP_REQ_START
[IJKMEDIA]ijkmp_get_msg: FFP_REQ_START: start on fly
[IJKMEDIA]aout_pause_audio(0)
[IJKMEDIA]aout_close_audio()
[IJKMEDIA]aout_set_volume()
[IJKMEDIA]ffp_toggle_buffering_l: start
[IJKMEDIA]aout_pause_audio(1)
[IJKMEDIA]aout_flush_audio()
数据缓存: 18
[IJKMEDIA]Original list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Interleaved list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Starting connection attempt to 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Successfully connected to 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]request: GET /emby/videos/3945/stream.mkv?api_key=280acb418241453bb4ca8dda3bd1fcc3&Static=true&mediaSource=637e90b07894c402576cc1d7e106a760&PlaySessionId=05d9a1d945e348c3b686e2324cbeea94 HTTP/1.1

User-Agent: ijkplayer

Accept: /

Range: bytes=10249666342-

Connection: close

Host:

Icy-MetaData: 1

[IJKMEDIA]ijkmp_ios_set_view(glView=0x0)
[IJKMEDIA]ijkmp_ios_set_view(glView=0x0)=void
[IJKMEDIA]ijkmp_stop()
[IJKMEDIA]aout_pause_audio(1)
[IJKMEDIA]ijkmp_stop()=0
[IJKMEDIA]ijkmp_shutdown_l()
[IJKMEDIA]aout_pause_audio(1)
播放销毁
[IJKMEDIA]will destroy avcodec:0,flush buffers.
[IJKMEDIA]wait for read_tid
[IJKMEDIA]Output frame with POC 0.
[IJKMEDIA]convert image convert_frame_count = 0,err = -1
[IJKMEDIA]Original list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Interleaved list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Starting connection attempt to 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Unknown entry 0xA3 at pos. 616602
[IJKMEDIA]File ended prematurely
[IJKMEDIA]Original list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Interleaved list of addresses:
[IJKMEDIA]Address 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]Starting connection attempt to 2409:8a00:603b:7f40:c868:dec4:d20f:2 port 8097
[IJKMEDIA]ffp_toggle_buffering_l: end
[IJKMEDIA]aout_pause_audio(1)
[IJKMEDIA]aout_close_audio()
[IJKMEDIA]sub stream closed:3
[IJKMEDIA]Statistics: 635936 bytes read, 2 seeks
[IJKMEDIA]wait for video_refresh_tid
[IJKMEDIA]ijkmp_shutdown_l()=void
[IJKMEDIA]ijkmp_set_inject_opaque(0x0)
[IJKMEDIA]ijkmp_set_inject_opaque()=void
[IJKMEDIA]ijkmp_set_ijkio_inject_opaque(0x0)
[IJKMEDIA]ijkmp_set_ijkio_inject_opaque()=void
[IJKMEDIA]ijkmp_dec_ref(): ref=0
[IJKMEDIA]ijkmp_shutdown_l()
[IJKMEDIA]ijkmp_shutdown_l()=void
[IJKMEDIA]aout_close_audio()

目前没有这样的测试视频,方便的话提供个测试视频给我。

目前没有这样的测试视频,方便的话提供个测试视频给我。
大佬看下这个视频吧,他的章节信息是下面这样的
videoplayback_out.mp4.zip

[IJKMEDIA] Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : Adding Chapters using FFMPEG
artist : Terry Butler
encoder : Lavf60.16.100
Duration: 00:02:44.35, start: 0.000000, bitrate: 336 kb/s
[IJKMEDIA] Chapters:
Chapter #0:0: start 0.000000, [IJKMEDIA]end 60.000000
[IJKMEDIA] Metadata:
title : Chapter 1
Chapter #0:1: start 60.000000, [IJKMEDIA]end 120.000000
[IJKMEDIA] Metadata:
title : Chapter 2
Chapter #0:2: start 120.000000, [IJKMEDIA]end 150.000000
[IJKMEDIA] Metadata:
title : Chapter 3

已经实现了,调用:

NSArray *chapteArr = self.player.monitor.chapterMetaArr;
NSLog(@"video chapters:%@",chapteArr);

结果

video chapters:(
        {
        end = 60000;
        id = 0;
        start = 0;
        title = "Chapter 1";
    },
        {
        end = 120000;
        id = 1;
        start = 60000;
        title = "Chapter 2";
    },
        {
        end = 150000;
        id = 2;
        start = 120000;
        title = "Chapter 3";
    }
)

代码将会在下个版本发布。

好的 谢谢大佬的耐心解答,期待下个版本