使用ffmpeg在同一个子文件夹中递归压缩mp4文件(实际上是ts)

使用ffmpeg在同一个子文件夹中递归压缩mp4文件(实际上是ts)

我有一个根目录,里面有很多文件夹,文件夹里面还有更多文件夹。没有真正的结构,只有一堆文件夹,其中一些文件夹mp4里面有文件。我想压缩它们,因为这些视频的平均大小约为200 Mb。另外,我想将它们存储在与文件所在的原始文件夹相同的路径中。

有没有什么办法可以解决这个问题ffmpeg

答案1

我想到了一个非常类似的解决方案回答,从社区引导中删除,因此所有用户都看不到。

我认为ffmpeg它本身无法完成所有工作。最好使用它find来查找文件,然后ffmpeg使用正确的参数调用它们。

ffmpeg

您可以使用本身具有更好压缩功能的编解码器,例如libx265,然后选择降低清晰度和/或每秒帧数。要选择的参数ffmpeg由您决定,它将类似于以下内容

ffmpeg -i input.mp4 -vf scale=1280:-2 -c:v libx265 -crf 30 output.mp4

注意报告格式

如果您不确定要使用什么 CRF,请从默认值开始,然后根据您对输出的主观印象进行更改。质量够好吗?不够好?然后设置较低的 CRF。文件大小是否太大?选择更高的 CRF。±6 的变化应该会导致文件大小减少一半/两倍,尽管您的结果可能会有所不同。

find

来自根目录下有很多文件夹您可以find使用ffmpeg命令行并使用所需的参数来运行。

find . -type f -name "*.mp4" -exec ffmpeg -i {} -vf scale=1280:-2 -c:v libx265 -crf 30 {}.newlycompressed.mp4 \;

注意:在检查一切正常后,
您可能需要提前运行另一次调用来存储要删除的文件名...find

find . -type f -name "*.mp4" -exec echo "rm " {} \; >> Files_to_be_deleted

相关内容