Giter Club home page Giter Club logo

dongbinghua / ad-insertion-sample Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openvisualcloud/ad-insertion-sample

0.0 0.0 0.0 209.67 MB

The ad-insertion reference pipeline shows how to integrate various media building blocks, with analytics powered by the OpenVINO™ Toolkit, for intelligent server-side ad insertion.

License: BSD 3-Clause "New" or "Revised" License

CMake 3.28% Dockerfile 7.05% Python 34.59% Shell 18.53% CSS 9.71% HTML 1.18% JavaScript 9.78% M4 12.88% Awk 0.62% Gosu 1.59% Smarty 0.80%

ad-insertion-sample's Introduction

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.

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:

  • Timezone: Check that the timezone setting of your host machine is correctly configured. Timezone is used during build. If you plan to run the sample on a cluster of machines managed by Docker Swarm or Kubernetes, please make sure to synchronize time among the manager/master node and worker nodes.

  • Build Tools: Install cmake and m4 if they are not available on your system.

  • Docker Engine:

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.


  • For Kubernetes/Docker Swarm, <hostname> is the hostname of the manager/master node.
  • If you see a browser warning of self-signed certificate, please accept it to proceed to the sample UI.

See Also:

ad-insertion-sample's People

Contributors

avenkats avatar cgdougla avatar dpatel257 avatar fkhoshne avatar g-schnaubelt-intel avatar jhou5 avatar sfblackl-intel avatar thanajirao avatar ttao1 avatar tthakkal avatar xwu2git avatar ywu75 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.