Я пытаюсь получить позицию потока HLS, который воспроизводится AVPlayer
, относительно начала потока.
Все, что мне удалось получить, это время от начала воспроизведения (с помощью AVPlayer.currentTime()
) и дату начала потока (с помощью AVPlayerItem.currentDate()
).
Я на 100% уверен, что смещение в секундах встроено в каждый файл MPEG TS, я просто не могу найти способ получить доступ к этому значению из AVPlayer или AVPlayerItem.
Вывод FFProbe для тестового фрагмента TS:
ffprobe version 3.3.4 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, mpegts, from 'toCharlie.ts':
Duration: 00:00:08.40, start: 16117.400000, bitrate: 1808 kb/s
Program 1
Stream #0:0[0x102]: Data: timed_id3 (ID3 / 0x20334449)
Stream #0:1[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 720x1280, 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream #0:2[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 132 kb/s
Смещение в секундах есть (start: 16117.400000
).
Можно ли вообще получить фактическое текущее время с начала потока?
Заранее спасибо.
РЕДАКТИРОВАТЬ: для ясности поток HLS - это живой поток, а не поток VOD.