Автор: 
Павел М.
				
					
						Возникла задача организовать закрытую трансляцию камер на сайте. Ни один из стандартных вариантов (https://devline.ru/translation/) не подошёл, предложенные на форуме способы тоже не устроили. На скорую руку было набросано решение на nginx (нужен для корректной работы по HTTPS) и Video.js (собственно сам плеер).
	Плюсы:
		Полноценное HTML5 видео со всеми вытекающими.
	 
	
		Поддерживается Internet Explorer (по меньшей мере Windows 7/IE11 или новее, на более старых не проверял).
	 
	
		Поддержка работы по HTTPS без каких-либо предупреждений.
	 
	
		Скрыт реальный адрес сервера с «Линия IP».
	 
	
		Не используются сторонние сайты.
	 
	
		Разграничение доступа по пользователям.
	 
	Минусы:
		Весь трафик идёт через ваш сервер.
	 
	 
	В конфиг nginx надо будет добавить:
server {
    listen 443 ssl http2;
    root /usr/local/www/video;
    server_name video.example.com;
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    location / {
        auth_basic "My video server";
        auth_basic_user_file htpasswd;
    }
    location /cameras/ {
        proxy_pass http://devline.server.local:9786/cameras/;
    }
}
	Вместо devline.server.local указываем имя или IP-адрес вашего сервер «Линия IP». В файле htpasswd необходимо прописать имена пользователей и пароли (по паролям читаем документацию), которые совпадают с соответствующими пользователями на сервере «Линия IP» и которым необходимо дать доступ к трансляции.
	Для работы потокового вещания потребуется библиотека HLS для Video.js. Пример кода:
<!doctype html>
<html lang="ru">
<head>
	<meta charset="utf-8">
	<title>Видеонаблюдение</title>
	<link href="css/video-js.min.css" rel="stylesheet">
	<script src="js/videojs-ie8.min.js"></script>
	<script src="js/video.js"></script>
	<script src="js/lang/ru.js"></script>
	<script src="js/videojs-flash.min.js"></script>
	<script src="js/videojs-http-streaming.min.js"></script>
</head>
<body>
	<video id="video" class="video-js vjs-default-skin" width="640" height="360"
		poster="//video.example.com/cameras/0/image?resolution=640x360"
		preload="none" controls data-setup='{"language": "ru"}'>
		<source
			src="//video.example.com/cameras/0/streaming/main.m3u8"
			type="application/x-mpegURL" />
		<p class="vjs-no-js">Для просмотра этого видео, пожалуйста, включите JavaScript и убедитесь, что ваш браузер поддерживает HTML5-видео.</p>
	</video>
</body>
</html>