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

Stronę tą wyświetlono już: 29 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:

Listing 1
  1. 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
  2. {
  3. for (( i=$((${#1}-1)); i>-1; i--)) # od rozmiaru tekstu do -1 wykonuj
  4. do
  5. if [ "${1:$i:1}" = '.' ] # jeżeli na podanej pozycji jest szukany znak kropki to
  6. then
  7. echo $i; # wyświetlaj jej położenie
  8. return; # i koniec funkcji będzie
  9. fi
  10. done
  11. echo -1; # a jak nie zwróć -1
  12. }
  13. getFileName ()
  14. {
  15. filename=$(basename "$1");
  16. extPos=$(haveExtension "$filename");
  17. echo ${filename:0:$extPos};
  18. }
  19. convToMp3 ()
  20. {
  21. for i in $1
  22. do
  23. echo "$i";
  24. FILENAME=$(getFileName "$i");
  25. echo "$FILENAME";
  26. if [ -f "$FILENAME.mp3" ]
  27. then
  28. echo "file already exist";
  29. else
  30. ffmpeg -i "./$i" -f mp3 -ab 192000 -vn "$FILENAME.mp3";
  31. fi
  32. done
  33. }
  34. convToMp3 "*.mp4";
  35. convToMp3 "*.flv";
  36. convToMp3 "*.webm";
  37. 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

Komentarze