X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=README;h=5e6c2e29079011e4bb77ee7f09ab0370aaa49cc8;hb=a1380b251cee714d04d719f724fa1a5b5b54eb1c;hp=179e97fe89304c5d4421f331b3ba6019ab783603;hpb=05db5353c5d4654213dcc9af511a46b480874e8d;p=nageru diff --git a/README b/README index 179e97f..5e6c2e2 100644 --- a/README +++ b/README @@ -33,18 +33,22 @@ Nageru is in beta stage. It currently needs: 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 cards, either HDMI or SDI. These are driven - through the “bmusb” driver embedded in bmusb/, using libusb-1.0. + - 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. Note that you will want a recent Linux kernel to avoid LPM (link power management) and bandwidth allocation issues with USB3. - Movit, my GPU-based video filter library (https://movit.sesse.net). - You will need at least version 1.3.0. + You will need at least version 1.3.1. - Qt 5.5 or newer for the GUI. - libmicrohttpd for the embedded web server. + - x264 for encoding high-quality video suitable for streaming to end users + (but see below). + - ffmpeg for muxing, and for encoding audio. - Working OpenGL; Movit works with almost any modern OpenGL implementation. @@ -65,8 +69,8 @@ with: git submodule update --init apt install qtbase5-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 libmovit-dev \ - libegl1-mesa-dev libasound2-dev + libavcodec-dev libavformat-dev libswscale-dev libavresample-dev \ + libmovit-dev libegl1-mesa-dev libasound2-dev libx264-dev The patches/ directory contains some patches for upstream software that help @@ -85,12 +89,32 @@ are running a desktop compositor, it will steal significant amounts of GPU performance. The same goes for PulseAudio. Nageru will open a HTTP server at port 9095, where you can extract a live -H264+PCM signal in QuickTime mux (e.g. http://127.0.0.1:9095/stream.mov). +H264+PCM signal in nut mux (e.g. http://127.0.0.1:9095/stream.nut). It is probably too high bitrate (~25 Mbit/sec depending on content) to send to users, but you can easily send it around in your internal network and then transcode it in e.g. VLC. A copy of the stream (separately muxed) will also be saved live to local disk. +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 +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 +typically higher bitrate and thus also higher quality. Note that if you add +".metacube" at the end of the URL (e.g. "http://127.0.0.1:9095/stream.ts.metacube"), +you will get a stream suitable for streaming through the Cubemap video reflector +(cubemap.sesse.net). A typical example would be: + + ./nageru --http-x264-video --x264-preset veryfast --x264-tune film \ + --http-mux mp4 --http-audio-codec libfdk_aac --http-audio-bitrate 128 + +If you are comfortable with using all your remaining CPU power on the machine +for x264, try --x264-speedcontrol, which will try to adjust the preset +dynamically for maximum quality, at the expense of somewhat higher delay. + +See --help for more information on options in general. The name “Nageru” is a play on the Japanese verb 投げる (nageru), which means to throw or cast. (I also later learned that it could mean to face defeat or