В Linux я могу использовать канал для создания M4A с neroAacEnc, например, так
ffmpeg -i input.mp4 -vn -f wav - | neroAacEnc -if - -ignorelength -q 0.5 -of output.m4a
Вы должны будете использовать wine neroAacEnc.exe
там, и я понятия не имею, может ли версия Windows, работающая под Wine, использовать каналы. Теоретически, следующее должно быть в состоянии сделать все это в одной команде (при условии, что у вас есть актуальный ffmpeg):
ffmpeg -i input.mp4 -vn -f wav - | neroAacEnc -if - -ignorelength -q 0.5 -of - | ffmpeg -i - -i input.mp4 -map 1:v -map 0:a -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Но, к сожалению, neroAacEnc, по-видимому, может принимать канал в качестве ввода или вывода в канал, но не оба сразу, поэтому вышеприведенное не будет работать, и вам нужно сделать это с помощью двух команд:
ffmpeg -i input.mp4 -vn -f wav - | neroAacEnc -if - -ignorelength -q 0.5 -of temp-audio.m4a
ffmpeg -i input.mp4 -i temp-audio.m4a -map 0:v -map 1:a -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Я могу поместить это в базовый скрипт bash (который AFAIK должен работать на OSX)
#!/bin/bash
ffmpeg -i "$1" -vn -f wav - | neroAacEnc -if - -ignorelength -q 0.5 -of "temp.${1%.*}.m4a"
ffmpeg -i "$1" -i "temp.${1%.*}.m4a" -map 0:v -map 1:a -c:a copy -c:v libx264 -crf 22 -preset veryfast "output.${1%.*}.m4v"
rm "temp.${1%.*}.m4a
exit 0
Сохраните его где-нибудь в вашем $ PATH как convert-to-M4V и пометьте его как исполняемый, используйте его так:
convert-to-M4V input.mov
Чтобы сделать каждый MOV в каталоге:
for f in *.mov; do convert-to-M4V "$f"; done
ПРИМЕЧАНИЕ: я не на OSX, и я никогда не использовал командную строку на OSX, поэтому некоторые из них могут не работать / могут нуждаться в адаптации.
РЕДАКТИРОВАНИЕ roAA: Поскольку вы работаете в OSX, вы должны иметь возможность использовать (в некоторых тестах превосходящий neroAacEnc) быстродействующий кодер AAC qaac, который может лучше поддерживать каналы. И это нативное решение.
СНОСКА: Вы также можете найти полезное это руководство , чтобы кодирующий с x264 на FFmpeg, и это руководством по neroAacEnc.