BASH - skrypt umożliwiający konwersję plików wideo do formatu mp3

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 1850 razy

Z własnej potrzeby postanowiłem stworzyć mały skrypt BASH, który wykorzystując doinstalowany w systemie Linux pakiet ffmpeg umożliwia automatyczne przetworzenie plików wideo do formatu mp3. Kod programu wygląda następująco:

haveExtension () # ta funkcja zwraca położenie pierwszego napotkanego znaku kropki (licząc od tyłu), jeżeli nie znajdzie takiego znaku to wyświetla -1 { for (( i=$((${#1}-1)); i>-1; i--)) # od rozmiaru tekstu do -1 wykonuj do if [ "${1:$i:1}" = '.' ] # jeżeli na podanej pozycji jest szukany znak kropki to then echo $i; # wyświetlaj jej położenie return; # i koniec funkcji będzie fi done echo -1; # a jak nie zwróć -1 } getFileName () { filename=$(basename "$1"); extPos=$(haveExtension "$filename"); echo ${filename:0:$extPos}; } convToMp3 () { for i in $1 do echo "$i"; FILENAME=$(getFileName "$i"); echo "$FILENAME"; if [ -f "$FILENAME.mp3" ] then echo "file already exist"; else ffmpeg -i "./$i" -f mp3 -ab 192000 -vn "$FILENAME.mp3"; fi done } convToMp3 "*.mp4"; convToMp3 "*.flv"; convToMp3 "*.webm"; convToMp3 "*.mpeg";

Po zapisani skryptu w pliku o nazwie con.sh uruchomienie jego z bieżącej lokalizacji wygląda następująco:

bash ./con.sh