以下是正确的方法:
如果您只是想重新多路复用而不是重新编码,并且输入流与 MP4 兼容,则只需流式复制即可。它速度很快,并且可以保持质量:
mkdir out
for f in *.mov; do ffmpeg -i "$f" -c copy -movflags +faststart out/"${f%.mov}.mp4"; done
Run Code Online (Sandbox Code Playgroud)
如果要重新编码:
mkdir out
for f in *.mov; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a aac -strict experimental -b:a 192k -movflags +faststart out/"${f%.mov}.mp4"; done
Run Code Online (Sandbox Code Playgroud)
按照FFmpeg Wiki: H.264 Video Encoding Guide 中所述-crf,-preset根据您的需要进行调整。或者,如果看起来可以接受,则仅依赖默认值(如果省略这些选项,将使用)。-crf 23 -preset medium
有关音频信息,请参阅FFmpeg Wiki:AAC 音频编码指南。
当然,如果您愿意,您可以同时执行以下两种操作:
mkdir out
for f in *.mov; do ffmpeg -i "$f" -c:v libx264 -c:a copy -movflags +faststart out/"${f%.mov}.mp4"; done
Run Code Online (Sandbox Code Playgroud)
ffmpeg由于您使用了ffmpeg标签,我假设这就是您想要使用的。Ubuntu 14.04 不提供ffmpeg,但即使提供,我也建议使用最近的版本,因为开发非常活跃。如FFmpeg on Ubuntu Trusty 中所述,您有 4 个主要选项(静态构建或 PPA 最简单)。