]> git.sesse.net Git - nageru-docs/blobdiff - streaming.rst
Add a monitoring section.
[nageru-docs] / streaming.rst
index 0e08eac38214f7d0616199c76146e4c40af03ca6..d6c44560b0ce5b882a7eaeb677510d77443f350a 100644 (file)
@@ -12,6 +12,8 @@ machines you may have available, you can choose two different
 approaches for streaming: **Transcoded** or **direct**.
 
 
 approaches for streaming: **Transcoded** or **direct**.
 
 
+.. _transcoded-streaming:
+
 Transcoded streaming
 --------------------
 
 Transcoded streaming
 --------------------
 
@@ -46,9 +48,9 @@ most browsers in the \<video\> tag::
       http://http://yourserver.example.org:9095/stream.nut vlc://quit \
       --sout '#transcode{vcodec=h264,vb=1500,acodec=mp4a,aenc=fdkaac,ab=128}:std{mux=ffmpeg{mux=mp4},access=http{mime=video/mp4},dst=:1994}' \
       --sout-avformat-options '{movflags=empty_moov+frag_keyframe+default_base_moof}' \
       http://http://yourserver.example.org:9095/stream.nut vlc://quit \
       --sout '#transcode{vcodec=h264,vb=1500,acodec=mp4a,aenc=fdkaac,ab=128}:std{mux=ffmpeg{mux=mp4},access=http{mime=video/mp4},dst=:1994}' \
       --sout-avformat-options '{movflags=empty_moov+frag_keyframe+default_base_moof}' \
-      --sout-x264-vbv-maxrate 1500 --sout-x264-vbv-bufsize 1500 --sout-mux-caching 3000 \
-      --sout-x264-keyint 50 --sout-mux-caching 3000 \
-      --sout-x264-tune film --sout-x264-preset slow
+      --sout-x264-vbv-maxrate 1500 --sout-x264-vbv-bufsize 1500 \
+      --sout-x264-keyint 50 --sout-x264-tune film --sout-x264-preset slow \
+      --sout-mux-caching 3000
     sleep 1
   done
 
     sleep 1
   done
 
@@ -104,11 +106,14 @@ flag; e.g.::
     --http-mux mp4 --http-audio-codec libfdk_aac --http-audio-bitrate 128
 
 Note the use here of the MP4 mux and AAC audio. “libfdk_aac” signals
     --http-mux mp4 --http-audio-codec libfdk_aac --http-audio-bitrate 128
 
 Note the use here of the MP4 mux and AAC audio. “libfdk_aac” signals
-te use of Franhofer's `FDK-AAC <https://github.com/mstorsjo/fdk-aac>`_ encoder
+the use of Franhofer's `FDK-AAC <https://github.com/mstorsjo/fdk-aac>`_ encoder
 from Android; it yields significantly better sound quality than e.g. FAAC,
 and it is open source, but under a somewhat cumbersome license. For this
 reason, most distributions do not compile FFmpeg with the FDK-AAC codec,
 so you will need to compile FFmpeg yourself, or use a worse codec.
 from Android; it yields significantly better sound quality than e.g. FAAC,
 and it is open source, but under a somewhat cumbersome license. For this
 reason, most distributions do not compile FFmpeg with the FDK-AAC codec,
 so you will need to compile FFmpeg yourself, or use a worse codec.
+FFmpeg `recommends <https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio>`_
+their own native AAC encoder (simply called “aac”) in the absence of any
+external libraries.
 
 For speed control, you can use::
 
 
 For speed control, you can use::
 
@@ -117,7 +122,9 @@ For speed control, you can use::
 
 There are many more parameters, in particular “--x264-bitrate” to control
 the nominal bitrate (4500 kbit/sec per default, plus audio). Most of them
 
 There are many more parameters, in particular “--x264-bitrate” to control
 the nominal bitrate (4500 kbit/sec per default, plus audio). Most of them
-are usually fine at the default, though.
+are usually fine at the default, though. Note that you can change the
+x264 bitrate on-the-fly from the video menu; this is primarily useful
+if your network conditions change abruptly.
 
 A particular note about the MP4 mux: If you plan to stream for long periods
 continuously (more than about 12–24 hours), the 32-bit timestamps may wrap
 
 A particular note about the MP4 mux: If you plan to stream for long periods
 continuously (more than about 12–24 hours), the 32-bit timestamps may wrap
@@ -144,3 +151,17 @@ spikes of 2x the nominal bitrate, but only on a one-second basis) and
 TCP retransmits. See the cubemap documentation for more information about
 how to set up pacing.
 
 TCP retransmits. See the cubemap documentation for more information about
 how to set up pacing.
 
+For transcoded Cubemap output from VLC you can take exactly the same line as
+earlier, just adding “metacube” to the HTTP options::
+
+  while :; do
+    vlc -I dummy -v --network-caching 3000 \
+      http://http://yourserver.example.org:9095/stream.nut vlc://quit \
+      --sout '#transcode{vcodec=h264,vb=1500,acodec=mp4a,aenc=fdkaac,ab=128}:std{mux=ffmpeg{mux=mp4},access=http{mime=video/mp4,metacube},dst=:1994}' \
+      --sout-avformat-options '{movflags=empty_moov+frag_keyframe+default_base_moof}' \
+      --sout-x264-vbv-maxrate 1500 --sout-x264-vbv-bufsize 1500 \
+      --sout-x264-keyint 50 --sout-x264-tune film --sout-x264-preset slow \
+      --sout-mux-caching 3000
+    sleep 1
+  done
+