[FFmpeg-user] Converting mkv to mp3 failures

JD jd1008 at gmail.com
Fri Jul 14 01:24:31 EEST 2017

On 07/13/2017 03:22 PM, Moritz Barsnick wrote:
> On Thu, Jul 13, 2017 at 15:11:56 -0600, JD wrote:
>> Your filename does not contain parentheses, brackets and single quotes
>> and unprintable characters that
>> MANY files I download contain in their names.
>> And THAT is the crux of the problem.
> That's no crux.
> $ for file in *.mkv; do ffmpeg -i "$file" -map 0:a -c:a libmp3lame /targetdir/"${f%.mkv}".mp3; done
> Fixed that for you. Never forget to quote your variables.
> Moritz
Thanx to all.
What I did is  tedious, but I had no choice.
Double quoting the filenames did not solve my problem.
So, I simply gathered all the filenames (find . -name \*.mkv -o -name 
\*.mp4 -o -name \*.webm)
into a file which I edited and turned it into a script that
removed single quotes, unprintable characters, square brackets, commas, and
replaced all spaces with underscores - of course, used the mv command to 
the files to the new names.
I retried the script as follows:

while read f; do
N=`basename "$f" | sed -e 's/mkv//' -e 's/mp4//' -e 's/webm//'`
         /bin/ffmpeg -i "$f" -map 0:a -c:a libmp3lame -ab 320k -ac 2 -y 

And I am still getting parse errors, because ffmpeg is UNABLE to parse 
long filenames.

What makes it even more confusing, the parse error message appears 
within or between the console output
of transcoding a previous file.

More information about the ffmpeg-user mailing list