52 lines
1.2 KiB
Markdown
52 lines
1.2 KiB
Markdown
# Diriterator
|
|
Runs a script for each file in a directory hierarchy using GNU parallel.
|
|
This is useful when converting a lot of media files.
|
|
|
|
## Instructions
|
|
The script requires GNU parallel to be installed.
|
|
|
|
Let's assume you have a directory tree like this
|
|
|
|
```
|
|
music_lib_mp3
|
|
Artist 1
|
|
Album 1
|
|
Song 1.mp3
|
|
Song 2.mp3
|
|
...
|
|
Album 2
|
|
Song 1.mp3
|
|
Song 2.mp3
|
|
...
|
|
...
|
|
```
|
|
|
|
and want to convert all files to AAC in parallel and the converted
|
|
files should be placed in a similar directory tree:
|
|
|
|
```
|
|
music_lib_aac
|
|
Artist 1
|
|
Album 1
|
|
Song 1.m4a
|
|
Song 2.m4a
|
|
...
|
|
Album 2
|
|
Song 1.m4a
|
|
Song 2.m4a
|
|
...
|
|
...
|
|
```
|
|
|
|
Just run:
|
|
|
|
```
|
|
diriterator \
|
|
--base-dir "./music_lib_mp3" --target-dir "./music_lib_aac" \
|
|
--filter ".*\.(mp3$)" \
|
|
--cmd "mkdir -p \"\$ITERATOR_TARGET_DIR\" && ffmpeg -i \"\$ITERATOR_FULL_PATH\" -c:a libfdk_aac -vbr 4 \"\$ITERATOR_TARGET_DIR/\$ITERATOR_FILE_NAME_WITHOUT_EXTENSION.m4a"
|
|
```
|
|
|
|
The repository [PKGBUILDs](https://github.com/Martchus/PKGBUILDs) contains
|
|
files for building an Arch Linux package.
|