使用 ffmpeg 批量转换 MP4

使用 ffmpeg 批量转换 MP4

我在一个文件夹中有一大堆文本文件、jpg 和 mp4。我希望 jpg 和文本文件保持不变。我想使用 ffmpeg 的-crf参数(值为 )压缩所有 mp4 23,以节省磁盘空间。文件应就地覆盖。

我使用了@llogan 答案这里,并替换.avi.mp4,但这不起作用。

for f in *.mp4; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
  -c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
  "encoded/${f%.avi}.mp4"; done

for在不删除和/或修改同一工作目录中的任何其他文件的情况下,将 mp4 转换为较低质量()的循环是什么-crf 23?我也不想要其他标志,因为我不会进行调整大小、youtube 上传、更改编码速度等操作。

答案1

您只需要更改"encoded/${f%.avi}.mp4""encoded/${f%.mp4}.mp4""encoded/${f%.*}.mp4"

mkdir encoded
for f in *.mp4; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a copy -movflags +faststart "encoded/${f%.*}.mp4"; done

我删除了你不需要的所有其他内容。我假设你的输入音频已经是 AAC,所以我曾经-c:a copy启用流复制类似于复制和粘贴的模式。

-crf 23 -preset medium是默认值,因此如果您对这些值满意,可以将其删除。否则,请参阅FFmpeg 维基:H.264以获得关于使用什么-crf和值的指导。-preset

相关内容