使用Windows批处理文件使用AAC将MKV文件批量转换为MP4

时间:2015-02-27 17:27:16

标签: batch-file ffmpeg mp4 aac mkv

所以我一直在努力研究如何做到这一点,这个网站帮助了我,但我仍然被卡住了。

我基本上想要运行一个批处理文件,它会通过一个包含所有子目录的文件夹,并将所有mkv文件的容器更改为mp4,如果需要,将声音转换为AAC。最好是在相同名称的同一个地方创建新的mp4文件,然后删除mkv。

到目前为止,我所拥有的只是将它放在某个文件夹中,将在名为newfiles的指定文件夹中创建mp4。我不确定我是否正确使用了libfaac。非常感谢任何建议。我本来想使用libfdk_aac,但我已经尝试了一切来获得它,我无法找到它。

for %%a in ("*.mkv") do C:\ffmpeg\bin\ffmpeg -i "%%a" -vcodec copy -acodec libfaac "Z:\newfiles\%%~na.mp4"
pause

1 个答案:

答案 0 :(得分:1)

尝试使用可变比特率(VBR):

for %%a in (*.mkv) do C:\ffmpeg\bin\ffmpeg -i "%%~a" -vcodec copy -c:a libfaac -q:a 100 "%%~na.mp4"
pause
  

-q:a的范围是10-500,类似于在独立的faac中使用-q选项。 100是值得尝试的好东西。


或尝试使用平均比特率(ABR):

for %%a in (*.mkv) do C:\ffmpeg\bin\ffmpeg -i "%%~a" -vcodec copy -c:a libfaac -b:a 192k "%%~na.mp4"
pause

FFmpeg and AAC Encoding Guide: libfaac

请注意,您不会获得与libfdk_aac一样好的结果。 libfdk_aac的许可证与GPL不兼容,因此当包含GPL许可代码时,GPL不允许分发包含根据这些许可证许可的代码的二进制文件。因此,此编码器已被指定为“非自由”,您无法下载支持此编码器的预先构建的ffmpeg。这可以通过自己编译ffmpeg来解决。例如,您可以在this project

的帮助下执行此操作