рекурсивно конвертировать файлы, используя ffmpeg параллельно - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть следующие две команды:

parallel --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac ::: *

, который преобразует все файлы (аудио) в текущей папке в формат aac параллельно (file.mp3>file.aac) и

find . -type f -not -name "*.jpg" -exec bash -c 'ffmpeg -loglevel 0 -i "{}" -c:a aac -b:a 64k "{}".aac' \;

, который преобразует все файлы во всех подкаталогах в формат aac (file.mp3>file.mp3.aac), но не параллельно.

Итак, я хочу сделать две вещи:

  1. выполнить команду 2 параллельно
  2. что результат сохраняется как в команде 1, т.е. file.mp3>files.aac вместо file.mp3>file.mp3.aac.

Я пробовал некоторые комбинации, но они не работали.

1 Ответ

0 голосов
/ 09 ноября 2018

ОК,

Я думаю, что наконец-то получил это так:

find . -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.aac" -print0 | parallel -0 --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac
...