summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Blajda <blajda@hotmail.com>2020-03-27 19:37:34 +0000
committerDavid Blajda <blajda@hotmail.com>2020-03-27 19:37:34 +0000
commit6edfa84af9d163ab8a2af89302a06d9be77bf024 (patch)
treead502cc49c563d82283125bacd0039665d9ec344
parent0b7240469a5ca43d77d67681271142b5900628d6 (diff)
Modify pipeline and add forward obs scriptHEADmaster
-rwxr-xr-xforward-obs-stream.sh9
-rwxr-xr-xprepare-videochat.sh38
2 files changed, 25 insertions, 22 deletions
diff --git a/forward-obs-stream.sh b/forward-obs-stream.sh
new file mode 100755
index 0000000..0102694
--- /dev/null
+++ b/forward-obs-stream.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+#Issues:
+# Sometimes the pipeline will not begin prerolling and hangs. If this occurs
+# terminate and try again.
+
+GST_VAAPI_ALL_DRIVERS=1 gst-launch-1.0 -v rtmpsrc location="rtmp://localhost:1935/live/video" ! flvdemux name=demux \
+ demux.audio ! queue ! decodebin ! audioconvert ! fakesink \
+ demux.video ! queue ! decodebin ! videoconvert ! "video/x-raw,format=I420" ! v4l2sink device=/dev/video0
diff --git a/prepare-videochat.sh b/prepare-videochat.sh
index ffbb142..e3d91d7 100755
--- a/prepare-videochat.sh
+++ b/prepare-videochat.sh
@@ -163,11 +163,11 @@ PORT=8080
DISABLE_PROXY=0
# Dimensions of video
-WIDTH=640
-HEIGHT=480
+WIDTH=1920
+HEIGHT=1080
# Frame rate of video
-GST_FPS=24
+GST_FPS=30
# Choose audio codec from wav, aac or opus
# do not choose opus until editing pipeline. If choose opus, pipeline will not work
@@ -178,16 +178,16 @@ AUDIO_CODEC=wav
# Choose which stream to capture.
# a - audio only, v - video only, av - audio and video.
# Make sure that IP webcam is streaming corresponding streams, otherwise error will occur.
-CAPTURE_STREAM=av
+CAPTURE_STREAM=v
# Loopback device to be used. This only needs to be uncommented if you
# want to skip autodetection (e.g. for multiple webcams):
-#DEVICE=/dev/video0
+DEVICE=/dev/video1
# Force syncing to timestamps. Useful to keep audio and video in sync,
# but may impact performance in slow connections. If you see errors about
# timestamping or you do not need audio, you can try changing this to false.
-SYNC=true
+SYNC=false
### FUNCTIONS
@@ -372,7 +372,7 @@ GST_AUDIO_CAPS="$GST_AUDIO_MIMETYPE,$GST_AUDIO_FORMAT$GST_AUDIO_LAYOUT,$GST_AUDI
PA_AUDIO_CAPS="$GST_AUDIO_FORMAT $GST_AUDIO_RATE $GST_AUDIO_CHANNELS"
# GStreamer debug string (see gst-launch manpage)
-GST_DEBUG=souphttpsrc:0,videoflip:0,$GST_CONVERTER:0,v4l2sink:0,pulse:0
+GST_DEBUG=souphttpsrc:0,videoflip:0,$GST_CONVERTER:5,v4l2sink:5,pulse:0
# Is $GST_CONVERTER defined anywhere? Maybe you mean videoconvert vs ffmpegcolorspace? It is in GST_VIDEO_CONVERTER
### MAIN BODY
@@ -475,10 +475,10 @@ if can_run "$ADB"; then
fi
# Remind the user to open up IP Webcam and start the server
-if phone_plugged && ! iw_server_is_started; then
- # If the phone is plugged to USB and we have ADB, we can start the server by sending an intent
- start_iw_server
-fi
+#if phone_plugged && ! iw_server_is_started; then
+# # If the phone is plugged to USB and we have ADB, we can start the server by sending an intent
+# start_iw_server
+#fi
while ! iw_server_is_started; do
if [ $CAPTURE_STREAM = av ]; then
@@ -542,18 +542,11 @@ fi
# Start the GStreamer graph needed to grab the video and audio
set +e
-#sudo v4l2loopback-ctl set-caps $GST_0_10_VIDEO_CAPS $DEVICE
-
pipeline_video() {
- echo souphttpsrc location="$VIDEO_URL" do-timestamp=true is-live=true \
- ! multipartdemux \
- ! decodebin \
- $GST_FLIP \
- ! $GST_VIDEO_CONVERTER \
- ! videoscale \
- ! videorate \
- ! $GST_VIDEO_CAPS \
- ! v4l2sink device="$DEVICE" sync=$SYNC
+ echo souphttpsrc location="$VIDEO_URL" is-live=true \
+ ! jpegdec \
+ ! videoconvert \
+ ! v4l2sink device="$DEVICE"
}
pipeline_audio() {
@@ -605,6 +598,7 @@ kill $GSTLAUNCH_PID > /dev/null 2>&1 || echo ""
pactl set-default-source ${DEFAULT_SOURCE}
pactl unload-module ${ECANCEL_ID}
pactl unload-module ${SINK_ID}
+adb forward --remove tcp:$PORT
echo "Disconnected from IP Webcam. Have a nice day!"
# idea: capture ctrl-c signal and set default source back