📜  ffmpeg 覆盖 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:30:45.361000             🧑  作者: Mango

使用FFmpeg覆盖 - Shell-Bash

简介

FFmpeg是一款常用的音视频处理工具,它可以转码、裁剪、剪辑、合并等操作,而且支持大部分常见的音视频格式。本文将介绍如何使用Shell/Bash脚本来调用FFmpeg。

安装

如果没有安装FFmpeg,可以按照以下步骤进行安装:

  • 在Linux上,可以使用你的包管理器安装。
  • 在macOS上,可以使用Homebrew安装。
  • 在Windows上,可以从FFmpeg官网下载安装程序并安装。

安装完成后,可以在命令行中输入以下命令来检查是否安装成功:

ffmpeg -version

如果成功安装,将显示FFmpeg的版本信息。

调用FFmpeg

在Shell/Bash中调用FFmpeg,可以使用以下命令:

ffmpeg [options] -i input [output]

其中,options可以是一些选项,例如转码、裁剪等,input为输入文件路径,output为输出文件路径。

以下是一些常用选项的说明:

  • -vcodec:视频编码器
  • -acodec:音频编码器
  • -ss:从指定时间开始裁剪
  • -t:指定时长裁剪
  • -s:指定分辨率,例如-s 1280x720
  • -r:指定帧率,例如-r 24表示每秒24帧
  • -an:取消音频输出
  • -vn:取消视频输出
  • -y:覆盖输出文件而不提示

下面是一个例子,演示如何将一个视频转码成mp4格式:

ffmpeg -i input.avi -vcodec h264 -acodec aac output.mp4

在此例子中,-i选项指定了输入文件input.avi-vcodec指定了视频编码器为h264-acodec指定了音频编码器为aacoutput.mp4是输出文件的文件名。执行以上命令,将会把input.avi转码成output.mp4

批量处理

如果需要批量处理多个文件,可以使用Shell/Bash的循环语句来实现。

比如,要批量将多个文件转换成mp4格式并输出到同一个目录下,可以使用以下代码:

for file in *.avi; do
    ffmpeg -i "$file" -vcodec h264 -acodec aac "${file%%.*}.mp4"
done

在此示例中,for循环用来循环处理各个avi文件,"${file%%.*}.mp4"表示将原文件的扩展名替换成mp4。这样就可以将多个avi文件转码成mp4文件并输出到同一个目录下了。