Skip to content
Luca Barbato edited this page Oct 11, 2017 · 12 revisions

The bmdtools are a collection of minimal applications to capture and playback using Blackmagic Devices Decklink hardware.

Setup

bmdtools needs a recent version of libav installed. In order to build it make sure to have the development headers installed.

MacOSX

Prerequisites

  • Use brew to install git, nasm, x264, x265 and fdk-aac.
  • Build libav from git
# git clone git://github.com/libav/libav
# cd libav
# ./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-libx265 --enable-libfdk-aac
# make -j 8 && make install

Build

# git clone git://github.com/lu-zero/bmdtools
# cd bmdtools
# make SDK_PATH=<path where you unpacked the decklink sdk>/Mac/include
Install
# cp bmdcapture bmdplay /usr/local/bin

Linux

The Gentoo users can just emerge =libav-9999 to get the current libav master. The Ubuntu and related distribution can leverage this repository and apt-get install libavformat-dev libswscale-dev to get everything that is needed, in the future you might need to apt-get install libavresample-dev libavscale-dev.

Building from source

The common scenario assumes you want to use x264 to encode the video and fdk-aac to encode the audio. You might use x265 and opus as well but they are not supported in many container formats.

The following instructions assume you want to install everything in /usr/local.

Prerequisites

The system should provide at least pkgconf or pkg-config, a C99 compiler, gnu make, autotools (in order to build opus and fdk-aac) and cmake (to build x265).

nasm

nasm is needed to build x264 and libav.

# git clone git://repo.or.cz/nasm.git
# cd nasm
# autoreconf -ivf
# ./configure
# make
# make install
x264
# git clone git://github.com/videolan/x264.git
# cd x264
# ./configure --enable-static --disable-lavf
# make
# make install
x265
# git clone git://github.com/videolan/x265
# cd x265/build
# cmake ../source
# make
# make install

fdk-aac
# git clone git://git.code.sf.net/p/opencore-amr/fdk-aac
# cd fdk-aac
# autoreconf -if
# ./configure
# make
# make install
opus
# git clone git://git.opus-codec.org/opus.git
# cd opus
# autoreconf -if
# ./configure
# make
# make install
libav
# git clone git://github.com/libav/libav
# cd libav
# ./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-libx265 --enable-libfdk-aac
# make -j 8 && make install
Decklink SDK

Unpack decklink sdk in a reachable path

Build

# git clone git://github.com/lu-zero/bmdtools
# cd bmdtools
# make SDK_PATH=<path where you unpacked the decklink sdk>/<Target OS>/include

Note: The SDK currently supports Linux and MacOSX. Thus the <Target OS can be either Linux or Mac.

Install

# cp bmdcapture bmdplay /usr/local/bin

Support

The bmdcapture software is mainly developed in my spare time, I can try my best to help if you have issues and I try to fix reported bugs once they are reported, but I cannot provide free support for software I do not use such as FFbmc. If you have problems please do try to reproduce the issue using avconv and the libraries from the current libav master.