aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--README.md2
-rwxr-xr-xbuild.sh8
-rwxr-xr-xinteractive.sh2
-rwxr-xr-xreplay.sh2
-rwxr-xr-xtwitch-stream-local-copy.sh2
-rwxr-xr-xtwitch-stream.sh2
7 files changed, 18 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 47f12d9..2171b80 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,9 @@ sibs-build/
compile_commands.json
tests/sibs-build/
tests/compile_commands.json
+
.clangd/
+
+main.o
+sound.o
+gpu-screen-recorder
diff --git a/README.md b/README.md
index 5511c06..59583b0 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ When recording a 4k game, fps drops from 30 to 7 when using OBS Studio, however
the fps remains at 30.
# Installation
-gpu screen recorder can be built using [sibs](https://git.dec05eba.com/sibs) or if you are running Arch Linux, then you can find it on aur under the name gpu-screen-recorder-git (`yay -S gpu-screen-recorder-git`).\
+Run `./build.sh` or if you are running Arch Linux, then you can find gpu screen recorder on aur under the name gpu-screen-recorder-git (`yay -S gpu-screen-recorder-git`).\
Recording monitors requires a gpu with NvFBC support (note: this is not required when recording a single window!). Normally only tesla and quadro gpus support this, but by using [nvidia-patch](https://github.com/keylase/nvidia-patch) or [nvlax](https://github.com/illnyang/nvlax) you can do this on all gpus that support nvenc as well (gpus as old as the nvidia 600 series), provided you are not using outdated gpu drivers.
# How to use
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..ee1e9b3
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+dependencies="glew libavcodec libavformat libavutil x11 xcomposite glfw3 libpulse-simple libswresample"
+includes="$(pkg-config --cflags $dependencies) -I/opt/cuda/targets/x86_64-linux/include"
+libs="$(pkg-config --libs $dependencies) /usr/lib/libcuda.so -ldl -pthread -lm"
+g++ -c src/sound.cpp -O2 $includes -DPULSEAUDIO=1
+g++ -c src/main.cpp -O2 $includes -DPULSEAUDIO=1
+g++ -o gpu-screen-recorder -O2 sound.o main.o -s $libs
diff --git a/interactive.sh b/interactive.sh
index 425cd25..91ae9f7 100755
--- a/interactive.sh
+++ b/interactive.sh
@@ -29,4 +29,4 @@ read output_file_name
output_dir=$(dirname "$output_file_name")
mkdir -p "$output_dir"
-./sibs-build/linux_x86_64/release/gpu-screen-recorder -w "$window_id" -c mp4 -f "$fps" -a "$selected_audio_input" -o "$output_file_name"
+./gpu-screen-recorder -w "$window_id" -c mp4 -f "$fps" -a "$selected_audio_input" -o "$output_file_name"
diff --git a/replay.sh b/replay.sh
index 8842f5c..1e5eb56 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/linux_x86_64/release/gpu-screen-recorder -w "$1" -c mp4 -f "$2" -a "$3" -r "$4" -o "$5"
+./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
index 8101bbc..fb7dfbb 100755
--- a/twitch-stream-local-copy.sh
+++ b/twitch-stream-local-copy.sh
@@ -3,4 +3,4 @@
# 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"
+./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 325fd23..fac052b 100755
--- a/twitch-stream.sh
+++ b/twitch-stream.sh
@@ -1,4 +1,4 @@
#!/bin/sh
[ "$#" -ne 4 ] && echo "usage: twitch-stream.sh <window_id> <fps> <audio_input> <livestream_key>" && exit 1
-./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"
+./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"