Browser, können oft maximal 6 Verbindungen – kann man bei Firefox via about:config
Option network.http.max-persistent-connections-per-server
entsprechend hochsetzen.
~/.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
#/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