我在一个文件夹中有很多文本文件,jpg和mp4。我想让jpg和文本文件单独保存。我希望使用ffmpeg的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"; donefor循环将如何将mp4转换为低质量(-crf 23),而不删除和/或修改同一工作目录中的任何其他文件?我也不想要其他的标志,因为我不会做调整大小,youtube上传,改变编码速度等。
发布于 2020-09-24 17:58:22
只需将"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 Wiki: H.264获得关于要使用的-crf和-preset值的指导。
https://askubuntu.com/questions/1277553
复制相似问题