Skip to content

Optimized media, analytics and graphics software stack images. Use the dockerfile(s) in your project or as a recipe book for bare metal installation.

License

Notifications You must be signed in to change notification settings

daijh/Dockerfiles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo Software Stack Dockerfiles

HOMEPAGE Dockerhub Stable release Contributions

This repository hosts docker build files of software stacks and services, designed to enable Open Visual Cloud prioritized use cases such as media delivery, media analytics, cloud gaming and cloud graphics, and immersive media.


Validated docker images are available on Docker Hub.


Software Stack Images:

The software stack images provide ready to use software stacks for application deployment. You can call the software executables or link with the software libraries.

  • Media Delivery
Image Description
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.
gst 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.
nginx 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.
svt Image with SVT (Scalable Video Technology) Encoder and decoders. Ready to use SVT apps to try AV1, HEVC, VP9 transcoders. See svt.md for details.
  • Media Analytics
Image Description
ffmpeg Image optimized for media analytics. Included what are in the FFmpeg image, and the Intel® OpenVINO inference engine. See ffmpeg.md for details.
gst Image optimized for media analytics. Included what are in the GStreamer image, and the Intel OpenVINO inference engine. See gst.md for details.
  • Cloud Gaming and Graphics
Image Description
ospray Image optimized for intel ray tracing api. Based on embree, included ospray Ray Tracing engine and examples. See ospray.md for details.
ospray-mpi Image optimized for intel ray tracing api. Based on embree, included ospray Ray Tracing engine with examples(which require OpenImageIO) and multi-host connection via MPI. See ospray-mpi.md for details.

Development Images:

The development images enable application compilation, debugging (with the debugging, profiling tools) and optimization (with the optimization tools.) You can compile C++ applications with these images and then copy the applications to the corresponding deployment images for deployment.

Image Description
dev Image containing the FFmpeg and GStreamer C++ development files. The Intel OpenVINO model optimizer is to be included. See ffmpeg.md and gst.md for details.

Service Images:

The service images provides ready to use services. See their image descriptions for exposed service interfaces.

Image Description
owt Image optimized for video conferencing service based on the WebRTC technology and Open WebRTC Toolkit. Included conferencing modes: 1:N, N:N with video and audio processing nodes. see owt.md for details.

Support Matrix:

The project supports the following platforms and OS'es:

Supported Platforms Supported OS'es
Xeon Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, CentOS 7.4-7.6
Xeon E3 Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, CentOS 7.4-7.6
VCA2 Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, CentOS 7.4-7.6
VCAC-A Ubuntu 16.04 LTS, Ubuntu 18.04 LTS

Please see Development and Test Report for the latest development statuses.

Host Platform Setup:

  • Update kernels and firmwares: Please see each platform folder README for details.
  • Install cmake and m4 if they are not available on your platform.
  • Make sure your host datetime and timezone are configured properly, a prerequisite to install any Ubuntu security updates.
  • Follow the instructions to setup host date and time.
  • Follow the instructions to install docker.ce or docker.ee.
  • If you are behind a firewall, setup proxy as follows:
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     

Evaluate Image:

The docker images are published on Docker Hub with name pattern openvisualcloud/<_platform_>-<_OS_>-<_usage_>-<_image_>. Find and use the images as follows:

docker search openvisualcloud --limit=100 | grep analytics-ffmpeg #list media analytics ffmpeg images 
docker pull openvisualcloud/xeon-ubuntu1604-analytics-ffmpeg

Build Image:

mkdir build    
cd build     
cmake ..     
# Please build your specific platform image. A full build takes a long time.
cd Xeon/ubuntu-16.04/media/ffmpeg     
# Build on the target platform for optimal performance.
make    
ctest   

See Also: Build Options

Run Image Shell:

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

Customize Image:

  • You can modify any Dockerfile.m4 template for customization.
    For example, uncomment #include(transform360.m4) in Xeon/ubuntu-16.04/media/ffmpeg/Dockerfile.m4 to add essential 360 video transformation in the FFmpeg build.

After modification, please rerun cmake and make.

See Also: Build Options

Use Dockerfile(s) in Your Project:

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

update.sh:

DOCKER_REPO=${DOCKER_REPO="https://raw.githubusercontent.com/OpenVisualCloud/Dockerfiles/master/Xeon/ubuntu-18.04/media"}    
(echo "# xeon-ubuntu1804-media-ffmpeg" && curl ${DOCKER_REPO}/ffmpeg/Dockerfile) > Dockerfile.2    
(echo "# xeon-ubuntu1804-media-nginx" && curl ${DOCKER_REPO}/nginx/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

Optimized media, analytics and graphics software stack images. Use the dockerfile(s) in your project or as a recipe book for bare metal installation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dockerfile 86.5%
  • M4 9.3%
  • Shell 2.8%
  • CMake 1.4%