diff --git a/config/ini/streaming-audio b/config/ini/streaming-audio index 65e4152..fff712e 100644 --- a/config/ini/streaming-audio +++ b/config/ini/streaming-audio @@ -152,7 +152,7 @@ audio mixer verbose 0 audio sink verbose 0 audio feed add 1 Audio 1 -audio feed channels 1 1 +audio feed channels 1 2 audio feed rate 1 44100 audio feed format 1 16 signed audio feed mute off 1 @@ -161,7 +161,7 @@ audio feed mute off 1 audio feed delay 1 50 audio feed add 2 Audio 2 -audio feed channels 2 1 +audio feed channels 2 2 audio feed rate 2 44100 audio feed format 2 16 signed audio feed mute off 2 diff --git a/config/ini/videomixer.ini b/config/ini/videomixer.ini index d75962e..0114932 100644 --- a/config/ini/videomixer.ini +++ b/config/ini/videomixer.ini @@ -85,7 +85,7 @@ tcl eval set scene(setactivesilent) 1 tcl eval SceneSetBackground 0 1 # Scene 1 -tcl eval SceneCreate "Fullscreen" 1 +tcl eval SceneCreate "Fullscreen 1" 1 #tcl eval SceneAddFrame 1 1 0 0 1280 720 tcl eval SceneAddFrame 1 2 1410 20 480 270 tcl eval SceneSetFrameSource 1 1 feed 2 0 1 @@ -93,6 +93,15 @@ tcl eval SceneSetFrameSource 1 1 feed 1 1 1 tcl eval SceneSetFrameSource 1 2 feed 2 1 1 tcl eval SceneSetBackground 1 1 +# Scene 2 +tcl eval SceneCreate "Fullscreen 2" 2 +tcl eval SceneAddFrame 2 1 0 0 1920 1080 +tcl eval SceneAddFrame 2 2 1410 20 480 270 +tcl eval SceneSetFrameSource 2 1 feed 2 0 1 +tcl eval SceneSetFrameSource 2 1 feed 1 1 1 +tcl eval SceneSetFrameSource 2 2 feed 2 1 1 +tcl eval SceneSetBackground 2 1 + tcl eval SceneSetState 0 1 include ini/streaming-audio diff --git a/docker-compose.yml b/docker-compose.yml index fcd83df..4637009 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,10 +32,11 @@ services: volumes: - sockets:/run/snowmix - ./tools:/tools:ro + - /storage:/storage environment: - SNOWMIX_YOUTUBE_SECRET ports: - - 20001:20001 + - 20000-20010:20000-20010 command: /tools/output2cdn-base ipc: host # FIXME workaround for janus staying in host network ;_; @@ -101,17 +102,17 @@ services: network_mode: host ipc: host - sound-capture: - build: . - restart: unless-stopped - volumes: - - sockets:/run/snowmix - - ./tools:/tools - command: /tools/pulse2feed 3 'alsa_output.pci-0000_00_0f.0.analog-stereo.monitor' - network_mode: host - ipc: host - environment: - - SNOWMIX_IP=10.8.0.95 - - PULSE_SERVER=sound.waw.hackerspace.pl + # sound-capture: + # build: . + #restart: unless-stopped + #volumes: + #- sockets:/run/snowmix + #- ./tools:/tools + #command: /tools/pulse2feed 3 'alsa_output.pci-0000_00_0f.0.analog-stereo.monitor' + #network_mode: host + #ipc: host + #environment: + #- SNOWMIX_IP=10.8.0.95 + #- PULSE_SERVER=sound.waw.hackerspace.pl volumes: sockets: diff --git a/tools/output2cdn-base b/tools/output2cdn-base index 3aba816..d17dfdd 100755 --- a/tools/output2cdn-base +++ b/tools/output2cdn-base @@ -159,13 +159,17 @@ echo SINK: $SINK queue !\ $audioencoder !\ $ENCAUDIOFORMAT !\ + tee name=encaudio ! \ queue !\ flvmux streamable=true name=mux !\ tee name=mirror !\ queue !\ $SINK \ encvid. ! queue ! rtph264pay config-interval=1 pt=96 ! udpsink host=janus port=8004 \ - mirror. ! queue ! tcpserversink port=20001 host=0.0.0.0 + mirror. ! queue ! tcpserversink port=20001 host=0.0.0.0 \ + encvid. ! queue ! previewmux. encaudio. ! queue ! previewmux. \ + matroskamux name=previewmux streamable=true ! tee name=mkvdump ! queue ! tcpserversink port=20002 host=0.0.0.0 \ + mkvdump. ! queue ! filesink location="/storage/streamdump-$(date +%Y%m%d_%H%M%S).mkv" exit 1 ) #fakesink \ diff --git a/tools/pulse2feed b/tools/pulse2feed index 205b18d..17b3918 100755 --- a/tools/pulse2feed +++ b/tools/pulse2feed @@ -72,7 +72,7 @@ snowmix=snowmix if [ X$snowmix != X ] ; then ( echo 'audio feed ctr isaudio '$feed_id - $gstlaunch -q $SRC ! queue ! audioconvert ! audioresample ! audiorate ! $AUDIOFORMAT ! fdsink fd=1 sync=true + $gstlaunch -q $SRC ! queue ! audioconvert ! audioresample ! audiorate ! $AUDIOFORMAT ! queue ! fdsink fd=1 sync=false ) | nc $SNOWMIX_IP $SNOWMIX_PORT else echo Snowmix is not running. Quitting $0