49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
trap do_exit INT
|
|
|
|
PIDS=""
|
|
do_exit() {
|
|
kill $PIDS >/dev/null 2>&1
|
|
sleep 10
|
|
kill -9 $PIDS >/dev/null 2>&1
|
|
pkill -9 gst-launch-1.0
|
|
}
|
|
|
|
v4l2-ctl -d /dev/video0 --set-ctrl=power_line_frequency=1 --set-ctrl=backlight_compensation=1
|
|
|
|
# provide video stream
|
|
(
|
|
while true; do
|
|
gst-launch-1.0 -e rtpbin name=b rtp-profile=avpf uvch264src device=/dev/video0 name=src auto-start=true \
|
|
src.vidsrc ! video/x-raw,framerate=30/1,profile=high ! videoscale ! video/x-raw,width=1920,height=1080 ! videoconvert ! x264enc tune=zerolatency bitrate=5000 speed-preset=superfast psy-tune=film key-int-max=15 ! rtph264pay ! rtpulpfecenc percentage=50 percentage-important=75 ! rtprtxqueue max-size-packets=5000 ! b.send_rtp_sink_0 \
|
|
b.send_rtp_src_0 ! udpsink host=terminal1 port=5001 \
|
|
udpsrc address=:: port=5002 ! b.recv_rtcp_sink_0 \
|
|
b.send_rtcp_src_0 ! udpsink host=terminal1 port=5003 sync=false async=false
|
|
sleep 1
|
|
done
|
|
) &
|
|
PIDS="$PIDS $!"
|
|
|
|
# send audio stream
|
|
amixer -c2 sset 'Mic' 100%
|
|
(
|
|
while true; do
|
|
gst-launch-1.0 alsasrc device=plughw:2,0 ! audioconvert ! audioresample ! opusenc ! rtpopuspay ! udpsink host=terminal1 port=5008
|
|
sleep 1
|
|
done
|
|
) &
|
|
PIDS="$PIDS $!"
|
|
|
|
# receive audio stream
|
|
amixer -c1 sset 'Speaker' 100%
|
|
(
|
|
while true; do
|
|
gst-launch-1.0 udpsrc address=:: port=5007 caps="application/x-rtp" ! rtpjitterbuffer latency=20 do-lost=True ! rtpopusdepay ! opusdec plc=true ! alsasink device=hw:1
|
|
sleep 1
|
|
done
|
|
) &
|
|
PIDS="$PIDS $!"
|
|
|
|
wait $PIDS
|