我已经用尽了我的存储空间,我想腾出一些空间。
我曾想过将所有文件转换为 mkv 并将高分辨率文件缩小为较低的分辨率。
所以要将 mp4 转换为 mkv 有
ffmpeg -i input.mp4 -vcodec copy -acodec copy output.mkv
为了缩小规模,有
ffmpeg -i input.mp4 -vf scale=$w:$h <encoding-parameters> output.mp4
但我需要转换所有文件而不是单个 mp4 文件,我需要在完成处理后删除输入文件,并且我必须只对高于给定分辨率的文件执行此操作。另外我想保持纵横比,我不知道这是否是这样做的。
有一个名为video-diet的工具可以完成其中的一部分。
这就是我想做的
Recursively find every file under the current directory
If the file resolution has a height equal or greater to a given height.
Convert the file to mkv if it's in another format avi, mp4, flv, etc
Downscale to a lower resolution height, keeping the aspect ratio.
也许我也应该将帧速率降低到 24 fps?
如果有更好的方法,我想听听。
这是一个让您入门的脚本。您可能需要修改它以满足您的需要,如果您想更改帧速率,请向 ffmpeg 添加选项等。
请注意,那里有一个条件检查文件是否已经是 .mkv,但我实际上并没有对它们做不同的事情,所以条件是毫无意义的。它就在那里,因为您的问题听起来好像您想对他们做一些不同的事情,尽管我不确定为什么。FFMPEG 可以同时缩放和转换。
但是,如果您确实想做一些不同的事情,请在条件为真时将 ffmpeg 行更改为不同的事情。
这可能有点矫枉过正,可能有办法简化它,但这就是我要做的。