]> git.sesse.net Git - nageru/blobdiff - README
Mesa 11.2.2 is now in stretch.
[nageru] / README
diff --git a/README b/README
index 69172e38ad6afc07dfde8b0861cf457c377ef6d8..92ea7e1602b495160fac72a109162e69209e2bb0 100644 (file)
--- 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