Ubuntu 使用 FFmpeg

FFmpeg 是一个多媒体处理工具,本文介绍了 FFmpeg 的安装和基本使用方法,包括查看信息、转换视频格式、提取音频、压缩视频、调整分辨率、裁剪视频、添加水印和合并视频文件的具体命令和参数解释。

1.安装

sudo apt update
sudo apt install ffmpeg

2.基本使用

2.1.查看版本和支持信息

ffmpeg -version   # FFmpeg版本
ffmpeg -formats   # 支持的所有容器格式,包括输入和输出格式。格式前的D表示解码(输入),E表示编码(输出)。
ffmpeg -muxers    # 支持的所有复用器(muxers),将多个流(如音频和视频)合并到一个文件中的工具。
ffmpeg -demuxers  # 支持的所有解复用器(demuxers),即从一个文件中分离出多个流的工具。
ffmpeg -devices   # 支持的所有输入和输出设备,如摄像头、音频输入设备等。
ffmpeg -codecs    # 支持的所有编解码器,包括视频、音频和字幕编解码器。D表示解码器,E表示编码器。
ffmpeg -decoders  # 支持的所有解码器

2.2.转换视频格式

ffmpeg -i input.mp4 output.avi  # 从MP4格式转换为AVI格式
ffmpeg -i input.mp4 output.gif  # 从MP4格式转换为GIF格式
ffmpeg -i input.mp4 -ss 00:00:05 -to 18 -r 20 -vf scale=320:-1 output.gif
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:00:39 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
  • -i: 指定输入文件
  • -ss 00:00:05: 指定开始时间,这里是从视频的第 5 秒开始。
  • -to 18 选项指定结束时间,这里截取到视频的第 18 秒。是相对于视频的开始时间,而不是相对于 -ss 指定的时间。
  • -r 20: 帧率,GIF 的帧率为每秒 20 帧。
  • -vf scale=320:-1: scale 滤镜,scale=320:-1 表示将视频的宽度缩放到 320 像素,高度按比例自动调整(-1 表示保持纵横比)。
  • -vf "fps=10,scale=320:-1:flags=lanczos":指定视频过滤器,fps=10表示每秒输出 10 帧,flags=lanczos表示使用 lanczos 算法进行图像缩放。

2.3.提取音频

ffmpeg -i input.mp4 -q:a 0 -map a output.mp3  # 提取音频并保存为MP3格式
  • -q:a 0: 设置音频质量,0 是最高质量(最小压缩)的设置。这个选项是 VBR(可变比特率)模式的一个快捷方式,数值越低,质量越高,文件也会更大。
  • -map a: 选择要处理的流,a 表示选择所有音频流。这个选项确保只提取音频流,而不处理视频流。

2.4.压缩视频

ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4  # 通过调整比特率来压缩
  • -b:v 1000k: 设置视频比特率为 1000 kbps,720p 视频的比特率一般在 2500 kbps 到 5000 kbps 之间,1080p 视频的比特率在 5000 kbps 到 8000 kbps 之间。
  • -b:a 128k: 设置音频比特率为 128 kbps,低比特率是 32 kbps - 96 kbps,中等是 128 kbps - 192 kbps,高是 256 kbps - 320 kbps,无损通常在 500 kbps 到 1000 kbps 甚至更高。

2.5.调整视频分辨率

ffmpeg -i input.mp4 -vf scale=1280:720 -c:a copy output.mp4
  • -vf scale=1280:720: 将视频分辨率调整为 1280x720。
  • -c:a copy: 复制音频流,不重新编码。

2.6.裁剪视频

# 裁剪视频的前30秒
ffmpeg -i input.mp4 -ss 00:00:05 -t 00:00:30 -c copy output.mp4
  • -ss 00:00:05: 指定开始时间,这里是从视频的开头开始截取。
  • -t 00:00:30: 指定持续时间,这里是截取 30 秒的视频片段。
  • -c copy: 指定编解码器,copy 表示直接复制视频和音频流,而不进行重新编码。

2.7.添加水印

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
  • -i watermark.png: 指定第二个输入文件,这是要叠加到视频上的水印图片。
  • -filter_complex: 指定复杂的过滤器图形。这里使用的是 overlay 滤镜,将水印图片叠加到视频上。
  • "overlay=10:10": overlay 滤镜的参数,表示将水印图片放置在视频的左上角,距离左边缘和上边缘各 10 个像素。

2.8.合并视频文件

首先创建一个包含所有要合并的视频文件的文本文件,例如 filelist.txt:

file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'

然后使用以下命令合并视频文件:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
  • -f concat: 指定输入格式,concat 是 FFmpeg 的一个特殊格式,用于将多个文件合并成一个文件。
  • -safe 0 指定文件路径的安全性检查。0 表示禁用安全性检查,允许使用绝对路径。如果文件列表中的路径是相对路径,可以省略这个选项或设置为 1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值