Differences between revisions 6 and 7
Revision 6 as of 2016-08-03 23:33:55
Size: 3464
Editor: DaveNoble
Revision 7 as of 2016-08-03 23:34:25
Size: 3483
Editor: DaveNoble
Deletions are marked like this. Additions are marked like this.
Line 40: Line 40:
== 3. (Optional) Set up reflector to video.nuug.no == == 3. (Optional) Set up reflector for WebM streaming to video.nuug.no ==


Initial Configuration

Based on TG - Tech:Server: Git

0. (Optional) Start Jack and EBUmeter to keep an eye on audio signal levels

Run qjackctl to start the Jack control gui Start Jack Run ebumeter Use the "connect" dialog in Qjackctl to connect VLC to Ebumeter when ready. Hit "play" on Ebumeter when the transmission has started to get the LRA for programme.

1. Connect equipment

Connect equipment as neccessary such that the encoder laptop is receiving a 1080i25 signal with embedded audio on a Decklink card.

Try and ensure that there is sufficient bandwidth on the NUUG encoder laptop to handle the stream. Generally, wired connections to the Internet are preferable.

Connection schematic as follows:

2. Set up encoder / recorder

Send a h.264 UDP stream to a reflector for further processing / transcoding / broadcast (most reliable)

./vlc -I dummy \
-v decklink:// vlc://quit --live-caching 3000 --sout \
'#duplicate{dst="display",dst="transcode{height=720,vcodec=h264,vb=3500,acodec=mp4a,aenc=fdkaac,ab=128,deinterlace}:std{access=udp,mux=ts,dst=<put target machine here>:6666}"'  \
--sout-x264-preset veryfast --sout-x264-tune film --sout-mux-caching 12000 --sout-x264-vbv-maxrate 7500 --sout-x264-vbv-bufsize 10000 --sout-avformat-options '{movflags=empty_moov+frag_keyframe+default_base_moof,frag_interleave=5}' --no-avcodec-dr --sout-x264-keyint 50 --sout-deinterlace-mode=linear

Send a UDP stream to a reflector for further processing / transcoding / broadcast, also encode a Theora webstream for Icecast (quite reliable)

./vlc -I dummy \
-v decklink:// vlc://quit --live-caching 3000 --sout \
'#duplicate{dst="display{deinterlace,scale=0.5}",dst="transcode{threads=6,height=720,vcodec=h264,vb=4000,acodec=mp4a,aenc=fdkaac,ab=128,deinterlace}:std{access=udp,mux=ts,dst=}",dst="transcode{threads=2,vcodec=theo,vb=3500,height=720,acodec=vorb,ab=192,fps=25}:std{access=shout,mux=ogg,dst=source:Insert NUUG Icecast password here...@video.nuug.no:8000/live.ogg}"' \
--sout-x264-preset veryfast --sout-x264-tune film --sout-x264-vbv-maxrate 7500 --sout-x264-vbv-bufsize 10000 --no-avcodec-dr --sout-x264-keyint 50 --sout-deinterlace-mode=linear --sout-mux-caching 24000

NB. VLC on its current build seems to be having issues muxing VP8 + vorbis in a WebM container. Workaround: follow next section.

3. (Optional) Set up reflector for WebM streaming to video.nuug.no

ffmpeg -i udp://localhost:6666 \
  -f webm \
  -cluster_size_limit 2M \                                                                    
  -cluster_time_limit 5100 \                                                                  
  -content_type video/webm   \
  -c:a libvorbis -b:a 128K   \
  -c:v libvpx \
  -b:v 3M \
  -g 5 \
  -crf 30 \
  -quality realtime \
  -threads 8 \
  icecast://source:Insert NUUG password here...@video.nuug.no:8000/live.webm

4. (Optional) Set up reflector to Youtube + reflect further

Set up a Youtube live event, get the event keys for the ingestor.

Tested as working, useful for very fast publishing.

vlc -vvv -I dummy udp://@:6666 \
--sout '#duplicate{dst=std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/session-key-goes-here}, dst=std{access=udp,mux=ts,dst=some-other-host.nuug.no:6667}}'

grupper/video/streaming_oppsett (last edited 2016-08-03 23:34:25 by DaveNoble)