Batch convert a folder of .mkv files to .m4v files using ffmpeg in MAC OS X

17,472

@ldiastx, please take a look:

for f in *.mkv;do ffmpeg -i "$f" -c:v copy -c:a aac -b:a 256k "${f%mkv}mp4";done

Or if you don't need to re-encode:

for f in *.mkv;do ffmpeg -i "$f" -c copy "${f%mkv}mp4";done

If you want to put the new files in a separate directory:

mkdir output
for f in *.mkv;do ffmpeg -i "$f" -c:v copy -c:a aac -b:a 256k "output/${f%mkv}mp4";done
Share:
17,472

Related videos on Youtube

ldiastx
Author by

ldiastx

Updated on September 18, 2022

Comments

  • ldiastx
    ldiastx almost 2 years

    Is there a way to batch covert a folder of .mkv files to .m4v files using ffmpeg in Mac?

    I setup a service that will do individual files, but I really would like to batch them.

    The 'Run Shell Script' that I'm using is:

    for f in "$@"
    do
        /Users/username/Movies/ffmpeg -i "$f" -c:v copy -c:a copy "${f%.*}.m4v"
    done
    

    Here is a screen shot of what I have that works for individual files:

    enter image description here

  • ldiastx
    ldiastx over 8 years
    Dude: I am struggling with this a bit. The name of my files are this format.... tvshow s01e01 - name of tvshow.mkv my script still will do individual files within the folder. I just right click the file and look under services and then select the name of my service that i created. If I try right clicking on my folder name. I get an error.
  • Por981c
    Por981c over 8 years
    Just try running Dude's command inside Terminal! It should loop thru all the MKV files in the current folder/directory, converting them to MP4. It preserves the names of the files, just changing the extension.
  • ldiastx
    ldiastx over 8 years
    PERFECT! Thanks so much. Works like a charm.
  • beausmith
    beausmith almost 8 years
    Curious what "${f%mkv}mp4" is? Learn more about "String Operations": tldp.org/LDP/abs/html/refcards.html#AEN22828