Skip to content

This repository provides dockerfiles for Open Visual Cloud software stacks. Use the dockerfile(s) in your project or as a reference point for bare metal installation. Welcome to this repository. Let's build software together.

License

Notifications You must be signed in to change notification settings

jsunintel/Dockerfiles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Visual Cloud Dockerfiles

Travis Build Status Stable release License Contributions

This repository hosts docker build files for multiple platform/OS/image combinations. Each image is tagged with development status.

Image:

  • FFmpeg: image optimized for media creation and delivery. Included codecs: aac, mp3, opus, ogg, vorbis, x264, x265, vp8/9, av1 and SVT-HEVC. The GPU images are accelerated with vaapi and qsv. See ffmpeg.md for details.
  • GStreamer: image optimized for media creation and delivery. Included the base, good, bad, ugly and libav set of plugins. The GPU images are accelerated with vaapi. See gst.md for details.
  • DLDT+FFmpeg: image optimized for media analytics. Included what are in the FFmpeg image. Inferencing engine and tracking plugins to be included. See ffmpeg.md for details.
  • DLDT+GStreamer: image optimized for media analytics. Included what are in the GStreamer image. Inferencing engine and tracking plugins to be included. See gst.md for details.
  • FFmpeg+GStreamer (Dev): FFmpeg + GStreamer + C++ development files. Model optimizer to be included. See ffmpeg.md and gst.md for details.
  • NGINX+RTMP: image optimized for web hosting and caching. Based on FFmpeg, included NGINX the web server and RTMP the RTMP, DASH and HLS streaming module. See nginx.md for details.
  • ospray: image optimized for intel ray tracing api. Based on embree, included ospray Ray Tracing engine and examples. At this moment does not include OpenImageIO (To be done soon). See ospray.md for details.

Status:

  • C: Compiled. Not yet tested.
  • T: Tested. Some tests failed.
  • V: Verified. All tests passed.
  • -: To be added in subsequent commits.
Platform: Xeon (CPU) Ubuntu 16.04 LTS Ubuntu 18.04 LTS CentOS-7.4 CentOS-7.5 CentOS-7.6
FFmpeg V V V V V
GStreamer V V V V V
DLDT(IE)+FFmpeg V V V V V
DLDT(IE)+GStreamer V V V V V
FFmpeg+GStreamer (Dev) V V V V V
NGINX+RTMP V V V V V
ospray V V V V V
Platform: VCA2 Ubuntu 16.04 LTS Ubuntu 18.04 LTS CentOS-7.4 CentOS-7.5 CentOS-7.6
FFmpeg V V V V V
GStreamer T T T T T
FFmpeg+GStreamer (Dev) T T T T T
NGINX+RTMP V V V V V
Platform: XeonE3 (GPU) Ubuntu 16.04 LTS Ubuntu 18.04 LTS CentOS-7.4 CentOS-7.5 CentOS-7.6
FFmpeg V V V V V
GStreamer T T T T T
FFmpeg+GStreamer (Dev) T T T T T
NGINX+RTMP V V V V V

Update kernel and firmware:

Please see each platform folder README for the platform setup instructions.

Install docker.ce:

Follow the instructions to install docker.ce.

Setup docker proxy:

If you are behind a firewall, setup proxy as follows:

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

Build docker image(s):

(1) mkdir build    
(2) cd build     
(3) cmake ..    
(4) cd Xeon/ubuntu-16.04/ffmpeg # please build your specific <_platform_>/<_OS_>/<_image_> only as a full build takes a long time.     
(5) make # build on the target processor for best performance.    
(6) ctest   

Run shell:

Xeon/ubuntu-16.04/ffmpeg/shell.sh #<_platform_>/<_OS_>/<_image_>

Customize:

You can modify any Dockerfile.m4 template for customization.
For example, uncomment #include(transform360.m4) in Xeon/ubuntu-16.04/ffmpeg/Dockerfile.m4 to add essential 360 video transformation in the FFmpeg build.
After modification, please rerun cmake and make.

Use alternative repo:

Certain source repo might be blocked in certain network. You can specify alternative repos before the build command as follows:

export AOM_REPO=...       
export VPX_REPO=...     
make

For a list of all REPOs and their versions, run the following command:

grep -E '_(REPO|VER)=' template/*.m4         

Use Dockerfile(s) in other project:

It is recommended that you copy the Dockerfile(s) of your platform, OS and image directly into your other project. The following shell scripts show how to sync (if needed) and build the NGINX+RTMP Dockerfile (and its dependency FFmpeg):

update.sh:

DOCKER_REPO=${DOCKER_REPO="https://raw.githubusercontent.com/OpenVisualCloud/Dockerfiles/master/Xeon/ubuntu-18.04"}    
(echo "# xeon-ubuntu1804-ffmpeg" && curl ${DOCKER_REPO}/ffmpeg/Dockerfile) > Dockerfile.2    
(echo "# xeon-ubuntu1804-nginx-rtmp" && curl ${DOCKER_REPO}/nginx+rtmp/Dockerfile) > Dockerfile.1    

build.sh:

for dep in .2 .1; do   
    image=$(grep -m1 '#' "Dockerfile$dep" | cut -d' ' -f2)   
    sudo docker build --network=host --file="Dockerfile$dep" -t "$image:latest" . $(env | grep -E '_(proxy)=' | sed 's/^/--build-arg /')   
done  

About

This repository provides dockerfiles for Open Visual Cloud software stacks. Use the dockerfile(s) in your project or as a reference point for bare metal installation. Welcome to this repository. Let's build software together.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dockerfile 85.0%
  • M4 10.3%
  • Shell 3.0%
  • CMake 1.7%