X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=README;h=92ea7e1602b495160fac72a109162e69209e2bb0;hb=f98f6776f3a410c61dbf9fc523f28de7aa7fc154;hp=69172e38ad6afc07dfde8b0861cf457c377ef6d8;hpb=463c9c5898cf554386919892e09d2581c08dffce;p=nageru diff --git a/README b/README index 69172e3..92ea7e1 100644 --- a/README +++ b/README @@ -12,7 +12,7 @@ Features: - Proper sound support: Syncing of multiple unrelated sources through high-quality resampling, freely selectable input, cue out for headphones, - dynamic range compression, simple EQ (lowpass), level meters conforming + dynamic range compression, simple EQ (low-cut), level meters conforming to EBU R128. - Theme engine encapsulating the design demands of each individual @@ -46,13 +46,16 @@ Nageru is in beta stage. It currently needs: - 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. - Nageru has been tested with Intel on Mesa 10.x and 11.x (you probably want - 11.x), and with NVIDIA's proprietary drivers. AMD's proprietary drivers - (fglrx) are known not to work due to driver bugs; I am in contact with - AMD to try to get this resolved. + 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. + AMD's proprietary drivers (fglrx) are known not to work due to driver bugs; + I am in contact with AMD to try to get this resolved. - libzita-resampler, for resampling sound sources so that they are in sync between sources, and also for oversampling for the peak meter. @@ -66,8 +69,13 @@ 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 + +Exceptions as of May 2016: + + - You want kernel 4.6.0 or newer to get any use of the patches in + patches/ for persistent USB memory (see next paragraph). The patches/ directory contains some patches for upstream software that help @@ -86,12 +94,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