Термин
Trick play
Операции плеера, отличные от обычного воспроизведения вперёд: перемотка вперёд, перемотка назад, миниатюры на ползунке перемотки, пошаговое воспроизведение кадров. Обычно они опираются на отдельную версию с низким битрейтом, содержащую только I-кадры.
Trick play охватывает всё, что зритель делает для навигации по контенту, кроме нажатия «воспроизвести». Это скроллинг по таймлайну, перемотка вперёд со скоростью 2× или 8×, отмотка назад, пошаговое прохождение кадров. У каждого из этих действий – свои технические требования, которых нет у обычного воспроизведения. Перемотка вперёд со скоростью 8× требует декодирования 8 секунд видео за одну секунду – это очень затратно для кодеков HEVC или AV1 при высоких битрейтах. Миниатюры на ползунке перемотки (scrub-баре) требуют, чтобы плеер подгружал превью на указанном таймстемпе, не затрагивая основной буфер воспроизведения.
Стандартное решение – трек для трюков (trick-play): низкобитовый, низкого разрешения, только из I-кадров, закодированный отдельно и указанный в манифесте. HLS использует плейлисты `EXT-X-I-FRAMES-ONLY`, DASH – AdaptationSet с `@trickModeType`. Плееры применяют этот трек для перемотки вперёд и назад, возвращаясь к обычному при скорости 1×. Для превью на ползунке перемотки отдельный трек в формате WebVTT или sprite-шейд позволяет плееру показывать превью размером 160×90 пикселей каждые N секунд без декодирования видео.
Хорошо реализовать trick play сложнее, чем кажется. Trick-play-rendition должен быть идеально выровнен с обычными rendition-ами по I-frame-границам. Scrub thumbnails должны грузиться достаточно быстро, чтобы обновляться со скоростью скрабинга. Долгий контент (фильмы, сериалы) сильно выигрывает от вылизанного trick play; короткий (Instagram, TikTok) его обычно вообще пропускает. У Netflix и YouTube известно хороший trick play; меньшие сервисы часто запускаются без него и добавляют как полировку позже.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.