diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-08-29 07:30:43 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-08-29 07:30:43 +0200 |
commit | f7f8ef174760d94088878ccf9db4fcada3c2aaf0 (patch) | |
tree | a18c4db9477c67a82225ecda65f1f253a13bcade | |
parent | 0780efe87d28765520e0d31eaba6fdabc91dd13e (diff) |
Add script for streaming while saving a local copy of the video
-rw-r--r-- | README.md | 1 | ||||
-rwxr-xr-x | interactive.sh | 2 | ||||
-rwxr-xr-x | replay.sh | 2 | ||||
-rwxr-xr-x | twitch-stream-local-copy.sh | 6 | ||||
-rwxr-xr-x | twitch-stream.sh | 3 |
5 files changed, 10 insertions, 4 deletions
@@ -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" @@ -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" |