MosaicVod - How to deploy on the customer side
MosaicVod is a web application for watching HLS live streams, VODs and debuging HLS media on the ftp server/S3 (AWS Storage Service).
In this document you will find all the features of MosaicVod app.
Setup and infrastructure
Data flow: MCM → FTP server(live stream and indexing VODs) → MosaicVod
MCM: sends HLS stream to FTP server(Output->Configuartion->Choose output stream->Auxiliary Streams->Enable HLS Publish Point)
Templates for HLS Publish Point Url(FTP Server / S3 Bucket):
ftp://FTP_USER_NAME:FTP_PASSWORD@IP_ADDRESS/
https://BUCKET_NAME.s3.AWS_REGION.amazonaws.com/PATH_IN_BUCKET/;key=AW_SKEY;secret=AWS_SECRET_KEY
FTP server/S3: get all HLS streams from the MCM and stores all the VODs
you can use your FTP server or use internal FTP Server using our docker image(more details under docker image/container section below)
MosaicVod:
Backend: handle streams data, API to all the media files under the FTP folder/S3, “HLS server”
Frontend: web interface for HLS live streams, VODs, debug streams status and more
MosaicVod works automaticlly after running our docker image/container
Installing from downloaded 2.0.1 tar file
Please ensure Docker installed on your Ubuntu Server running on Intel or Arm CPU(s).
Use scp command to copy the “tagvs_mosaicvod2.0.1.tar” file to your local home folder.
Use command docker load <tagvs_mosaicvod2.0.1.tar to import the docker images.
If you have enough storage on your server you can have the installer create a volume as it builds the container with the following command:
docker run -d --name mosaicVod -v /home/ftp_data_folder:/ftp -p 80:80 -p 443:443 -p 21:21 -p 21100-21200:2110-21200 -e FTP_USER=ftpuser -e FTP_PASS=ftpuser registry.tagvs.com:443/mosaicvod:2.0.1
Command runs on one line. If you are moving storage to a different ftp server, create a docker volume pointing to that location and change the command:
docker run -d --name mosaicVod -v <your new volume>:/ftp -p 80:80 -p 443:443 -p 21100-21200:2110-21200 registry.tagvs.com:443/mosaicvod:2.0.1
Setup docker image/container
Docker image name: registry.tagvs.com:443/mosaicvod:2.0
Docker image contains mosaicVod application and FTP server(optional)
To download the image run the follow command in you system:
docker pull registry.tagvs.com:443/mosaicvod:2.0
docker image parameters
# This is an example of running the mosaicVod docker container
docker run -d --name mosaicVod \
-v /home/ftp_data_folder:/ftp \ # Must provide path to existing folder on the host machine to be used as ftp server storage
-p 80:80 \ # expose port 80 for GUI HTTP
# Following flags are otional in case you want to use an internal FTP server
-p 21:21 \
-p 21100-21200:21100-21200 \
-e FTP_USER=ftpuser \
-e FTP_PASS=ftpuser \
registry.tagvs.com:443/mosaicvod:2.0 # docker image name
MosaicVod GUI Features and configuration
MosiacVod is a single page application.
The application contains 2 main pages/panels + 2 dialog for debug and config:
Configuration dialog
Set interval for checking new media(live streams, live thumbnails and VODs)
Every live stream / VOD media has 4 status:
-VOD available-Online live stream
-Lost connection
-Deleted(delete from app only live stream not VOD). you can set the thresholds when to detect lost connection status and set when to delete offline stream.
For example(input data from image below):
- Every 10000 milisec(10 sec) the app will scan for new live streams, live thumbnails and VODs
*Recommanded to set interval equal to 1 chunk “time duration”
- After 3 cycles(30 sec) live stream is stucked/went offline the stream status will be “lost connection”
- After 10 cycles(100 sec) live stream will be deleted from app(only last live stream manifest will be deleted not VOD content)
- FTP Max Storage(GB) Threshold: when ftp folder size equal to this input, application will strat to delete the oldest data from the folder.
- The amout of data that will be deleted is defined by “How many GB to delete in %” inputStorage Type Config Section:
In this section you need to select your desired input Local(FTP) or S3.
- If selected “Media Folder Type” as Local the configuration is done via docker run command(mapping volume from outside / using the internal FTP Server)
- If selected S3 “Media Folder Type” as S3 the configuration is done in the fields below(*endpoint usually stays empty)
DO NOT FORGET! In the end, press on the Save config button
Debug dialog
In this dialog the user can monitor the last status of all the streams for example:
Encoder went offline
Detected/Added new live streams
Media panel
View all available live steams and VODs
Video panel
Video player
View live thumbnails from live streams
Monitoring live streams
Watch, Download & Delete VODs(Control Panel)
Mini media panel
Media Details:
all the details that can be found in the manifest + links to share
How to watch live?
Click on the Watch button on the media panel and if there is live stream the player will start to play the content automatically
How to watch, download and delete VOD?
If VOD exist you will see the “Control Panel VOD [media name]”
Watch VOD
Insert your desired start date, hour, and minutes → click “Watch VOD” button.
Usually the VOD video content start hour and end hour will be round hour.
For example, if you selected to watch from12:40 the start hour will be 12:00 and the end of the video will be 13:00.Forward and Rewind will start new video -+ 1 hour
Watching the last minute of the video the player will load new content automatically
Changing encoder settings sometimes will cause to “stuck video player”, as a result, message with keep watching button will show up.
Download VOD
Insert your desired start date and end date inputs → click “Download VOD“ button.
Delete VOD
Insert your desired start date and end date inputs → click “Delete VOD“ button.
Delete dialog will ask you if you sure about deleting VOD → click “Delete VOD” button
If you want to delete all the content of the device select “Delete all” → click “Delete VOD“ button
*You dont need to select start/end date
Enable VOD
To ensure that “VOD available” appears, on the MCM please set the HLS Index Generation Interval to a number instead of the default (For example, 1).