Home

Awesome

Travis Build Status Stable release License Contributions

The E2E sample implements a server-side AD insertion system, which features on-demand video transcoding and streaming, and AD insertion based on video content analysis.

<img src="doc/overall-arch.png" width="800">

The Content Provider service serves original content, with on-demand transcoding, through the DASH or HLS streaming protocol. The AD Insertion service analyzes video content on the fly and inserts AD, with transcoding if needed, into the video stream at each AD break slot.

See Also: Demo Video

Software Stack:

The sample is powered by the following Open Visual Cloud software stacks:

Install Prerequisites:

sudo mkdir -p /etc/systemd/system/docker.service.d       
printf "[Service]\nEnvironment=\"HTTPS_PROXY=$https_proxy\" \"NO_PROXY=$no_proxy\"\n" | sudo tee /etc/systemd/system/docker.service.d/proxy.conf       
sudo systemctl daemon-reload          
sudo systemctl restart docker     

Build:

mkdir build    
cd build     
cmake ..    
make     

See also how to customize the building process with Build Options.

Generate DASH/HLS

By default, DASH/HLS segments are generated on the fly during playback, which requires a powerful server platform to keep up with the load. If unsure, it is recommended that you use the following commands to pre-generate DASH/HLS segments:

#content segment
make dash    # take a coffee break?        
make hls     # take a walk?!      

# ad segment
make addash
make adhls

Start/stop Services:

Use the following commands to start/stop services via docker swarm (see also Docker Swarm Setup).

make update # optional for private registry
make start_docker_swarm      
make stop_docker_swarm      

Use the following commands to start/stop services via Kubernetes (see also Kubernetes Setup):

make update # optional for private registry
make volume
make start_kubernetes      
make stop_kubernetes      

Launch browser:

Launch your browser and point to https://<hostname> to see the sample UI. Double click on any video clip to play the stream and see ADs got inserted during playback.

<IMG src="doc/adi-ui.gif" height="270px"></IMG>



See Also: