]> git.parisson.com Git - telecaster-server.git/commitdiff
add full double script
authorGuillaume Pellerin <guillaume.pellerin@free.fr>
Wed, 31 Jan 2024 22:09:07 +0000 (23:09 +0100)
committerGuillaume Pellerin <guillaume.pellerin@free.fr>
Wed, 31 Jan 2024 22:09:07 +0000 (23:09 +0100)
bin/streaming/new/tc_video_simple_webm_stream-gst1-h264.sh [new file with mode: 0755]
bin/streaming/tc_start.sh
bin/streaming/tc_video_simple_webm_stream-gst1-double.sh
etc/telecaster/telecaster.conf

diff --git a/bin/streaming/new/tc_video_simple_webm_stream-gst1-h264.sh b/bin/streaming/new/tc_video_simple_webm_stream-gst1-h264.sh
new file mode 100755 (executable)
index 0000000..44043a4
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+
+set -e
+
+# Default TeleCaster video parameters
+
+# v4l2
+V4L2_ID=0
+V4L2_ZOOM=140
+V4L2_SHARPNESS=128
+
+# C920
+#VIDEO_WIDTH=864
+#VIDEO_HEIGHT=480
+#VIDEO_FRAMERATE=24
+
+# C922
+VIDEO_WIDTH=864
+VIDEO_HEIGHT=480
+VIDEO_FRAMERATE=24
+VIDEO_FLIP=none
+
+# Audio
+AUDIO_CHANNELS=2
+AUDIO_OPUS_BITRATE=96000
+AUDIO_GAIN_PRE=2.5
+AUDIO_GAIN_POST=1.5
+
+source /etc/telecaster/telecaster.conf
+
+# V4L2 setup
+v4l2-ctl -d $V4L2_ID -c power_line_frequency=1
+v4l2-ctl -d $V4L2_ID -c zoom_absolute=$V4L2_ZOOM
+v4l2-ctl -d $V4L2_ID -c focus_auto=0
+v4l2-ctl -d $V4L2_ID -c focus_absolute=1
+v4l2-ctl -d $V4L2_ID -c sharpness=$V4L2_SHARPNESS
+
+# GST launch
+gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID ! video/x-h264, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1  \
+       ! queue ! avdec_h264 \
+       ! queue ! videoflip method=$VIDEO_FLIP \
+       ! queue ! videoconvert \
+       ! queue ! vp8enc threads=4 deadline=2 \
+       ! queue ! muxout. \
+       jackaudiosrc connect=2 ! audio/x-raw, format=F32LE, channels=$AUDIO_CHANNELS \
+       ! queue ! audiocheblimit mode=high-pass cutoff=120 poles=4 \
+       ! queue ! volume volume=$AUDIO_GAIN_PRE \
+       ! queue ! audiodynamic characteristics=soft-knee mode=compressor threshold=0.125 ratio=0.125 \
+    ! queue ! volume volume=$AUDIO_GAIN_POST \
+       ! queue ! audiodynamic characteristics=hard-knee mode=compressor threshold=0.95 ratio=0.001 \
+       ! queue ! audioconvert \
+       ! queue ! opusenc bitrate=$AUDIO_OPUS_BITRATE \
+       ! queue ! muxout. \
+       webmmux streamable=true name=muxout \
+       ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live.webm
+       > /dev/null
index 8bd936d70cdb56d11ff22edf7213a1d9eb8c96a4..69e5d12def64b282a8fca2f6279d699ffe6eb3c8 100755 (executable)
@@ -16,11 +16,11 @@ qjackctl &
 
 sleep 1
 
-$TELECASTER_SERVER/bin/streaming/tc_audio_mp3_icecast-gst1.sh &
+/srv/telecaster/telecaster-server/bin/streaming/tc_audio_mp3_icecast-gst1.sh &
 
 sleep 1
 
-$TELECASTER_SERVER/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh &
+/srv/telecaster/telecaster-server/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh &
 
 sleep 3
 
index 165faae7aaa851e0cd941feb2a66d4e6d2584573..7f1a8d08f390796b0ac9c537e958ffba10b752d5 100644 (file)
@@ -6,18 +6,18 @@ set -e
 
 source /etc/telecaster/telecaster.conf
 
-# V4L2 setup
-if [ ! -z "${V4L2_ZOOM-}" ]; then
-v4l2-ctl -d $V4L2_ID_1 -c power_line_frequency=1
-v4l2-ctl -d $V4L2_ID_1 -c zoom_absolute=$V4L2_ZOOM
-v4l2-ctl -d $V4L2_ID_1 -c focus_auto=0
-v4l2-ctl -d $V4L2_ID_1 -c focus_absolute=1
-v4l2-ctl -d $V4L2_ID_1 -c sharpness=$V4L2_SHARPNESS
+# VIDEO setup
+if [ ! -z "${VIDEO_ZOOM_1-}" ]; then
+v4l2-ctl -d $VIDEO_ID_1 -c power_line_frequency=1
+v4l2-ctl -d $VIDEO_ID_1 -c zoom_absolute=$VIDEO_ZOOM_1
+v4l2-ctl -d $VIDEO_ID_1 -c focus_auto=0
+v4l2-ctl -d $VIDEO_ID_1 -c focus_absolute=1
+v4l2-ctl -d $VIDEO_ID_1 -c sharpness=$VIDEO_SHARPNESS_1
 fi
 
-gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID_1 ! $V4L2_FORMAT, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1  \
-       ! queue ! $V4L2_DEC \
-       ! queue ! videoflip method=$VIDEO_FLIP \
+gst-launch-1.0 v4l2src device=/dev/video$VIDEO_ID_1 ! $VIDEO_FORMAT_1, width=$VIDEO_WIDTH_1, height=$VIDEO_HEIGHT_1, framerate=$VIDEO_FRAMERATE_1/1  \
+       ! queue ! $VIDEO_DEC_1 \
+       ! queue ! videoflip method=$VIDEO_FLIP_1 \
        ! queue ! videoconvert \
        ! queue ! vp8enc threads=4 deadline=2 \
        ! queue ! muxout. \
@@ -31,22 +31,23 @@ gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID_1 ! $V4L2_FORMAT, width=$VIDEO_
        ! queue ! opusenc bitrate=$AUDIO_OPUS_BITRATE \
        ! queue ! muxout. \
        webmmux streamable=true name=muxout \
-       ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$V4L2_ID_1.webm
+       ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$VIDEO_ID_1.webm
        > /dev/null
 
 
-# V4L2 setup
-if [ ! -z "${V4L2_ZOOM-}" ]; then
-v4l2-ctl -d $V4L2_ID_2 -c power_line_frequency=1
-v4l2-ctl -d $V4L2_ID_2 -c zoom_absolute=$V4L2_ZOOM
-v4l2-ctl -d $V4L2_ID_2 -c focus_auto=0
-v4l2-ctl -d $V4L2_ID_2 -c focus_absolute=1
-v4l2-ctl -d $V4L2_ID_2 -c sharpness=$V4L2_SHARPNESS
+# VIDEO setup
+if [ ! -z "${VIDEO_ZOOM_2-}" ]; then
+v4l2-ctl -d $VIDEO_ID_2 -c power_line_frequency=1
+v4l2-ctl -d $VIDEO_ID_2 -c zoom_absolute=$VIDEO_ZOOM_2
+v4l2-ctl -d $VIDEO_ID_2 -c focus_auto=0
+v4l2-ctl -d $VIDEO_ID_2 -c focus_absolute=1
+v4l2-ctl -d $VIDEO_ID_2 -c sharpness=$VIDEO_SHARPNESS_2
 fi
 
-gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID_2 ! $V4L2_FORMAT, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1  \
-       ! queue ! $V4L2_DEC \
-       ! queue ! videoflip method=$VIDEO_FLIP \
+
+gst-launch-1.0 v4l2src device=/dev/video$VIDEO_ID_2 ! $VIDEO_FORMAT_2, width=$VIDEO_WIDTH_2, height=$VIDEO_HEIGHT_2, framerate=$VIDEO_FRAMERATE_2/1  \
+       ! queue ! $VIDEO_DEC_2 \
+       ! queue ! videoflip method=$VIDEO_FLIP_2 \
        ! queue ! videoconvert \
        ! queue ! vp8enc threads=4 deadline=2 \
        ! queue ! muxout. \
@@ -60,7 +61,6 @@ gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID_2 ! $V4L2_FORMAT, width=$VIDEO_
        ! queue ! opusenc bitrate=$AUDIO_OPUS_BITRATE \
        ! queue ! muxout. \
        webmmux streamable=true name=muxout \
-       ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$V4L2_ID_2.webm
+       ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$VIDEO_ID_2.webm
        > /dev/null
 
-done
index 1abffbec1a1ce8e8352e986b388c8b3dd0296efa..6f7769787bfd0d9a8e9619f1af0988bde148bdba 100755 (executable)
@@ -17,17 +17,33 @@ V4L2_SHARPNESS=144
 V4L2_FORMAT=image/jpeg
 V4L2_DEC=jpegdec
 
-# C920
-#VIDEO_WIDTH=864
-#VIDEO_HEIGHT=480
-#VIDEO_FRAMERATE=24
-
-# C922
 VIDEO_WIDTH=864
 VIDEO_HEIGHT=480
 VIDEO_FRAMERATE=24
 VIDEO_FLIP=rotate-180
 
+VIDEO_ID_1=0
+VIDEO_WIDTH_1=864
+VIDEO_HEIGHT_1=480
+VIDEO_FRAMERATE_1=24
+VIDEO_FLIP_1=rotate-180
+VIDEO_ZOOM_1=140
+VIDEO_SHARPNESS_1=144
+VIDEO_FORMAT_1=image/jpeg
+VIDEO_DEC_1=jpegdec
+
+
+VIDEO_ID_2=2
+VIDEO_WIDTH_2=864
+VIDEO_HEIGHT_2=480
+VIDEO_FRAMERATE_2=24
+VIDEO_FLIP_2=rotate-180
+VIDEO_ZOOM_2=140
+VIDEO_SHARPNESS_2=144
+VIDEO_FORMAT_2=image/jpeg
+VIDEO_DEC_2=jpegdec
+
+
 # Audio
 AUDIO_CHANNELS=2
 AUDIO_OPUS_BITRATE=96000
@@ -38,5 +54,4 @@ AUDIO_GAIN_POST=1.5
 # Jackd
 JACK_OPTIONS="-dalsa -r48000 -p1024 -n3 -Chw:3 -Phw:3"
 
-TELECASTER_SERVER="/srv/telecaster/telecaster-server"