Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

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.