From b73135db7a0440986f1db2186b32760521035f7a Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 29 Jan 2024 12:07:24 +0100 Subject: [PATCH] use video ID as gst arg --- .../deefuzzer/telecaster_webm_monitor.yaml | 8 ++++---- src/home/telecaster/.fluxbox/autostart.sh | 4 +++- .../tc_video_simple_webm_stream-gst1-h264.sh | 14 ++++++++++---- .../scripts/tc_video_simple_webm_stream-gst1.sh | 17 +++++++++++++---- src/home/telecaster/.fluxbox/startup | 7 ++++++- 5 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/etc/telecaster/deefuzzer/telecaster_webm_monitor.yaml b/src/etc/telecaster/deefuzzer/telecaster_webm_monitor.yaml index 0d7fe35..8ce7c84 100644 --- a/src/etc/telecaster/deefuzzer/telecaster_webm_monitor.yaml +++ b/src/etc/telecaster/deefuzzer/telecaster_webm_monitor.yaml @@ -3,15 +3,15 @@ deefuzzer: m3u: /var/www/m3u/telecaster_webm_monitor.m3u station: control: {mode: 1, port: 16002} - infos: {description: TeleCaster WebM monitor stream, genre: Vocal, name: monitor.webm, short_name: monitor.webm, + infos: {description: TeleCaster WebM monitor stream, genre: Vocal, name: monitor_1.webm, short_name: monitor_1.webm, url: 'https://www.parisson.com'} jingles: {dir: /path/to/jingles, mode: '0', shuffle: '0'} media: {bitrate: '512', dir: /usr/local/share/telecaster/media/webm, format: webm, ogg_quality: '4', samplerate: '48000', shuffle: '0', voices: '1'} - record: {dir: /home/telecaster/trash/webm, mode: 1} - relay: {author: TeleCaster, mode: '1', url: 'http://127.0.0.1:8000/telecaster_live.webm'} + record: {dir: /home/telecaster/trash/webm/1, mode: 1} + relay: {author: TeleCaster, mode: '1', url: 'http://127.0.0.1:8000/telecaster_live_1.webm'} rss: {dir: /var/www/rss, enclosure: '0', media_url: 'http://localhost/rss/'} server: {host: 127.0.0.1, port: '8000', public: '0', sourcepassword: source2parisson, - type: icecast, mountpoint: monitor.webm} + type: icecast, mountpoint: monitor_1.webm} twitter: {key: 76728330-OjKgbHtn4II86Ad7pNUGEzfNAkGTW5Wvw38qUmLE, mode: '0', secret: 4egZs1dSM37XVY8zXa016Yueku2fleXF2bx8k25V4, tags: bla bla} diff --git a/src/home/telecaster/.fluxbox/autostart.sh b/src/home/telecaster/.fluxbox/autostart.sh index 24e92a3..85cf614 100755 --- a/src/home/telecaster/.fluxbox/autostart.sh +++ b/src/home/telecaster/.fluxbox/autostart.sh @@ -8,7 +8,9 @@ qjackctl & /home/telecaster/.fluxbox/scripts/tc_audio_mp3_icecast-gst1.sh & -/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1.sh & +/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh 0 & + +/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh 2 & sleep 8 diff --git a/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh b/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh index 44043a4..93bae08 100755 --- a/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh +++ b/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1-h264.sh @@ -8,6 +8,8 @@ set -e V4L2_ID=0 V4L2_ZOOM=140 V4L2_SHARPNESS=128 +V4L2_FORMAT=image/jpeg +#V4L2_FORMAT=video/x-h264 # C920 #VIDEO_WIDTH=864 @@ -15,8 +17,8 @@ V4L2_SHARPNESS=128 #VIDEO_FRAMERATE=24 # C922 -VIDEO_WIDTH=864 -VIDEO_HEIGHT=480 +VIDEO_WIDTH=1920 +VIDEO_HEIGHT=1080 VIDEO_FRAMERATE=24 VIDEO_FLIP=none @@ -28,6 +30,10 @@ AUDIO_GAIN_POST=1.5 source /etc/telecaster/telecaster.conf +# use 1rst arg for webcam ID +V4L2_ID=$1 +echo $V4L2_ID + # V4L2 setup v4l2-ctl -d $V4L2_ID -c power_line_frequency=1 v4l2-ctl -d $V4L2_ID -c zoom_absolute=$V4L2_ZOOM @@ -36,7 +42,7 @@ 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 \ +gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID ! $V4L2_FORMAT, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1 \ ! queue ! avdec_h264 \ ! queue ! videoflip method=$VIDEO_FLIP \ ! queue ! videoconvert \ @@ -52,5 +58,5 @@ gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID ! video/x-h264, width=$VIDEO_WI ! 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 + ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$V4L2_ID.webm > /dev/null diff --git a/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1.sh b/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1.sh index 85c1a8d..b6c3c83 100755 --- a/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1.sh +++ b/src/home/telecaster/.fluxbox/scripts/tc_video_simple_webm_stream-gst1.sh @@ -8,6 +8,10 @@ set -e V4L2_ID=0 V4L2_ZOOM=140 V4L2_SHARPNESS=128 +V4L2_FORMAT=image/jpeg +V4L2_DEC=jpegdec +#V4L2_FORMAT=video/x-h264 +#V4L2_DEC=avdec_h264 # C920 #VIDEO_WIDTH=864 @@ -15,8 +19,8 @@ V4L2_SHARPNESS=128 #VIDEO_FRAMERATE=24 # C922 -VIDEO_WIDTH=864 -VIDEO_HEIGHT=480 +VIDEO_WIDTH=1920 +VIDEO_HEIGHT=1080 VIDEO_FRAMERATE=24 VIDEO_FLIP=none @@ -28,6 +32,10 @@ AUDIO_GAIN_POST=1.5 source /etc/telecaster/telecaster.conf +# use 1rst arg for webcam ID +V4L2_ID=$1 +echo $V4L2_ID + # V4L2 setup v4l2-ctl -d $V4L2_ID -c power_line_frequency=1 v4l2-ctl -d $V4L2_ID -c zoom_absolute=$V4L2_ZOOM @@ -36,7 +44,8 @@ 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-raw, format=YUY2, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1 \ +gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID ! $V4L2_FORMAT, width=$VIDEO_WIDTH, height=$VIDEO_HEIGHT, framerate=$VIDEO_FRAMERATE/1 \ + ! queue ! $V4L2_DEC \ ! queue ! videoflip method=$VIDEO_FLIP \ ! queue ! videoconvert \ ! queue ! vp8enc threads=4 deadline=2 \ @@ -51,5 +60,5 @@ gst-launch-1.0 v4l2src device=/dev/video$V4L2_ID ! video/x-raw, format=YUY2, wid ! 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 + ! queue ! shout2send ip=127.0.0.1 port=8000 password=source2parisson mount=telecaster_live_$V4L2_ID.webm > /dev/null diff --git a/src/home/telecaster/.fluxbox/startup b/src/home/telecaster/.fluxbox/startup index baf3b08..960d0da 100644 --- a/src/home/telecaster/.fluxbox/startup +++ b/src/home/telecaster/.fluxbox/startup @@ -43,10 +43,15 @@ $FLUXBOX_DIR/scripts/tc_audio_mp3_icecast-gst1.sh & sleep 1 -$FLUXBOX_DIR/scripts/tc_video_simple_webm_stream-gst1-h264.sh & +$FLUXBOX_DIR/scripts/tc_video_simple_webm_stream-gst1.sh 0 & + +sleep 3 + +$FLUXBOX_DIR/scripts/tc_video_simple_webm_stream-gst1.sh 2 & sleep 1 + # STEREO setup # 1: L # 2: R -- 2.39.5