ts
Директива 'ts' настраивает location для приема MPEG-TS потоков по HTTP.
Описание
Директива 'ts' необходима для настройки live streaming MPEG-TS (MPEG Transport Stream) видео по HTTP на сервере NGINX. Когда она включена в блоке location, она позволяет серверу принимать данные MPEG-TS от клиентов, таких как инструменты потоковой передачи или энкодеры. Последний компонент запрошенного URI интерпретируется как имя потока, используемое для управления потоком во время воспроизведения в реальном времени. Например, в запросе к http://server/foo/bar/baz сегмент 'baz' определяется как имя потока.
Данная директива играет ключевую роль в сочетании с другими директивами, такими как 'ts_hls' для HLS (HTTP Live Streaming) или 'ts_dash' для MPEG-DASH, позволяя серверу предоставлять плейлисты и сегменты, необходимые для адаптивного битрейта. Для оптимальной производительности и снятия ограничений по размеру тела HTTP-запроса рекомендуется установить директиву client_max_body_size в 0, что позволит неограниченные размеры тела и обеспечит плавное воспроизведение в реальном времени. Кроме того, тело запроса обрабатывается внутренним обработчиком, который инициализирует контекст потоковой передачи для последующих операций, таких как создание и управление сегментами.
Пример конфига
location /stream/ {
ts;
ts_hls path=/var/hls segment=5s;
}Убедитесь, что последний компонент URI уникален и используется как имя потока, чтобы избежать коллизий.
Убедитесь, что параметр 'client_max_body_size' установлен в '0', чтобы предотвратить усечение больших полезных нагрузок при трансляции в реальном времени.
Учтите, что без 'ts_hls' или 'ts_dash' директива 'ts' сама по себе не отдаёт содержимое; ей требуются дополнительные директивы для эффективной работы.