Multiviews
rC3_21
Web
Browser, können oft maximal 6 Verbindungen – kann man bei Firefox via about:config
Option network.http.max-persistent-connections-per-server
entsprechend hochsetzen.
- http://streaming.media.ccc.de/<$konferenz>/multiview
- alle Streams inklusive Subformate, hängt Erfahrungsweise aber nach ein paar Stunden auf
-
- WebM SD mit Audio-Bars
Nativ
multiview-monitor
mit i3 und mpv bei der froscon16
~/.config/mpv/mpv.conf
hwdec=auto
start-streams-vertical.sh
#!/bin/bash export DISPLAY=:0 i3-msg workspace mpv mpv --no-audio --really-quiet rtmp://10.73.1.3:1935/stream/s1_native_hd & P1=$? i3-msg splith sleep 3 mpv --no-audio --really-quiet rtmp://10.73.2.3:1935/stream/s2_native_hd & P2=$? sleep 3 mpv --no-audio --really-quiet rtmp://10.73.3.3:1935/stream/s3_native_hd & P3=$? sleep 3 mpv --no-audio --really-quiet rtmp://10.73.4.3:1935/stream/s4_native_hd & P4=$? sleep 10 i3-msg focus parent sleep 3 i3-msg splitv sleep 3 mpv --no-audio --really-quiet rtmp://10.73.5.3:1935/stream/s5_native_hd & P5=$? sleep 10 i3-msg splith mpv --no-audio --really-quiet rtmp://10.73.6.3:1935/stream/s6_native_hd & P6=$? sleep 10 mpv --no-audio --really-quiet rtmp://10.73.7.3:1935/stream/s7_native_hd & P7=$? read kill -9 $P1 kill -9 $P2 kill -9 $P3 kill -9 $P4 kill -9 $P5 kill -9 $P6 kill -9 $P7
export DISPLAY=:0 chromium --new-window https://streaming.media.ccc.de/foss4g-2016/schedule chromium --new-window --disable-web-security --user-data-dir index.html
(Chromium wegen Hardwarebeschleunigung, index.html ist modifizierte version von voc.marudor.de bei der die zweite Hälfte der Streams von live.dus.c3voc.de gezogen wird um das 6er connection limit pro Server zu umgehen.)
Zwischen i3 workspaces hin und her schalten
while /bin/true; do for i in 1 3; do i3-msg workspace $i; sleep 10; done; done
mit ffmpeg
#/bin/bash o='rtmp://127.0.0.1/stream/loudness' for i in s{1,2,3,4,5,6,41,42} do if [[ ! -e /tmp/fifo${i} ]]; then mkfifo /tmp/fifo${i}; fi ffmpeg -hide_banner -v warning -y \ -i "http://cdn.c3voc.de/${i}_native_sd.webm" \ -filter_complex "nullsrc=size=640x840 [base]; [0:v] scale=640:360, fps=15 [scaled]; [0:a] ebur128=video=1:meter=18:size=640x480 [ebur][a1]; [ebur] fps=15 [v1]; [a1] aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo [audio]; [base][v1] overlay=shortest=1 [tmp1]; [tmp1][scaled] overlay=shortest=1:y=480 [ov]; [ov] drawtext=fontcolor=white:x=200:y=50:fontsize=128:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf:text=${i} [out]" \ -map "[out]" -c:v rawvideo -pix_fmt yuv420p \ -map "[audio]" -c:a pcm_s16le \ -f matroska "/tmp/fifo${i}" & #echo $! > /tmp/fifo${i}.pid done ffmpeg -hide_banner -v warning -y -fflags +genpts -flags +global_header \ -thread_queue_size 1024 -i /tmp/fifos1 \ -thread_queue_size 1024 -i /tmp/fifos2 \ -thread_queue_size 1024 -i /tmp/fifos3 \ -thread_queue_size 1024 -i /tmp/fifos4 \ -thread_queue_size 1024 -i /tmp/fifos5 \ -thread_queue_size 1024 -i /tmp/fifos6 \ -thread_queue_size 1024 -i /tmp/fifos41 \ -thread_queue_size 1024 -i /tmp/fifos42 \ -filter_complex " [0:a][1:a][2:a][3:a][4:a][5:a][6:a][7:a] amix=inputs=8 [audio]; nullsrc=size=2560x1680 [base]; [base][0:v] overlay=shortest=1 [tmp1]; [tmp1][1:v] overlay=shortest=1:x=640 [tmp2]; [tmp2][2:v] overlay=shortest=1:x=1280 [tmp3]; [tmp3][3:v] overlay=shortest=1:x=1920 [tmp4]; [tmp4][4:v] overlay=shortest=1:x=0:y=840 [tmp5]; [tmp5][5:v] overlay=shortest=1:x=640:y=840 [tmp6]; [tmp6][6:v] overlay=shortest=1:x=1280:y=840 [tmp7]; [tmp7][7:v] overlay=shortest=1:x=1920:y=840, fps=15 [out]" \ -map "[out]" -s 1280x800 \ -c:v libx264 \ -maxrate:v:0 2000k -bufsize:v:0 8192k -crf:0 21 \ -pix_fmt:0 yuv420p -profile:v:0 main -g:v:0 15 \ -preset:v:0 veryfast \ -map "[audio]" \ -c:a aac -b:a 96k -ar 44100 \ -y -f flv ${o} killall ffmpeg exit