![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Странник ![]() ![]() Группа: Пользователь Сообщений: 16 Регистрация: 25.4.2015 Вставить ник Цитата Из: Сергиев Посад Пользователь №: 2805 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Люди добрые.
Обращаюсь к вам за помощью по созданию скрипта. Я нуб так что не обесуте. Беда у меня со всеми этими цыклами и орфографией. ![]() Задался я тут таким вопросом. Есть коллекция фильмов, клипов, тв передач которые я периодически пересматриваю. Беда в том что один файл орет, а другой шепчет. Вот и приходится подскакивать после такого шептуна. Достало. Хочу чтоб у всех файлов громкость была одинаковая на тихая короче нормальная. Вот тут я начал ваять и закончить не могу. Код #!/bin/sh # извлекаем звуковую дорожку find . -name "*.avi" -exec ffmpeg -i {} -vn -acodec copy -f mp3 {}.mp3 \; # удаляем лишнее из названия файлов find . -name '*.mp3' -exec rename 's/.avi././' {} \; # нормализовать mp3 find . -name '*.mp3' -exec normalize-audio -b {} \; # вставляем звуковую дорожку mp3=find . -name "*.mp3" {} \; avi=find . -name "*.avi" {} \; ffmpeg -i $mp3 -i $avi -y $avi Люди добрые поможите довести мысль до конца. |
|
|
![]() |
![]()
Сообщение
#2
|
|
Странник ![]() ![]() Группа: Пользователь Сообщений: 16 Регистрация: 25.4.2015 Вставить ник Цитата Из: Сергиев Посад Пользователь №: 2805 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Тут подумал и решил что пробелы нужно вернуть
Код #!/bin/sh
# замена пробелов на _ find -name "* *" | sort -r | while read i; do mv "$i" "$(dirname "$i")/$(basename "$i" | tr ' ' _)"; done # извлекаем звуковую дорожку find . -name "*.avi" -exec ffmpeg -i {} -vn -ar 44100 -ac 2 -ab 128 -f mp3 {}.mp3 \; # удаляем лишнее из названия файлов find . -name '*.mp3' -exec rename 's/.avi././' {} \; # нормализовать mp3 find . -iname '*.mp3' -exec mp3gain -r -c -s r {} \; #find . -iname '*.mp3' -exec normalize-audio -b {} \; # создаем список rm list_tmp.txt list_tmp2.txt find . -name "*.mp3" -exec echo {} >> list_tmp.txt \; cat list_tmp.txt | sed 's/.mp3//g' > list_tmp2.txt cat list_tmp2.txt | cut -c 3- > list.txt # вставляем звуковую дорожку for x in $(cat list.txt); do ffmpeg -i "${x}".mp3 -i "${x}".avi -vcodec copy -acodec copy "${x}"_norm.avi; done # удаляем все временные файлы find . -name *.mp3 -delete rm list.txt list_tmp.txt list_tmp2.txt # возвращаем пробелы find -name "*_*" | sort -r | while read i; do mv "$i" "$(dirname "$i")/$(basename "$i" | tr '_' ' ')"; done exit 0 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.6.2025, 1:56 |