aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-08-29 07:30:43 +0200
committerdec05eba <dec05eba@protonmail.com>2020-08-29 07:30:43 +0200
commitf7f8ef174760d94088878ccf9db4fcada3c2aaf0 (patch)
treea18c4db9477c67a82225ecda65f1f253a13bcade
parent0780efe87d28765520e0d31eaba6fdabc91dd13e (diff)
Add script for streaming while saving a local copy of the video
-rw-r--r--README.md1
-rwxr-xr-xinteractive.sh2
-rwxr-xr-xreplay.sh2
-rwxr-xr-xtwitch-stream-local-copy.sh6
-rwxr-xr-xtwitch-stream.sh3
5 files changed, 10 insertions, 4 deletions
diff --git a/README.md b/README.md
index 8f1c9ca..750b8af 100644
--- a/README.md
+++ b/README.md
@@ -39,3 +39,4 @@ libraries at compile-time.
* Clean up the code!
* Fix segfault in debug mode (happens because audio codec becomes NULL?)
* Fix blackscreen at start that appears until the second keyframe, which can be several seconds on a non-moving screen. Why does this happen? ffmpeg says the first frame should always be a keyframe!
+* Dynamically change bitrate to match desired fps. This would be helpful when streaming for example, where the encode output speed also depends on upload speed to the stream service.
diff --git a/interactive.sh b/interactive.sh
index 54a4d62..d807d05 100755
--- a/interactive.sh
+++ b/interactive.sh
@@ -27,4 +27,4 @@ read output_file_name
output_dir=$(dirname "$output_file_name")
mkdir -p "$output_dir"
-sibs build --release && ./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$window_id" -c mp4 -f "$fps" -a "$selected_audio_input" > "$output_file_name"
+./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$window_id" -c mp4 -f "$fps" -a "$selected_audio_input" > "$output_file_name"
diff --git a/replay.sh b/replay.sh
index 53f9bf6..8842f5c 100755
--- a/replay.sh
+++ b/replay.sh
@@ -1,4 +1,4 @@
#!/bin/sh
[ "$#" -ne 5 ] && echo "usage: replay.sh <window_id> <fps> <audio_input> <replay_time_sec> <output_file>" && exit 1
-sibs build --release && ./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$1" -c mp4 -f "$2" -a "$3" -r "$4" -o "$5"
+./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$1" -c mp4 -f "$2" -a "$3" -r "$4" -o "$5"
diff --git a/twitch-stream-local-copy.sh b/twitch-stream-local-copy.sh
new file mode 100755
index 0000000..8101bbc
--- /dev/null
+++ b/twitch-stream-local-copy.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Stream on twitch while also saving the video to disk locally
+
+[ "$#" -ne 5 ] && echo "usage: twitch-stream-local-copy.sh <window_id> <fps> <audio_input> <livestream_key> <local_file>" && exit 1
+./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$1" -c flv -f "$2" -a "$3" | tee -- "$5" | ffmpeg -i pipe:0 -c:v copy -f flv -- "rtmp://live.twitch.tv/app/$4"
diff --git a/twitch-stream.sh b/twitch-stream.sh
index 7f9a037..325fd23 100755
--- a/twitch-stream.sh
+++ b/twitch-stream.sh
@@ -1,5 +1,4 @@
#!/bin/sh
[ "$#" -ne 4 ] && echo "usage: twitch-stream.sh <window_id> <fps> <audio_input> <livestream_key>" && exit 1
-#ismv
-sibs build --release && ./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$1" -c flv -f "$2" -a "$3" | ffmpeg -i pipe:0 -c:v copy -f flv -max_muxing_queue_size 4096 -- "rtmp://live.twitch.tv/app/$4"
+./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$1" -c flv -f "$2" -a "$3" | ffmpeg -i pipe:0 -c:v copy -f flv -- "rtmp://live.twitch.tv/app/$4"