Upgrade to Pro

Медиа сервер MistServer

Wall
2024-08-10 15:23:21

MistServer — это сервер потокового видео с открытым исходным кодом, в котором особое внимание уделяется эффективности и универсальности. Одной из его уникальных особенностей являются возможности адаптивной потоковой передачи. MistServer использует технологию потоковой передачи с адаптивным битрейтом, которая автоматически регулирует качество видео в зависимости от интернет-соединения зрителя. Это обеспечивает плавность потоковой передачи для зрителей даже в сложных условиях сети. Кроме того, MistServer поддерживает широкий спектр потоковых протоколов и кодеков, что делает его совместимым с различными устройствами и платформами, включая настольные компьютеры, мобильные устройства и смарт-телевизоры.

Спецификации

Перечень функций:

Core  
On the fly stream repackager
Browser based management interface
Low footprint high performance
Modular design
Low latency
Multiplatform
Streaming  
Adaptive bitrate
SMIL RTMP multibitrate index
Wildcard support for live/vod (single setting for multiple streams)
Passthrough
Subtitle support
Recording
Smart HTML5 metaplayer
Stream process (encoders)
Integration  
API
Triggers - event based server flow changes
Stream meta-data
Basic analytics
Advanced analytics
Prometheus integration
Seamless integration with other programs/databases
Security  
Digital Rights Management
Access control
Encryption
Stream password protection
HTTPS
Rate-limiting
Access logs
Scaling  
Load balancer
Pull from other servers/services
Push to other servers/services
Extremely fast boot times
One set of binaries per customer
Translator
 
 
 
 

Поддерживаемые входящие протоколы

Protocol  
RTMP single bitrate
RTMP multi bitrate
MPEG-TS (uni-/multicast)
Annex B H264
RTSP
MP4 files
HLS files
HLS pull
TS files
FLV files
MKV files
MKV Stream
MP3 files
ISMV files
DTSC files
DTSC pull
OGG files
SRT (Secure Reliable Transport)
WebRTC

Поддерживаемые исходящие протоколы

Protocol  
HLS (CMAF)
DASH (CMAF)
DASH-IF Live Media Ingest Protocol (progressive CMAF push)
MP4
MP4 live
WS/MP4 (MP4 over websocket)
HLS (TS)
LL-HLS (CMAF)
RTMP
RTMP multibitrate
RTMP push single-/multi bitrate
WebRTC
MPEG-TS (unicast)
MPEG-TS (multicast)
MPEG-TS push
RTSP (stream/push)
HDS
FLV
MKV
MP3
DTSC
OGG
WAV
AAC
SRT
File recording (TS, MKV, FLV, MP3, WAV)

MistServer video support matrix

  AVC/H264 HEVC/H265 AV1 VP8/VP9 MPEG2/H262 Flash** Theora
DTSC
HLS (TS) - - - -
HLS (CMAF) - - - -
DASH (CMAF) - - - - -
MKV
MP4 -
WS/MP4 (MP4 over websocket) - - - - -
RTMP/FLV/HDS - - - - -
RTSP
TS - -
SRT - -
OGG -
WebRTC - - - -

"-" stands for Not Applicable
** The flash codecs are VP6, JPEG, H.263 and Screen Video 1&2. 

MistServer audio support matrix

  AAC AC3 MP3 MP2 Flash Vorbis Opus PCM G711
DTSC
HLS (TS) - - - - -
HLS (CMAF) - - - - -
DASH (CMAF) - - -
MKV
MP4
WS/MP4 (MP4 over websocket)
MP3 - - - - - - - -
RTMP/FLV/HDS - - -
RTSP
TS
SRT
OGG
WAV - - - -
WebRTC - - - - - - -

"-" stands for Not Applicable
** The flash codecs are ADPCM, Nelly and Speex.

Поддержка операционных систем

Хотя приведенный ниже список не содержит всех операционных систем, на которых мы можем работать, это список наиболее широко известных операционных систем.

Operating System Support 3.0 2.x
Unix
Solaris
Linux x86
Linux x86_64
Linux ARM
Linux MIPS
OS X
Windows 64 bits

Поддержка OS X и Windows будет включена в будущем в сборки 3.0

Официальный источник

Теперь когда мы ознакомились со спецификацией MistServer и поняли, что это именно то что нам нужно можно приступить к установке. Я буду устанавливать на Debian 12.6. Сама установка не представляет каких-либо сложностей - что называется "из коробки" и устанавливается в один клик, одной командой.

Установить MistServer:

curl -o - https://releases.mistserver.org/is/mistserver_64V3.4.tar.gz 2>/dev/null | sh

Вход в админку:

http://<local-ip-adress>:4242

  1. При первом входе создать аккаунт #логин/пароль
  2. Открываем порты: 554,1935,4242,8080

554 - RTSP
1935 - RTMP
4242 - Web UI (админка)
8080 - HTTP / HLS

Усдалить MistServer:

curl -o - https://releases.mistserver.org/uninstallscript.sh 2>/dev/null | sh

Wall
2024-08-22 01:08:26

Translator
 
 
 
 

Translator
 
 
 
 

Доступ к серверу из Интернета

И так мы подключали устройства друг к другу по локальной сети. Хорошо, но как нам увидеть наши домашние камеры из офиса или во время отпуска? Ответ, опять же, с помощью переадресации портов. Всегда можно настроить его вручную на роутере. В любом случае, если на маршрутизаторе включен протокол UPnP, это можно очень легко сделать с нашего сервера, используя простой инструмент командной строки.

Установить upnpc (по умолчанию он не доступен):
https://www.nat32.com/v2/upnpc.htm

sudo apt install miniupnpc

Направьте пару внешних портов по вашему выбору на соответствующие порты MistServer, а именно 4242 и 8080. СОВЕТ: вы можете подумать об использовании сценария запуска для автоматизации этого процесса.

upnpc -a server_ip server_port external_port tcp
upnpc -a 192.168.1.17 4242 8181 tcp
upnpc -a 192.168.1.17 8080 8080 tcp

Теперь должен быть возможен доступ как к серверу, так и к его выходным потокам, используя публичный адрес и настроенные порты, маршрутизатор выполнит эту работу. СОВЕТ: чтобы узнать публичный адрес маршрутизатора, вы можете использовать сайт Whatismyipaddress.com.

Для удобства работы, поскольку IP-адрес маршрутизатора может со временем меняться, лучше зарегистрировать учетную запись динамического DNS и настроить маршрутизатор или сервер на периодическое его обновление (как это сделать, зависит от службы, на которую вы подписались). . Таким образом, вместо использования IP-адреса вы сможете использовать что-то вроде myserver.dyndns.org, которое гораздо легче запомнить и которое всегда актуально.