Скриншоты¶
Sapsan умеет периодически снимать JPEG-кадры с потока: показывать актуальное превью в интерфейсах и сохранять кадры в архив вместе с видео.
Настройка¶
У потока может быть несколько генераторов скриншотов. Каждый берет кадры из одного из двух источников:
http_preview— забирать готовый JPEG по HTTP (например, snapshot-URL камеры);video_preview— рендерить кадр из видеодорожки самого потока.
streams:
cam1:
inputs:
- rtsp:
url: rtsp://admin:password@10.0.0.5/stream0
thumbnails:
- http_preview:
url: http://10.0.0.5/snapshot.jpg
timeout: 5 # таймаут запроса, сек (по умолчанию 5)
interval: 10 # период съемки, сек (по умолчанию 10)
dvr: true # сохранять кадры в архив (по умолчанию false)
- video_preview:
track: v1 # видеодорожка-источник
width: 320 # по умолчанию 320, минимум 32
height: 180
interval: 30
Правила валидации: interval и timeout должны быть больше 0; размеры кадра — не меньше 32; timeout допустим только у http_preview, а width/height — только у video_preview.
Защита от мусора: ответ, который не является JPEG или превышает лимит размера, отбрасывается — превью не обновляется.
Получение скриншотов¶
| Что | URL |
|---|---|
| Текущий кадр потока | http://server/streaming/live-preview-jpeg/<stream> |
| Кадр конкретной дорожки | http://server/streaming/track-preview-jpeg/<stream>/<track> |
| Кадр из архива | http://server/streaming/dvr-preview-jpeg/<stream>/<track>/image/<ref> |
Скриншоты в архиве¶
При dvr: true кадры пишутся в архив как отдельная JPEG-дорожка с реальными размерами кадра. В DASH-манифесте архива она отдается как стандартный thumbnail tile AdaptationSet (http://dashif.org/guidelines/thumbnail_tile) — плееры с поддержкой миниатюр на таймлайне подхватывают ее автоматически.