📜  压缩视频 ffmpeg - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:50:31.426000             🧑  作者: Mango

压缩视频 ffmpeg - Shell-Bash

简介

FFmpeg是一款跨平台的开源视频处理工具,提供了压缩、转码、剪切、水印、滤镜等功能,支持几乎所有视频格式。

本篇文章介绍使用ffmpeg命令行工具对视频进行压缩,减小视频文件大小,适用于上传到视频网站、分享给好友等场景。

安装

FFmpeg可在Windows、Linux、Mac OS等系统中安装,具体安装方式可参考FFmpeg官网。在Linux系统中,可使用以下命令进行安装:

sudo apt-get update
sudo apt-get install ffmpeg
压缩视频

以下是常见的视频压缩命令及其参数:

  1. 指定输出宽高:-vf scale=[width]:[height]

    ffmpeg -i input.mp4 -vf scale=640:360 output.mp4
    
  2. 指定输出码率:-b:v [bitrate]

    ffmpeg -i input.mp4 -b:v 500k output.mp4
    
  3. 指定输出帧率:-r [framerate]

    ffmpeg -i input.mp4 -r 25 output.mp4
    
  4. 指定输出质量:-crf [quality]

    ffmpeg -i input.mp4 -crf 23 output.mp4
    

    值越小,质量越好,文件大小越大。

  5. 指定输出容器格式:-f [format]

    ffmpeg -i input.mp4 -f flv output.flv
    

    支持的格式包括mp4、flv、avi、wmv等。

批量压缩

如需批量压缩视频文件,可使用以下脚本:

#!/bin/bash
for f in *.mp4;
do ffmpeg -i "$f" -vf scale=640:360 -b:v 500k -crf 23 -r 25 -f mp4 "${f%.mp4}.output.mp4";
done

放置于视频文件所在目录,执行即可对所有mp4文件进行压缩,输出文件名为原文件名加上“.output”。

常见问题
  1. 压缩速度较慢:加上-preset [preset]参数,提升处理速度。[preset]ultrafast、 superfast、 veryfast、 faster、 fast、 medium、 slow、 slower、 veryslow、 placebo中的一个。

    ffmpeg -i input.mp4 -vf scale=640:360 -b:v 500k -crf 23 -r 25 -preset fast output.mp4
    
  2. 输出文件大小仍过大:调低-crf值或降低分辨率、码率等参数。

  3. 视频转码出错:如果转码失败,可能是由于视频格式或编码不被支持。可先使用ffprobe命令查看视频信息,再选择合适的参数进行转码。

结论

FFmpeg是一个功能强大的视频处理工具,对于压缩视频来说,通过对分辨率、码率、质量等参数的调整,可实现较好的压缩效果。在使用时需根据实际情况进行调整,以达到最优的压缩效果。