Skip to content
ibm-skills-networkPublic

About

Skills Network media service for handling media processing, e.g. TTS, video processing, etc...

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

185 Commits

Folders and files

Media - GPU-Accelerated Video Transcoding Service

A video transcoding service built with Rails that leverages NVIDIA CUDA hardware acceleration to transcode videos to multiple quality levels. The service processes videos asynchronously using background jobs and stores outputs to cloud storage.

Getting Started

Prerequisites

  • Ruby 3.4.7
  • FFmpeg with CUDA support
  • NVIDIA GPU with NVENC/NVDEC support
  • Docker & Docker Compose

Setup

  1. Clone the repository

    git clone <repository-url>
    cd media
  2. Install dependencies

    bundle install
  3. Start services and setup database

    docker-compose up -d
    bin/rails db:create
    bin/rails db:prepare
    bin/rails data:migrate
  4. Start the application

    bin/dev
  5. Access the application

Key Features

  • GPU-Accelerated Transcoding - NVIDIA CUDA hardware encoding/decoding
  • Multiple Quality Profiles - Automatic transcoding to 480p, 720p, and 1080p
  • AV1 Encoding - Modern AV1 codec with hardware acceleration
  • Asynchronous Processing - Background job processing with Sidekiq
  • Cloud Storage - S3 and IBM Cloud Object Storage integration

GPU Compatibility

This service requires an NVIDIA GPU with AV1 NVENC support (RTX 40 series or newer). See the NVIDIA Video Encode and Decode GPU Support Matrix for compatible hardware.

FFmpeg is compiled from source with CUDA support. To build the FFmpeg image locally:

docker build -f utils/ffmpeg/Dockerfile -t ffmpeg-cuda:latest .

Testing

bundle exec rspec

License

Apache License 2.0

About

Skills Network media service for handling media processing, e.g. TTS, video processing, etc...

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages