Linux Lite Forums

Development => Scripting and Bash => Topic started by: Sprintrdriver on August 06, 2019, 02:24:50 PM

Title: [solved] ffmpeg on multiple .aac files in directory using find
Post by: Sprintrdriver on August 06, 2019, 02:24:50 PM
Hi.

I have a folder with multiple .aac audio files. I plan to use them in a car stereo that is very picky on accepting files.

So I found out using ffmpeg (https://www.videohelp.com/software/ffmpeg) to clean out any unused metadata and possible other non-auditible information using this command:
ffmpeg -i 'input.aac' -vn -c:a copy 'output.aac'

I want to be able to do this for several files at once. According to this thread in unix.stackexchange forum (http://"https://unix.stackexchange.com/questions/80851/how-do-i-run-a-command-on-multiple-files"), it should be easilly done by using the find command.

However - I have tried several variation of the command (using the example from unix.stackexchange forum), but without any success (ffmpeg claim error about file existing). This is the commands I have tried so far:
Code: [Select]
find . -name "*.aac" -exec ffmpeg -i {}  -vn -c:a copy 2_{}
find . -name "*.aac" -exec ffmpeg -i {}  -vn -c:a copy 2_{} \;
find . -name "*.aac" -exec ffmpeg -i {}  -vn -c:a copy NEW{} \;
find . -name "*.aac" -exec ffmpeg -i {}  -vn -c:a copy NEW{}\;
find . -name "*.aac" -exec ffmpeg -i {}  -vn -c:a copy NEW{} \;
find . -name "*.aac" -exec ffmpeg -i '{}'  -vn -c:a copy 'NEW{}'\;

I usually got an error message like this (for every file):
NEW./input-file-name.aac: No such file or directory

I cannot 'see' the command that ffmpeg actually receive, so I cannot tell if there is an obviously error.
Title: Re: [solved] ffmpeg on multiple .aac files in directory using find
Post by: Sprintrdriver on August 07, 2019, 12:37:40 PM
Update:

I have got help on this on a local forum. I didn't get a solution that I could just enter directly in Terminal, but I got help with a sample shell script that I managed to:
Code: [Select]
#!/bin/bash
for i in *.aac
do
    echo ""
    ffmpeg -i "$i" -vn -c:a copy "NEW_$i"
    touch -cm --reference="$i" "NEW_$i"
    mv "$i" "OLD $i"
    mv "NEW_$i" "$i"
    echo ""
done
Title: Re: [solved] ffmpeg on multiple .aac files in directory using find
Post by: Jerry on August 07, 2019, 11:40:34 PM
Nice :)