- Two or more Blackmagic USB3 or PCI cards, either HDMI or SDI.
The PCI cards need Blackmagic's own drivers installed. The USB3 cards
- are driven through the “bmusb” driver embedded in bmusb/, using libusb-1.0.
- You want a recent kernel and libusb-1.0; see below.
+ are driven through the “bmusb” driver, using libusb-1.0. If you want
+ zerocopy USB, you need libusb 1.0.21-rc1 or newer, as well as a recent
+ kernel (4.6.0 or newer). Zerocopy USB helps not only for performance,
+ but also for stability.
- Movit, my GPU-based video filter library (https://movit.sesse.net).
You will need at least version 1.3.1.
- libmicrohttpd for the embedded web server.
- - x264 for encoding high-quality video suitable for streaming to end users
- (but see below).
+ - x264 for encoding high-quality video suitable for streaming to end users.
- - ffmpeg for muxing, and for encoding audio.
+ - ffmpeg for muxing, and for encoding audio. You will need at least
+ version 3.1.
- Working OpenGL; Movit works with almost any modern OpenGL implementation.
Nageru has been tested with Intel on Mesa (you want 11.2 or newer, due
If on Debian stretch or something similar, you can install everything you need
with:
- git submodule update --init
- apt install qtbase5-dev qt5-default pkg-config libmicrohttpd-dev \
+ apt install qtbase5-dev libqt5opengl5-dev qt5-default pkg-config libmicrohttpd-dev \
libusb-1.0-0-dev liblua5.2-dev libzita-resampler-dev libva-dev \
libavcodec-dev libavformat-dev libswscale-dev libavresample-dev \
- libmovit-dev libegl1-mesa-dev libasound2-dev libx264-dev
+ libmovit-dev libegl1-mesa-dev libasound2-dev libx264-dev libbmusb-dev \
+ protobuf-compiler libprotobuf-dev
-Exceptions as of June 2016:
+Exceptions as of October 2016:
- - You need libusb 1.0.21 or newer (not yet released; you will need to
- use git) if you want zerocopy USB. Zerocopy USB helps not only for
- performance, but also for stability.
-
- - You want kernel 4.6.0 or newer to get zerocopy USB. Older kernels
- also lack some workarounds for LPM (link power management) and bandwidth
- allocation issues with USB3.
-
- - There is a critical bug fix with x264 speed control in
- 928bd9d5def4f0ca5071ea176a11b816a01e6495, pushed to git mid-June 2016.
-
- - Nageru depends on an avformat API for marking block boundaries in the
- muxed byte stream that didn't enter ffmpeg before
- 4e7a9212820a56bc731c09b2f11ae1422d070837, pushed to git late June 2016.
+ - libusb 1.0.21-rc1 is not yet in stretch or sid; you need to fetch it
+ from experimental.
The patches/ directory contains a patch that helps zita-resampler performance.
If you have a fast CPU (typically a quadcore desktop; most laptops will spend
most of their CPU on running Nageru itself), you can use x264 for the outgoing
stream instead of Quick Sync; it is much better quality for the same bitrate,
-and also has proper bitrate controls. Simple add --http-x264-video on the
+and also has proper bitrate controls. Simply add --http-x264-video on the
command line. (You may also need to add something like "--x264-preset veryfast",
since the default "medium" preset might be too CPU-intensive, but YMMV.)
The stream saved to disk will still be the Quick Sync-encoded stream, as it is
Legalese: TL;DR: Everything is GPLv3-or-newer compatible, and see
-Intel's copyright license at h264encode.h.
+Intel's copyright license at quicksync_encoder.h.
Nageru is Copyright (C) 2015 Steinar H. Gunderson <steinar+nageru@gunderson.no>.
along with this program. If not, see <http://www.gnu.org/licenses/>.
-Portions of h264encode.h and h264encode.cpp:
+Portions of quicksync_encoder.h and quicksync_encoder.cpp:
Copyright (c) 2007-2013 Intel Corporation. All Rights Reserved.