📅  最后修改于: 2023-12-03 15:30:45.361000             🧑  作者: Mango
FFmpeg是一款常用的音视频处理工具,它可以转码、裁剪、剪辑、合并等操作,而且支持大部分常见的音视频格式。本文将介绍如何使用Shell/Bash脚本来调用FFmpeg。
如果没有安装FFmpeg,可以按照以下步骤进行安装:
安装完成后,可以在命令行中输入以下命令来检查是否安装成功:
ffmpeg -version
如果成功安装,将显示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
指定了音频编码器为aac
,output.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
文件并输出到同一个目录下了。