2025-03-08
编程
00
请注意,本文编写于 50 天前,最后修改于 50 天前,其中某些信息可能已经过时。

目录

安装 FFmpeg
在 Debian/Ubuntu 系统上
在 CentOS/RHEL 系统上
在 macOS 上
在 windows 上
基本用法
高级功能
示例场景

FFmpeg它是一款非常强大的多媒体框架,能够解码、编码、转码、复用、解复用、播放和处理各种多媒体文件和流。

安装 FFmpeg

在 Debian/Ubuntu 系统上

bash
sudo apt-get update sudo apt-get install ffmpeg

在 CentOS/RHEL 系统上

bash
sudo yum install epel-release sudo yum install ffmpeg

在 macOS 上

如果你使用的是 Homebrew 包管理器,可以通过以下命令安装:

bash
brew install ffmpeg

在 windows 上

使用源码安装

基本用法

  1. 查看版本信息 检查是否正确安装以及查看当前的版本号:

    bash
    ffmpeg -version
  2. 查看支持的格式 列出所有支持的格式:

    bash
    ffmpeg -formats
  3. 转换视频格式 将一个视频文件从一种格式转换为另一种格式:

    bash
    ffmpeg -i input.mp4 output.avi

    这里 -i 参数指定输入文件名,后面跟输出文件名和扩展名。

  4. 提取音频 从视频文件中提取音频并保存为MP3格式:

    bash
    ffmpeg -i input.mp2 -q:a 0 -map a output.mp3

    -q:a 0 设置音频质量(0为最高),-map a 表示只提取音频流。

  5. 剪辑视频 截取视频的一部分(例如从第10秒开始,持续5秒):

    bash
    ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 -c copy output.mp4

    -ss 指定开始时间,-t 指定持续时间,-c copy 表示直接复制而不重新编码。

  6. 合并视频片段 创建一个文本文件 filelist.txt,内容如下:

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

    使用以下命令合并视频:

    bash
    ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
  7. 调整分辨率 改变视频的分辨率(例如将视频调整为640x480):

    bash
    ffmpeg -i input.mp4 -vf scale=640:480 output.mp4

    -vf scale=640:480 是视频过滤器参数,用于调整分辨率。

  8. 添加水印 在视频中添加图片作为水印:

    bash
    ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4

    overlay=10:10 表示水印的位置,左上角偏移10像素。

高级功能

  • 实时流处理:可以用来接收RTMP或其他协议的直播流,并进行录制或转码。
  • 多轨道处理:支持处理多个音轨和字幕轨道。
  • 硬件加速:支持NVIDIA CUDA、Intel QSV等硬件加速选项来提高性能。

示例场景

假设你有一段视频需要转换格式并降低分辨率,同时提取音频:

  1. 转换格式并调整分辨率:

    bash
    ffmpeg -i input.mov -vf scale=640:480 -c:v libx264 output.mp4
  2. 提取音频并保存为MP3格式:

    bash
    ffmpeg -i input.mov -q:a 0 -map a output.mp3