Andrey (azangru) wrote,
Andrey
azangru

Bash наощупь

Дано:
- директория с поддиректориями, в которых некоторое количество видеофайлов в mp4,
- директория и названия файлов имеют пробелы в названии,
- линукс с ffmpeg-ом.
Хочу: извлечь из видеофайлов аудио, сохранить в mp3 по принципу "название файла".mp3 и положить в специально обученную папку.

Решение:

for f in **/*.mp4; do fn=$(basename "$f"); ffmpeg -i "$f" -acodec libmp3lame -ab 128k "./audio/$fn.mp3"; done

(И о важности точки с запятой. Я некоторое время бился головой об стенку, пока проверял команду для ffmpeg с помощью echo, потому что забыл точку с запятой после fn=$(basename "$f"). fn при этом получался пустой строкой.)

(И уже надо наконец научиться писать скрипты на баше, а то стыдно)

P.S.: Да, и там в конце должен быть не $fn.mp3, а ${fn%.mp4}.mp3, чтобы отсечь расширение mp4 из прежнего названия файла.
Subscribe

  • (no subject)

    Which/whose corporate interests is he talking about? Which corporations are interested in what? I am so confused.

  • (no subject)

    Two appearances of Noam Chomsky, in which he goes hard on the unvaccinated. Take, traffic rules, he says. Suppose, he says, I don't want to…

  • (no subject)

    Joe Rogan's episode with Michael Shellenberger is very good.

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments