Wednesday, April 19, 2017

mux lyric wav2mkv.sh

#!/bin/sh
# name of this script: wav2mkv.sh

function PARAMETRAI {
    echo "reikalingas parametras"
    echo "$0 0 - lyrikoje be pakeitimu"
    echo "$0 1 - iterpti priekyje eilute: failo pavadinimas"
    echo "$0 2 - pakeisti pirma eilute failo pavadinimu"
    echo "$0 3 - direktrija i prieki pries pavadinima"
    exit 1
}

echo "currentDir/wav to ~/Public/*"

if [ "$#" -ne 1 ]; then
    PARAMETRAI
fi

# patikriname ar yra visi lyric.txt
for i in *.wav; do
 file=`basename "$i" .wav`
 if [ ! -e "$file.txt" ]; then
    echo "nerastas $file".txt
    exit 1
 fi
done

# kopijuojame i DIRAS
for i in *.wav; do
 file=`basename "$i" .wav`

 if [ "$1" -eq 0 ]; then
    ln "$file".txt ~/Public/"$file".txt
 elif [ "$1" -eq 1 ]; then
    echo "$file" | cat - "$file.txt" | col -b >~/Public/"$file.txt"
 elif [ "$1" -eq 2 ]; then
    tail -n +2 "$file.txt" >TMP.tmp
    echo "$file" | cat - TMP.tmp | col -b >~/Public/"$file.txt"
    rm TMP.tmp
 elif [ "$1" -eq 3 ]; then
    echo "${PWD##*/} - " | tr -d '\n' | tr -d '\r' | cat - "$file.txt" | col -b >~/Public/"$file.txt"
 else
    PARAMETRAI
 fi
 
 ln "$i" ~/Public/"$i"
 # wav --> flac
 flac --best "$i"
done

cd ~/Public

# wav --> MKV
for i in *.wav; do
 echo "$i"
 file=`basename "$i" .wav`
 cat "$file.txt" | expand | sed '/^$/d; :loop y/\n/ /; N; /\n$/! b loop; s/   */ /g; s/^ //' | convert -background black -size 1880x1080 -font Courier -pointsize 24 -fill white -splice 40x -gravity west caption:@- "$file.jpg"
 #flac --best "$i"
 ffmpeg -loop 1 -i "$file.jpg" -i "$file.wav" -acodec copy -vcodec libx264 -pix_fmt yuv420p -y -shortest "$file.mkv"
done

echo "baigta"

No comments:

Post a Comment