Scenarijus vaizdo įrašams į GIF konvertuoti: nuo paprasto iki magiško!

Prieš pradedant, reikia įdiegti ffmpeg - programinę įrangą, kuri padarys visą magiją.

Debian:
sudo apt install ffmpeg
Arch Linux:
sudo pacman -S ffmpeg
sudo zypper install ffmpeg sudo dnf install ffmpeg

Ar kada nors norėjote paversti savo mėgstamiausius vaizdo įrašus į žavingas GIF animacijas? Žinoma, norėjote! Kas gi nenorėtų? Na, šiandien turiu jums dovaną - scenarijų, kuris tai padarys lengviau nei kada nors anksčiau!

Scenarijaus anatomija:

Šis scenarijus tarsi stebuklingas magas atlieka savo triuką etapais:

1. Pasirinkimas:

  • Scenarijus atveria vaizdo įrašų katalogą ir parodo jums sąrašą, tarsi kviečiantis išsirinkti savo auką... atsiprašau, mėgstamiausią vaizdo įrašą.
  • Jūs, tarsi galingas valdovas, pasirenkate norimą vaizdo įrašą ir scenarijus pasiruošęs magijai.

2. Tikrinimas:

  • Scenarijus, atsargus kaip sargybinis, patikrina, ar tikrai pasirinkote vaizdo įrašą, o ne apgaulingą iliuziją.
  • Jei ne, scenarijus perspėja jus ir atšaukia magiją.

3. Konvertavimas:

  • Atėjo laikas magijai! Scenarijus paima jūsų išsirinktą vaizdo įrašą ir paverčia jį žaviu GIF animacijos formatu.
  • Tarsi burtų lazdelė, scenarijus sumažina GIF dydį iki pusės ir šiek tiek sumažina kokybę, kad jis neužimtų per daug vietos jūsų skaitmeniniame lobyne.

4. Išsaugojimas:

  • Sukurtas GIF animacija patalpinamas į specialų katalogą, tarsi į stebuklingą skrynią, skirtą saugoti jūsų brangius lobius.
  • Scenarijus netgi paklausia jūsų, ar norite suteikti savo GIF'ui unikalų vardą, kad galėtumėte jį lengvai atpažinti.

5. Pasikartojimas:

  • Ar norite pakartoti magiją? Scenarijus pasiruošęs dar vienam konvertavimo seansui, laukiantis jūsų kitos vaizdo įrašo aukos... atsiprašau, mėgstamiausio vaizdo įrašo.

Apibendrinimas:

Šis scenarijus yra ne tik galingas įrankis vaizdo įrašams į GIF konvertuoti, bet ir suteikia šiek tiek žaismingumo ir humoro į šią įprastą užduotį. Pasiruoškite magijai ir paverskite savo vaizdo įrašus žavingomis GIF animacijomis!

 #!/bin/bash

# Nustatykite konvertuoti skirtų failų katalogą
input_dir="$HOME/Video/"

# Gaukite visų vaizdo failų pavadinimus kataloge
files=$(find "$input_dir" -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mpeg" -o -name "*.mkv" \))
file_names=()
for file in ${files[@]}; do
    file_names+=($(basename "$file"))
done

# Parodykite failų pavadinimų sąrašą ir paprašykite vartotojo pasirinkti
echo "Pasirinkite konvertuoti norimą failą:"
select file in "${file_names[@]}"; do
    if [ "$REPLY" -gt 0 ] && [ "$REPLY" -le "${#file_names[@]}" ]; then
        input_file=$(find "$input_dir" -name "${file_names[$REPLY-1]}")
        break
    fi
done

# Patikrinkite, ar pasirinktas failas egzistuoja
if [ ! -f "$input_file" ]; then
    echo "Pasirinktas failas neegzistuoja."
    exit 1
fi

# Patikrinkite, ar pasirinktas failas yra vaizdo failas
if ! ffmpeg -i "$input_file" -f null -; then
    echo "Pasirinktas failas nėra vaizdo failas."
    exit 1
fi

# Nustatykite išvesties katalogą GIF failams
output_dir="$HOME/Paveikslėliai/gif/"

# Sukurkite išvesties katalogą, jei jis neegzistuoja
mkdir -p "$output_dir"

# Paklauskite vartotojo išvesties failo pavadinimo
read -p "Išvesties failo pavadinimas (gif): " output_file

# Sukurkite pilną išvesties failo kelio pavadinimą
output_file="$output_dir$output_file.gif"

# Patikrinkite, ar išvesties failas jau egzistuoja
if [ -f "$output_file" ]; then
    read -p "Failas $output_file jau egzistuoja. Ar norite jį perrašyti? (taip/ne): " overwrite
    case $overwrite in
        [Yy]*)
            echo "Perrašomas failas $output_file..."
            ;;
        *)
            echo "Operacija nutraukta."
            exit 0
            ;;
    esac
fi

# FFmpeg komanda sumažina GIF iki pusės dydžio ir sumažina kokybę
ffmpeg -i "$input_file" -vf scale=320:-1 -qscale 25 "$output_file" && echo "Failas konvertuotas sėkmingai: $output_file"


Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python