X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=README;h=ed86214d27d329ecddeb4c8f8c5c3107e1a062e2;hp=e153119b48c08981d9c7e217c3630a2c87b80370;hb=HEAD;hpb=78f790def69c653522cf3adf123c891ee654947d diff --git a/README b/README index e153119..60a67c7 100644 --- a/README +++ b/README @@ -1,7 +1,8 @@ Nageru is a live video mixer, based around the standard M/E workflow. +Futatabi is a multicamera slow motion video server. -Features: +Nageru features: - High performance on modest hardware (720p60 with two input streams on my Thinkpad X240[1]); almost all pixel processing is done on the GPU. @@ -35,43 +36,39 @@ to 800 MHz after 30 seconds due to thermal constraints), Intel HD Graphics Nageru currently needs: - - An Intel processor with Intel Quick Sync, or otherwise some hardware - H.264 encoder exposed through VA-API. Note that you can use VA-API over - DRM instead of X11, to use a non-Intel GPU for rendering but still use - Quick Sync (by giving e.g. “--va-display /dev/dri/renderD128”). - - - Two or more Blackmagic USB3 or PCI cards, either HDMI or SDI. + - Some sort of video capture cards; typically two or more Blackmagic USB3 + or PCI cards, either HDMI or SDI (V4L2 is not generally supported). The PCI cards need Blackmagic's own drivers installed. The USB3 cards - are driven through the “bmusb” driver, using libusb-1.0. If you want - zerocopy USB, you need libusb 1.0.21 or newer, as well as a recent - kernel (4.6.0 or newer). Zerocopy USB helps not only for performance, - but also for stability. You need at least version 0.7.0. + are driven through the “bmusb” driver, using libusb-1.0. - Movit, my GPU-based video filter library (https://movit.sesse.net). You will need at least version 1.5.2. - Qt 5.5 or newer for the GUI. - - QCustomPlot for the histogram display in the frame analyzer. - - libmicrohttpd for the embedded web server. - x264 for encoding high-quality video suitable for streaming to end users. - - ffmpeg for muxing, and for encoding audio. You will need at least - version 3.1. + - FFmpeg for muxing, and for encoding audio. You will need at least + version 5.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 - to critical stability bugfixes), and with NVIDIA's proprietary drivers. + Nageru has been tested with Intel on Mesa, and with NVIDIA's proprietary drivers. The status of AMD's proprietary drivers is currently unknown. - libzita-resampler, for resampling sound sources so that they are in sync between sources, and also for oversampling for the peak meter. - - LuaJIT, for driving the theme engine. + - LuaJIT, for driving the theme engine. You will need at least version 2.1. + + - libjpeg, for encoding MJPEG streams when VA-API JPEG support is not + available. + + - Protocol Buffers (protobuf), for storing various forms of settings and + state. - - libpci, for printing friendly PCI device names in an error message. + - Meson, for building. - Optional: CEF (Chromium Embedded Framework), for HTML graphics. If you build without CEF, the HTMLInput class will not be available from @@ -80,34 +77,61 @@ Nageru currently needs: http://opensource.spotify.com/cefbuilds/index.html Simply download the right build for your platform (the “minimal” build - is fine) and add CEF_DIR=/cef_binary_X.XXXX.XXXX.XXXXXXXX_linux64 - on the make command line (substituting X with the real version as required). + is fine) and add -Dcef_dir=/cef_binary_X.XXXX.XXXX.XXXXXXXX_linux64 + on the meson command line (substituting X with the real version as required). + + - Optional: libsrt, for SRT inputs (by default, Nageru will listen on + port 9710, although you can change this port on the command line, + turn it off with --srt-port -1, or turn it off live in the UI). + SRT can also be used for output in addition to listening for HTTP + (see --srt-destination). If you build with libsrt, make sure it is not + linked to OpenSSL, for license reasons. + + - Optional: SVT-AV1, for encoding high-quality video suitable for streaming to + end users (higher quality than using x264, but not nearly as mature). + You will need at least version 1.5.0. + +Futatabi also needs: -If on Debian stretch or something similar, you can install everything you need + - A fast GPU with OpenGL 4.5 support (GTX 1080 or similar recommended for + best quality at HD resolutions, although 950 should work). + + - SQLite, for storing state. + + +If on Debian bullseye or something similar, you can install everything you need with: - apt install qtbase5-dev libqt5opengl5-dev qt5-default libqcustomplot-dev \ + apt install qtbase5-dev libqt5opengl5-dev qt5-default \ pkg-config libmicrohttpd-dev libusb-1.0-0-dev libluajit-5.1-dev \ libzita-resampler-dev libva-dev libavcodec-dev libavformat-dev \ libswscale-dev libavresample-dev libmovit-dev libegl1-mesa-dev \ libasound2-dev libx264-dev libbmusb-dev protobuf-compiler \ - libprotobuf-dev libpci-dev + libprotobuf-dev libsqlite3-dev meson libjpeg-dev libsrt-gnutls-dev -Exceptions as of February 2018: +Exceptions as of September 2023: - - You will need Movit from unstable; stretch only has 1.4.0. + - Debian does not carry CEF (but it is optional). You can get experimental + (and not security-supported) CEF Debian packages built for unstable at + http://storage.sesse.net/cef/, and then configure Nageru with - - You will need bmusb from unstable; stretch only has 0.5.4. + meson obj -Dcef_dir=/usr/lib/x86_64-linux-gnu/cef -Dcef_build_type=system -Dcef_no_icudtl=true - - Debian does not carry CEF (but it is optional). The patches/ directory contains a patch that helps zita-resampler performance. It is meant for upstream, but was not in at the time Nageru was released. It is taken to be by Steinar H. Gunderson (ie., my ex-work email), and under the same license as zita-resampler itself. -To start it, just hook up your equipment, type “make” and then “./nageru”. +Nageru and Futatabi use Meson to build. For a default build (building both), +type + + meson obj && cd obj && ninja + +To start Nageru, hook up your equipment, and then type “./nageru”. +For Futatabi documentation, please see https://nageru.sesse.net/doc/. + It is strongly recommended to have the rights to run at real-time priority; it will make the USB3 threads do so, which will make them a lot more stable. (A reasonable hack for testing is probably just to run it as root using sudo, @@ -147,6 +171,9 @@ The name “Nageru” is a play on the Japanese verb 投げる (nageru), which m to throw or cast. (I also later learned that it could mean to face defeat or give up, but that's not the intended meaning.) +The name “Futatabi” comes from the Japanese adverb 再び (futatabi), which means +“again” or “for the second time”. + Nageru's home page is at https://nageru.sesse.net/, where you can also find contact information, full documentation and link to the latest version. @@ -162,6 +189,7 @@ Portions Copyright (C) 2010-2015 Fons Adriaensen . Portions Copyright (C) 2012-2015 Fons Adriaensen . Portions Copyright (C) 2008-2015 Fons Adriaensen . Portions Copyright (c) 2007-2013 Intel Corporation. All Rights Reserved. +Portions Copyright (C) 2019 Yngve Molnes. This program is free software: you can redistribute it and/or modify