С GNU Parallel вам даже не нужен скрипт:
find ~/Music/ -type f -name '*.mp4' | parallel ffmpeg -i {} -ac 2 -f wav - \| lame -V 2 - {.}.mp3
То же самое можно сделать без использования lame, при условии, что ваша версия ffmpeg скомпилирована с включенной libmp3lame (большинство версий):
find ~/Music/ -type f -name '*.mp4' | parallel ffmpeg -i {} -c:a libmp3lame -q:a 2 {.}.mp3
Вы также можете использовать -iname
вместо команды -name
find, чтобы получить нечувствительные к регистру совпадения (поэтому он подберет все * .mp4 и * .MP4 и все варианты регистра). Кроме того, -ac 2
строго не требуется во второй версии; В любом случае MP3 может поддерживать максимум два канала, поэтому ffmpeg автоматически преобразует звук в два канала, если это необходимо, что позволит вам избежать добавления лишних бессмысленных каналов к любому монофоническому звуку, который у вас может быть.
На этой вики-странице ffmpeg вы найдете основную информацию о кодировке MP3, а в этом гидеаудио-руководство - более подробную информацию.
Если у вас есть другие машины, к которым вы можете подключиться по ssh (например, возможно, ваш ноутбук доступен по ночам), GNU Parallel также может использовать эти процессоры. Посмотрите на примеры --trc (для передачи файлов) и --retries (чтобы справиться с отсутствием ноутбука в течение дня). См. Http://www.gnu.org/software/parallel/man.html#example__using_remote_computers
Посмотрите вступительные видео, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ