X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=README;h=ed86214d27d329ecddeb4c8f8c5c3107e1a062e2;hp=9755514c9957f5519263de06f3d9892ed568d067;hb=HEAD;hpb=5983f215fca61d7dcd1073daecc953b0f650b00f diff --git a/README b/README index 9755514..60a67c7 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ Nageru is a live video mixer, based around the standard M/E workflow. -Futatabi is a multicamera slow motion video server (currently undocumented). +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. @@ -36,35 +36,25 @@ 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 (Nageru does this automatically for you if needed). - - - 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.3. + 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 4.0. + 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 @@ -72,13 +62,9 @@ Nageru currently needs: - LuaJIT, for driving the theme engine. You will need at least version 2.1. - - SQLite, for storing Futatabi state. - - libjpeg, for encoding MJPEG streams when VA-API JPEG support is not available. - - Zita-resampler, for adjusting audio to be in sync with video. - - Protocol Buffers (protobuf), for storing various forms of settings and state. @@ -94,18 +80,37 @@ Nageru currently needs: 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. + -If on Debian buster or something similar, you can install everything you need +Futatabi also needs: + + - 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 libsqlite3-dev meson libjpeg-dev + libprotobuf-dev libsqlite3-dev meson libjpeg-dev libsrt-gnutls-dev -Exceptions as of December 2018: +Exceptions as of September 2023: - Debian does not carry CEF (but it is optional). You can get experimental (and not security-supported) CEF Debian packages built for unstable at @@ -113,16 +118,19 @@ Exceptions as of December 2018: meson obj -Dcef_dir=/usr/lib/x86_64-linux-gnu/cef -Dcef_build_type=system -Dcef_no_icudtl=true + 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. -Nageru uses Meson to build. For a default build, type +Nageru and Futatabi use Meson to build. For a default build (building both), +type meson obj && cd obj && ninja -To start it, just hook up your equipment, and then type “./nageru”. +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. @@ -163,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.