ffmpeg的安装和使用教程

ffmpeg的安装和使用教程

      • [一、FFmpeg 的安装](#一、FFmpeg 的安装)
        • [1.1. 在 Ubuntu 上安装](#1.1. 在 Ubuntu 上安装)
        • [1.2. 在 CentOS/RHEL 上安装](#1.2. 在 CentOS/RHEL 上安装)
        • [1.3. 在 Mac 上安装](#1.3. 在 Mac 上安装)
        • [1.4. 在 Windows 上安装](#1.4. 在 Windows 上安装)
      • [二、FFmpeg 基本使用](#二、FFmpeg 基本使用)
        • [2.1. 转换视频格式](#2.1. 转换视频格式)
        • [2.2. 提取音频](#2.2. 提取音频)
        • [2.3. 视频剪切](#2.3. 视频剪切)
        • [2.4. 压缩视频](#2.4. 压缩视频)
        • [2.5. 调整视频分辨率](#2.5. 调整视频分辨率)
        • [2.6. 合并音频和视频](#2.6. 合并音频和视频)
        • [2.7. 旋转视频](#2.7. 旋转视频)
        • [2.8. 添加水印](#2.8. 添加水印)
        • [2.9. 视频帧率转换](#2.9. 视频帧率转换)
        • [2.10. 查看媒体信息](#2.10. 查看媒体信息)
        • [2.11. 视频截图](#2.11. 视频截图)
      • [三、FFmpeg 高级用法](#三、FFmpeg 高级用法)
        • [3.1. 批量转换文件格式](#3.1. 批量转换文件格式)
        • [3.2. 多文件合并](#3.2. 多文件合并)
        • [3.3. 添加字幕](#3.3. 添加字幕)
        • [3.4. 音频与视频同步](#3.4. 音频与视频同步)
      • [四、FFmpeg 常见问题](#四、FFmpeg 常见问题)
        • [4.1. 视频格式不支持](#4.1. 视频格式不支持)
        • [4.2. 视频转换速度慢](#4.2. 视频转换速度慢)

FFmpeg 是一个强大的多媒体处理工具,用于视频和音频的处理、转换、录制、编辑和流传输。以下是如何在不同平台上安装 FFmpeg 及其一些常见用法的教程。

一、FFmpeg 的安装

1.1. 在 Ubuntu 上安装
bash 复制代码
sudo apt update
sudo apt install ffmpeg

验证安装是否成功:

bash 复制代码
ffmpeg -version
1.2. 在 CentOS/RHEL 上安装

首先启用 EPEL 和 RPM Fusion 仓库:

bash 复制代码
sudo yum install epel-release
sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm

然后安装 FFmpeg:

bash 复制代码
sudo yum install ffmpeg ffmpeg-devel
1.3. 在 Mac 上安装

使用 Homebrew 安装:

bash 复制代码
brew install ffmpeg
1.4. 在 Windows 上安装
  1. 前往 FFmpeg 官方下载页面
  2. 下载适用于 Windows 的预编译二进制文件。
  3. 解压后,将 bin 文件夹路径添加到系统的环境变量 Path 中。

二、FFmpeg 基本使用

2.1. 转换视频格式

将视频从一种格式转换为另一种格式。以下示例将 .mp4 转换为 .avi

bash 复制代码
ffmpeg -i input.mp4 output.avi
2.2. 提取音频

从视频中提取音频并保存为 MP3 文件:

bash 复制代码
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
2.3. 视频剪切

从视频中提取特定的时间片段。例如,从第 00:01:00(1分钟)开始,提取10秒钟的视频:

bash 复制代码
ffmpeg -i input.mp4 -ss 00:01:00 -t 10 -c copy output.mp4
  • -ss:指定起始时间。
  • -t:指定持续时间。
  • -c copy:不重新编码,直接复制原始数据。
2.4. 压缩视频

压缩视频文件,降低比特率来减少文件大小:

bash 复制代码
ffmpeg -i input.mp4 -vcodec h264 -b:v 1000k -acodec mp3 -b:a 128k output.mp4
  • -b:v:视频比特率。
  • -b:a:音频比特率。
2.5. 调整视频分辨率

更改视频的分辨率。例如,将视频调整为 1280x720 的分辨率:

bash 复制代码
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
2.6. 合并音频和视频

将音频文件和视频文件合并到一起:

bash 复制代码
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4
2.7. 旋转视频

旋转视频 90 度:

bash 复制代码
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
  • transpose=1:顺时针旋转 90 度。
  • transpose=2:逆时针旋转 90 度。
2.8. 添加水印

为视频添加水印,例如一张图片位于视频的左上角:

bash 复制代码
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
  • overlay=10:10:表示水印的位置,10:10 是相对于视频左上角的坐标。
2.9. 视频帧率转换

更改视频的帧率。例如,将帧率设置为 30 fps:

bash 复制代码
ffmpeg -i input.mp4 -r 30 output.mp4
2.10. 查看媒体信息

使用 ffmpeg 可以查看视频或音频文件的详细信息:

bash 复制代码
ffmpeg -i input.mp4
2.11. 视频截图

从视频中截取一帧作为图片:

bash 复制代码
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 screenshot.png
  • -ss 00:00:10:指定截取的时间点。
  • -vframes 1:指定截取一帧。

三、FFmpeg 高级用法

3.1. 批量转换文件格式

将目录下的所有 .mp4 文件批量转换为 .avi 文件:

bash 复制代码
for f in *.mp4; do
    ffmpeg -i "$f" "${f%.mp4}.avi"
done
3.2. 多文件合并

合并多个视频文件:

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

复制代码
file 'video1.mp4'
file 'video2.mp4'
file 'video3.mp4'

然后执行以下命令:

bash 复制代码
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
3.3. 添加字幕

为视频添加 .srt 字幕文件:

bash 复制代码
ffmpeg -i input.mp4 -vf subtitles=subtitle.srt output.mp4
3.4. 音频与视频同步

有时音频与视频不同步,可以通过以下命令来重新同步音视频:

bash 复制代码
ffmpeg -i input.mp4 -c copy -async 1 output.mp4

四、FFmpeg 常见问题

4.1. 视频格式不支持

当遇到格式或编码器不支持的问题时,可能是系统的 FFmpeg 没有启用对应的编解码器。可以通过编译 FFmpeg 或从有更多编解码器支持的源安装来解决这个问题。

4.2. 视频转换速度慢

视频转换速度与文件大小、比特率、编码器等有关,可以通过降低比特率或调整帧数来提升转换速度。


FFmpeg 是一个非常强大的工具,可以处理多种多媒体任务,了解其常见命令和灵活使用参数,可以大大提升你在音视频处理上的效率。

相关推荐
luoyayun3616 小时前
Qt/QML + FFmpeg 实现多音频文件顺序拼接功能
qt·ffmpeg·音频拼接
wbcuc14 小时前
ffmpeg工具把m4s合并为mp4 powershell脚本
ffmpeg·m4s
luoyayun3612 天前
Qt + FFmpeg 实战:实现音频格式转换功能
qt·ffmpeg·音频格式转换
都在酒里3 天前
【极致低延时】香橙派部署 MediaMTX 实现 WebRTC 推流,延时仅 500-800ms,比局域网 ffmpeg 拉流快近 10 倍!(附踩坑全记录)
linux·arm开发·ffmpeg·webrtc·orangepi·嵌入式软件
Empty-Filled3 天前
用 Kap + FFmpeg 把录屏转成小体积 GIF:产品操作演示图制作实践
ffmpeg·kap
矜辰所致3 天前
嵌入式语音开发应用基础说明
ffmpeg·ai 语音·嵌入式语音·语音播放·语音采样
luoyayun3614 天前
Qt + FFmpeg 实战:音频静音段检测
qt·ffmpeg·音视频·静音段检测
小鹿研究点东西5 天前
直播带货长视频AI自动剪辑开播:一场直播如何反复利用?
ffmpeg·自动化·音视频·语音识别
luoyayun3616 天前
Qt + FFmpeg 实战:获取音视频文件基础属性、流信息和元数据
qt·ffmpeg·音视频·元数据·获取音视频文件属性
Rudon滨海渔村6 天前
ffmpeg裁剪视频黑屏、不准时等处理方式 - ffmpeg基本操作
ffmpeg·音视频