aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/.local/bin/scripts/image-editing/center-image-bg4
-rwxr-xr-xbin/.local/bin/scripts/video-editing/obs_convert3
-rwxr-xr-xbin/.local/bin/scripts/video-editing/speed_up48
3 files changed, 52 insertions, 3 deletions
diff --git a/bin/.local/bin/scripts/image-editing/center-image-bg b/bin/.local/bin/scripts/image-editing/center-image-bg
index 3d379c0..1fc2bc4 100755
--- a/bin/.local/bin/scripts/image-editing/center-image-bg
+++ b/bin/.local/bin/scripts/image-editing/center-image-bg
@@ -1,8 +1,6 @@
#!/usr/bin/env bash
-
if [ -z "$1" ]; then
echo "Required input (image file) not found. Try again."
exit 1
fi
-
-magick $1 -gravity center -background "#282828" -extent 1920x1080 $1-edit.png
+magick "$1" -filter Lanczos -resize 1536x864\> -gravity center -background "$2" -extent 1920x1080 "$1-result.png"
diff --git a/bin/.local/bin/scripts/video-editing/obs_convert b/bin/.local/bin/scripts/video-editing/obs_convert
new file mode 100755
index 0000000..86205eb
--- /dev/null
+++ b/bin/.local/bin/scripts/video-editing/obs_convert
@@ -0,0 +1,3 @@
+#!/bin/bash
+ffmpeg -i "$1" -vf "fps=15,palettegen=stats_mode=full" -y /tmp/palette.png
+ffmpeg -i "$1" -i /tmp/palette.png -filter_complex "fps=15[x];[x][1:v]paletteuse=dither=sierra2_4a" "$2"
diff --git a/bin/.local/bin/scripts/video-editing/speed_up b/bin/.local/bin/scripts/video-editing/speed_up
new file mode 100755
index 0000000..11ce691
--- /dev/null
+++ b/bin/.local/bin/scripts/video-editing/speed_up
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+# DRY usage string
+my $help_string = "Usage: ./speed_up video.mp4 [speed%] output.mp4\n";
+
+# Input args
+my $video_file = $ARGV[0] or die $help_string;
+my $speed_input = $ARGV[1] // 100;
+my $output_file = $ARGV[2] || $ARGV[1];
+
+# Validate output file is provided
+die $help_string unless defined $output_file && $output_file ne $speed_input;
+
+# Validate speed percentage
+die "Error: speed must be a number (e.g., 150 for 150%)\n$help_string"
+ unless $speed_input =~ /^\d*\.?\d+$/;
+
+# Convert percentage to speed factor
+my $speed_factor = $speed_input / 100;
+my $setpts_value = 1 / $speed_factor;
+
+# Build proper atempo filter
+my $audio_filter;
+if ($speed_factor <= 2.0) {
+ $audio_filter = "atempo=$speed_factor";
+} else {
+ my @tempos;
+ my $remaining = $speed_factor;
+ while ($remaining > 2.0) {
+ push @tempos, "atempo=2.0";
+ $remaining /= 2.0;
+ }
+ push @tempos, "atempo=$remaining";
+ $audio_filter = join(",", @tempos);
+}
+
+# Build FFmpeg command
+my $ffmpeg_command = sprintf(
+ 'ffmpeg -i "%s" -filter_complex "[0:v]setpts=%f*PTS[v];[0:a]%s[a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac "%s"',
+ $video_file, $setpts_value, $audio_filter, $output_file
+);
+
+# Run FFmpeg
+system($ffmpeg_command) == 0
+ or die "Failed to run ffmpeg: $!";