Skip to content
Basic capture and play programs for Blackmagic Design Decklink
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Capture.h Initial commit Dec 27, 2010

BlackMagic devices tools

Initially developed as an example integration between libavformat and the bmd sdk, it ended up being a set of useful tools to use the BlackMagic Devices decklink cards on Linux and macOS.

Thanks to TodoStreaming sponsoring its early development.

Build instructions

In order to build it just clone/unpack this on your Sample directory from the DeckLink SDK and then issue "make". If you have Libav and pkg-config or pkgconf installed it will build fine.

Make sure you are using at least Libav10 otherwise it will not build.

You can build it out of the Sample tree by issuing

make SDK_PATH=/path/to/the/bmd/include

macOS Support

Should work out of box.

Windows Support

The tools do not build on Windows currently, supporting it would either require a working widl support in mingw64 or access to the native tools.

Patch and/or sponsorship welcome.


./bmdcapture -C 1 -m 2 -F nut -o strict=experimental:syncpoints=none -f pipe:1 | avconv -vsync passthrough -y -i - <your options here>

-C select the capture device if more than one is present.

-F define the container format, I suggest using nut.

-f output file name, any libavformat compatible url is supported.

-m specific modeline, resolution+framerate

-o pass AVFormat AVOptions (expert)

NOTE: make sure you are processing frames capture in real time or be prepared to end up using all your memory quite quickly, HD raw data fills up memory quickly.

avconv -vsync 1 -i <source> -c:v rawvideo -pix_fmt uyvy422 -c:a pcm_s16le -ar 48000 -f nut -f_strict experimental -syncpoints none - | ./bmdplay -f pipe:0

NOTE: The default NUT syncpoint strategy uses additional memory and could consume more memory than expected.


The github issue tracker can be used to track bugs and feature requests.


You can directly contact me either at or

Paid Support

Paid support is offered, contact for details.

You can’t perform that action at this time.