From: Guillaume Pellerin Date: Wed, 31 Jan 2024 22:09:07 +0000 (+0100) Subject: add full double script X-Git-Tag: 3.0~31 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=f97537fd72704bf686680526359a95ecc9c94c34;p=telecaster-server.git add full double script --- 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 index 0000000..44043a4 --- /dev/null +++ b/bin/streaming/new/tc_video_simple_webm_stream-gst1-h264.sh @@ -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 diff --git a/bin/streaming/tc_start.sh b/bin/streaming/tc_start.sh index 8bd936d..69e5d12 100755 --- a/bin/streaming/tc_start.sh +++ b/bin/streaming/tc_start.sh @@ -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 diff --git a/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh b/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh index 165faae..7f1a8d0 100644 --- a/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh +++ b/bin/streaming/tc_video_simple_webm_stream-gst1-double.sh @@ -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 diff --git a/etc/telecaster/telecaster.conf b/etc/telecaster/telecaster.conf index 1abffbe..6f77697 100755 --- a/etc/telecaster/telecaster.conf +++ b/etc/telecaster/telecaster.conf @@ -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"