当前位置: 首页 > news >正文

FFmpeg 安装与使用

文章目录

  • 1. 环境部署(Windows)
    • 1.1. 安装包下载
    • 1.2. 配置环境变量
    • 1.3. 验证安装
  • 2. FFmpeg 基础使用教程
    • 2.1. 常用命令格式
    • 2.2. 基础功能示例
      • 2.2.1. 视频转码(MP4 → MKV)
      • 2.2.2. 调整分辨率(1080p → 480p)
      • 2.2.3. 提取音频
      • 2.2.4. 剪切视频片段(截取 00:01:00 到 00:02:30)
      • 2.2.5. 去除水印
    • 2.3. 视频转封装
      • 2.3.1. HLS 转 MP4

1. 环境部署(Windows)

1.1. 安装包下载

访问 FFmpeg 官网,点击 Windows builds from gyan.dev。
在 Release Builds 区域选择最新版本(如 ffmpeg-7.0.2-essentials_build.zip):

  • Essentials:基础功能版(推荐)。
  • Full:完整功能版(需更多存储空间)。

GitHub 下载地址
在这里插入图片描述
版本任选
在这里插入图片描述
这里我选择 full 版本,解压后复制 bin 目录路径:

├── bin      # 核心可执行文件(ffmpeg.exe、ffplay.exe、ffprobe.exe)├── ffmpeg.exe├── ffplay.exe└── ffprobe.exe
├── doc      # 文档
└── presets  # 预设编码方案

1.2. 配置环境变量

  1. 右键【此电脑】→【属性】→【高级系统设置】 →【环境变量】。
  2. 在【系统变量】中找到【Path】→点击【编辑】→【新建】→ 输入 D:\Programs\ffmpeg\bin(替换为实际路径)。
  3. 连续点击【确定】保存设置。

1.3. 验证安装

打开命令行窗口(Win+R → 输入 cmd),执行:

ffmpeg -version

若显示版本信息(如 ffmpeg version 7.0.2),则安装成功
在这里插入图片描述

2. FFmpeg 基础使用教程

2.1. 常用命令格式

ffmpeg [全局参数] -i [输入文件] [输出参数] [输出文件]

2.2. 基础功能示例

2.2.1. 视频转码(MP4 → MKV)

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mkv

-c:v:视频编码器(如 libx265 为 H.265)。
-c:a:音频编码器(如 mp3)。

2.2.2. 调整分辨率(1080p → 480p)

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

2.2.3. 提取音频

ffmpeg -i input.mp4 -vn -c:a copy output.aac

-vn:忽略视频流。

2.2.4. 剪切视频片段(截取 00:01:00 到 00:02:30)

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c:v copy -c:a copy output.mp4

2.2.5. 去除水印

https://www.zhihu.com/people/lp-uber/posts

2.3. 视频转封装

2.3.1. HLS 转 MP4

  • 转换单个 TS 文件到 MP4
ffmpeg -i input.ts -c copy output.mp4

-c copy 选项告诉 FFmpeg 直接复制视频和音频流,不进行重新编码,这样可以保持原始质量并快速完成转换。
如果 TS 文件包含特定的编码或封装格式需要被转换(例如从 MPEG-TS 封装转换为 MP4 封装),可以省略 -c copy 选项,让 FFmpeg 自动选择合适的编解码器进行转换。

  • 转换 HLS 流中的 TS 片段到 MP4

处理 HLS 流中的多个 TS 片段(例如,一个 .m3u8 播放列表中的所有 TS 文件):
首先,下载所有 TS 文件(如果存在可跳过该步):

wget -i playlist.m3u8 -P videoss/

然后,合并这些 TS 文件到一个单一的 MP4 文件:

ffmpeg -f concat -safe 0 -i playlist.txt -c copy output.mp4

-f concat 是 FFmpeg 中用于拼接多个媒体文件的输入格式选项,将多个视频或音频文件无缝连接成一个文件。
-safe 参数是 FFmpeg 中用于控制文件路径安全检查的选项,主要在使用 -f concat 进行文件拼接时使用。
1 (默认值): 启用安全检查只允许相对路径且不包含特殊字符;禁用绝对路径、包含父目录的引用路径、某些特殊字符和符号链接;
0: 禁用安全检查允许使用绝对路径和特殊路径
-i playlist.txt 是一个文本文件,包含所有 TS 文件的路径,每一行一个文件路径。例如:

file 'videss/segment_0.ts'
file 'videss/segment_1.ts'
...

最后,文件结构:

├── videoss├── segment_0.ts├── segment_1.ts└── segment_10.ts
├── output.mp4      # 输出文件
└── playlist.txt  	# 输入文件列表
http://www.dtcms.com/a/303010.html

相关文章:

  • 从JPEG到SER:小波+CNN如何横扫CVPR/ICASSP?
  • C#_索引器
  • 最新!Polkadot 更新 2025 路线图
  • 【C++】priority_queue的模拟实现
  • Tchebycheff变换简介
  • 应急响应案例处置(下)
  • Dify-14: 工作流API端点
  • gRPC 为 Sui 上更智能的数据访问奠定基础
  • 【Kubernetes】使用StatefulSet进行的资源调度,删除更新策略
  • Linux 应用程序组成
  • haproxy原理及实验演示(实现服务器集群的负载均衡)
  • 火线、零线、地线
  • 雷达系统设计学习:自制6GHz FMCW Radar
  • C++中std::variant的使用详解和实战代码示例
  • 三角洲摸金模拟器(简易版本)(开源)
  • 黑马JavaWeb【复习到哪更新到哪】
  • Coze Studio概览(二)
  • 【MySQL基础篇】:MySQL常用数据类型的选择逻辑与正确使用
  • Go语言-->变量
  • 【Practical Business English Oral Scene Interpretation】在职日常交流No.1~6
  • MySQL面试题及详细答案 155道(001-020)
  • 重构企业交互逻辑:云蝠智能 Voice Agent 的落地价值与实践指南
  • 设计模式(二十一)行为型:状态模式详解
  • 常见的未授权访问漏洞靶场-练习教程
  • MCP架构:模型上下文协议的范式革命与工程实践
  • 安宝特新闻丨安宝特与Logivations正式建立合作伙伴关系,共筑物流新未来
  • OpenLayers 综合案例-区域掩膜
  • JavaWeb 新手学习路线:从零到全栈开发,系统掌握企业级 Web 开发技能
  • 【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)
  • 7.DRF 过滤、排序、分页