![Bash 脚本持续运行命令直到达到特定条件 - ffmpeg](https://linux22.com/image/1158688/Bash%20%E8%84%9A%E6%9C%AC%E6%8C%81%E7%BB%AD%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E7%9B%B4%E5%88%B0%E8%BE%BE%E5%88%B0%E7%89%B9%E5%AE%9A%E6%9D%A1%E4%BB%B6%20-%20ffmpeg.png)
我正在运行以下命令,以减小 mp4 视频的大小
ffmpeg -i input.mp4 -acodec mp2 output.mp4
创建输出后,我再次对输出运行该命令,依此类推,因为每次执行命令的减少大小只有大约 0.1 Mb,所以我需要减少大约 2-3 Mb,这就是为什么我需要迭代运行该命令。
我想编写一个 bash 脚本来自动执行此操作,而不是一遍又一遍地运行该命令。如果文件大小达到我想要的大小,是否有停止运行该命令的选项?
答案1
真的不要这样做——每次这样做都会损害品质。
尝试这样的 ffmpeg 命令:
ffmpeg -i input.mp4 -c:v libx265 -crf 30 -c:a copy output.mp4
因此(在本例中)我使用 h265 编解码器来处理视频,并将系数设置为 30。较小的数字将产生较大的文件,质量更好,较大的数字将产生较小的文件,质量较差。音频只是复制的。我不知道你的源文件中有什么,但通常最大的节省来自重新压缩视频