https://github.com/OpenVisualCloud/CDN-Transcode-Sample
Media transcoding is a key function for live video broadcasting, streaming, and video on demand use cases in a CDN network. The CDN Transcode sample (not a finished product) provides a reference pipeline to build an out-of-box 1:N CDN streaming transcode service example.
https://github.com/OpenVisualCloud/CDN-Transcode-Sample
dash docker ffmpeg hls msdk nginx svt
Last synced: 27 days ago
JSON representation
Media transcoding is a key function for live video broadcasting, streaming, and video on demand use cases in a CDN network. The CDN Transcode sample (not a finished product) provides a reference pipeline to build an out-of-box 1:N CDN streaming transcode service example.
- Host: GitHub
- URL: https://github.com/OpenVisualCloud/CDN-Transcode-Sample
- Owner: OpenVisualCloud
- License: other
- Archived: true
- Created: 2019-01-24T02:47:31.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-11T20:06:28.000Z (6 months ago)
- Last Synced: 2024-11-11T21:19:17.911Z (6 months ago)
- Topics: dash, docker, ffmpeg, hls, msdk, nginx, svt
- Language: Python
- Homepage:
- Size: 3.13 MB
- Stars: 120
- Watchers: 17
- Forks: 37
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- trackawesomelist - OpenVisualCloud/CDN-Transcode-Sample (⭐120) - Media transcoding is a key function for live video broadcasting, streaming, and video on demand use cases in a CDN network. The CDN Transcode sample (not a finished product) provides a reference pi... (Recently Updated / [Mar 14, 2025](/content/2025/03/14/README.md))
README
# PROJECT NOT UNDER ACTIVE MANAGEMENT #
This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
### Open Visual Cloud CDN Transcode Sample
[](https://travis-ci.com/OpenVisualCloud/CDN-Transcode-Sample)
[](https://github.com/OpenVisualCloud/CDN-Transcode-Sample/releases/tag/v1.0)
[](https://github.com/OpenVisualCloud/CDN-Transcode-Sample/blob/master/LICENSE)
[](https://github.com/OpenVisualCloud/CDN-Transcode-Sample/wiki)The CDN Transcode Sample is an Open Visual Cloud software stack with all required open source ingredients well integrated to provide out-of-box simple transcode or transcode+CDN service, including live streaming and video on demand. It also provides Docker-based media delivery software development environment upon which developer can easily build their specific applications.
### Architecture
The sample implements a reference server-side transcode system over CDN infrastructure, which features `live streaming` and `VOD`. Among them, the `VOD` service can run independently to provide a simple transcode service.
### Software Stacks
The sample is powered by the following Open Visual Cloud software stacks:
- Media transcoding software stack:
The FFmpeg-based media transcoding stack is used to transcode media content from a higher resolution/quality to a lower resolution/quality. The software stack is optimized for Intel Xeon Scalable Processors and Intel XeonE3 Scalable Processors.
- Media streaming and Web Hosting software stack:
The NGINX-based software stack is used to host web services, video content and provide video streaming services. The software stack is optimized for Intel Xeon Scalable Processors.
### Install Prerequisites:
- **Time Zone**: 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, please make sure to synchronize time among the controller node and worker nodes.
- **Build Tools**: Install `cmake`, `make`, `m4`, `wget` and `gawk` if they are not available on your system.
- **Docker Engine**:
- Install [docker engine](https://docs.docker.com/get-docker). Minimum version required: `17.05`. Make sure you setup docker to run as a regular user.
- Setup `Kubernetes`. See [Kubernetes Setup](deployment/kubernetes/README.md) for additional setup details.
- Setup docker proxy as follows if you are behind a firewall:```
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 the Sample
Run the following command to run the sample as a simple transcoder:
```
mkdir build
cd build
cmake ..
make
```Run the following command to run the sample as transcode+CDN:
```
mkdir build
cd build
cmake -DSCENARIO=cdn ..
make
```---
If you deploy the sample to a cluster, please configure the sample, as `cmake -DREGISTRY= ..`, to push the sample images to the private docker registry after each build.
To deploy without a private registry, run `make update` after each build to push the sample images to the cluster nodes (which requires passwordless access from the master node to the worker nodes.)
---
### Deploy the Sample
Start/stop the sample with Kubernetes [yaml configurations](deployment/kubernetes/yaml):
```
make volume
make start_kubernetes
...
make stop_kubernetes
```Start/stop the sample with Kubernetes [Helm charts](deployment/kubernetes/helm):
```
make volume
make start_helm
...
make stop_helm
```For the `transcode` scenario, look at the logs of the `benchmark` pod for the batch transcoding summary. For the `cdn` scenario, point your browser to `https://` to watch the list of video clips via `DASH` or `HLS`.
# See Also
- [Kubernetes Setup](deployment/kubernetes/README.md)
- [Build Options](doc/cmake.md)
- [Reference Architecture](https://networkbuilders.intel.com/solutionslibrary/container-bare-metal-for-2nd-generation-intel-xeon-scalable-processor)