Init
This commit is contained in:
commit
eeff4699ff
2
README.md
Normal file
2
README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# AudioCutter
|
||||||
|
Это скрипт на bash для деления аудио на заданное кол-во частей.
|
||||||
39
cutter.bash
Executable file
39
cutter.bash
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
zenity --info --text="Этот скрипт нужен для разделения аудиофайла на части. Нажмите ОК для продолжения..."
|
||||||
|
audiofile=$(zenity --file-selection --title="Выберите файл для нарезки на части")
|
||||||
|
count=$(zenity --entry --title="Нарезка аудио..." --text="Введите кол-во частей:")
|
||||||
|
|
||||||
|
if ffmpeg -i "$audiofile" &> /dev/null; then
|
||||||
|
zenity --warning --text="Ошибка!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
filelen=$(ffmpeg -i "$audiofile" 2>&1 | grep -oE "[0-9]{1}:[0-9]{2}:[0-9]{2}" | tail -n 1)
|
||||||
|
IFS=':' read -ra filelen <<< "$filelen"
|
||||||
|
lenseconds=${filelen[2]}
|
||||||
|
lenminutes=${filelen[1]}
|
||||||
|
lenhours=${filelen[0]}
|
||||||
|
filelen=$((lenseconds+(lenminutes*60)+(lenhours*60*60)))
|
||||||
|
outfile=${audiofile%.*}
|
||||||
|
segmentsize=$((filelen/count))
|
||||||
|
echo File length at seconds: $filelen
|
||||||
|
percent=0
|
||||||
|
i=0
|
||||||
|
mkdir -p "$(dirname "$outfile")/ffmpeg-out"
|
||||||
|
(
|
||||||
|
while [ $i -le $((count-1)) ]; do
|
||||||
|
starttime=$((segmentsize*i))
|
||||||
|
stoptime=$(((segmentsize*(i+1))+1))
|
||||||
|
outfiledir="$(dirname "$outfile")/ffmpeg-out/$(basename "$outfile")"
|
||||||
|
outname="$outfiledir-$i-ffmpeg.mp3"
|
||||||
|
# echo File of script: $outname $starttime-$stoptime sec
|
||||||
|
ffmpeg -y -i "$audiofile" -vn -acodec copy -ss $starttime -to $stoptime "$outname" &> /dev/null
|
||||||
|
i=$((i+1))
|
||||||
|
percent=$(( (i+1)*(100/count) ))
|
||||||
|
echo $percent
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
) |
|
||||||
|
zenity --progress \
|
||||||
|
--title="Кодирование..." \
|
||||||
|
--text="Кодировано из 100%" \
|
||||||
|
--percentage=0
|
||||||
Loading…
x
Reference in New Issue
Block a user