Move scripts to script dir, add youtube-hls-stream script, fix twitch stream script

This commit is contained in:
dec05eba
2022-09-19 16:19:41 +02:00
parent 59b730a806
commit 85cd5a9d11
9 changed files with 18 additions and 5 deletions

17
scripts/interactive.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/sh -e
selected_audio_input="$(pactl get-default-sink).monitor"
echo "Select a window to record"
window_id=$(xdotool selectwindow)
echo -n "Enter video fps: "
read fps
echo -n "Enter output file name: "
read output_file_name
output_dir=$(dirname "$output_file_name")
mkdir -p "$output_dir"
gpu-screen-recorder -w "$window_id" -c mp4 -f "$fps" -a "$selected_audio_input" -o "$output_file_name"

3
scripts/list-sinks.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
pactl list | grep -E '(Description: Monitor of)|(Monitor Source: )'

6
scripts/replay.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh -e
[ "$#" -ne 4 ] && echo "usage: replay.sh <window_id> <fps> <replay_time_sec> <output_directory>" && exit 1
active_sink="$(pactl get-default-sink).monitor"
mkdir -p "$4"
gpu-screen-recorder -w "$1" -c mp4 -f "$2" -a "$active_sink" -r "$3" -o "$4"

View File

@@ -0,0 +1,9 @@
#!/bin/sh -e
killall -INT gpu-screen-recorder && notify-send -u low 'GPU Screen Recorder' 'Stopped recording' && exit 0;
window=$(xdotool selectwindow)
active_sink="$(pactl get-default-sink).monitor"
mkdir -p "$HOME/Videos"
video="$HOME/Videos/$(date +"Video_%Y-%m-%d_%H-%M-%S.mp4")"
notify-send -u low 'GPU Screen Recorder' "Started recording video to $video"
gpu-screen-recorder -w "$window" -c mp4 -f 60 -a "$active_sink" -o "$video"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Stream on twitch while also saving the video to disk locally
[ "$#" -ne 4 ] && echo "usage: twitch-stream-local-copy.sh <window_id> <fps> <livestream_key> <local_file>" && exit 1
active_sink="$(pactl get-default-sink).monitor"
gpu-screen-recorder -w "$1" -c flv -f "$2" -a "$active_sink" | tee -- "$4" | ffmpeg -i pipe:0 -c copy -f flv -- "rtmp://live.twitch.tv/app/$3"

5
scripts/twitch-stream.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
[ "$#" -ne 3 ] && echo "usage: twitch-stream.sh <window_id> <fps> <livestream_key>" && exit 1
active_sink="$(pactl get-default-sink).monitor"
gpu-screen-recorder -w "$1" -c flv -f "$2" -a "$active_sink" -o "rtmp://live.twitch.tv/app/$3"

11
scripts/youtube-hls-stream.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
[ "$#" -ne 3 ] && echo "usage: youtube-hls-stream.sh <window_id> <fps> <livestream_key>" && exit 1
mkdir "youtube_stream"
cd "youtube_stream"
active_sink="$(pactl get-default-sink).monitor"
gpu-screen-recorder -w "$1" -c mpegts -f "$2" -a "$active_sink" | ffmpeg -i pipe:0 -c copy -f hls \
-hls_time 2 -hls_flags independent_segments -hls_flags delete_segments -hls_segment_type mpegts -hls_segment_filename stream%02d.ts -master_pl_name stream.m3u8 out1 &
echo "Waiting until stream segments are created..."
sleep 10
ffmpeg -i stream.m3u8 -c copy -- "https://a.upload.youtube.com/http_upload_hls?cid=$3&copy=0&file=stream.m3u8"