Code Monkey home page Code Monkey logo

ffmpeg-cuda-docker's Introduction

NVIDIA accelerated ffmpeg with docker 19.x

Build Status Dockerhub link

Inspired by https://github.com/dl-container-registry/ffmpeg

Features

NVENCODE (nvenc) and NVDECODE (formerly CUVID) are packaged in the NVIDIA Video Codec SDK.

Hardware Accelerated Encoders:

List options of an encoder using ffmpeg -h encoder=XXXX

  • h264_nvenc, nvenc, nvenc_h264
  • nvenc_hevc, hevc_nvenc

Hardware Accelerated Decoders:

List options of a decoder using ffmpeg -h decoder=XXXX

  • h264_cuvid
  • hevc_cuvid
  • mjpeg_cuvid
  • mpeg1_cuvid
  • mpeg2_cuvid
  • mpeg4_cuvid
  • vc1_cuvid
  • vp8_cuvid
  • vp9_cuvid

Hardware Accelerated Filters:

List options of a filter using ffmpeg -h filter=XXXX

  • hwupload_cuda
  • scale_cuda
  • scale_npp
  • thumnail_cuda

Build

docker build -t ffmpeg .

Usage

Run the container mounting the current directory to /workspace processing input.mp4 to output.mp4 without any hardware acceleration

docker run --rm -it \
    --volume $PWD:/workspace \
    ffmpeg -i input.mp4 output.avi
docker run --rm -it --gpus all \
    -e NVIDIA_VISIBLE_DEVICES=all \
    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video \
    --volume $PWD:/workspace \
    ffmpeg \
      -hwaccel_device 0 \
      -hwaccel cuvid \
      -c:v h264_cuvid \
      -i input.mp4 \
      -c:v hevc_nvenc
      out.mkv

Get a shell prompt inside the container, useful for debugging:

docker run --rm -it --gpus all \
    -e NVIDIA_VISIBLE_DEVICES=all \
    -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video \
    --volume $PWD:/workspace \
    --entrypoint bash
    ffmpeg

Resources

ffmpeg-cuda-docker's People

Contributors

romansavrulin avatar jpgreth 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.