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

FFmpeg 全面教程:从安装到高级应用

文章目录

  • 一、下载与安装(Windows)
    • 二、基础命令详解
      • 2.1 视频调整大小
      • 2.2 vob视频转MP4(重新编码)
      • 2.3 提取音频部分(MP3格式)
      • 2.4 视频切割
      • 2.5 视频转GIF
    • 三、高级应用
      • 3.1 视频拼接
      • 3.2 添加水印
      • 3.3 提取关键帧
      • 4. 屏幕录制
    • 四、实用技巧

一、下载与安装(Windows)

  FFmpeg 是一个开源的音视频处理框架,可以录制、转换和流式传输音视频。它支持几乎所有类型的媒体格式,提供强大的命令行工具和库,被广泛应用于视频处理、直播、转码等领域。点击官网下载基础版本或者完整版本:

在这里插入图片描述

下载后解压,将bin文件夹路径加入系统环境变量中:

在这里插入图片描述

输入ffmpeg -version可以看到版本信息表示安装完成:

在这里插入图片描述

二、基础命令详解

2.1 视频调整大小

ffmpeg -i input.mp4 -vf "scale=960:540" output.mp4
  • -vf "scale=960:540":视频滤镜设置分辨率
  • 保持宽高比:scale=960:-1(高度自动计算)

2.2 vob视频转MP4(重新编码)

ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4
  • -c:v libx264:使用H.264视频编码
  • -c:a aac:使用AAC音频编码

2.3 提取音频部分(MP3格式)

ffmpeg -i 机甲1.mp4 -vn -acodec libmp3lame -ab 320k 机甲1.mp3
  • -vn:禁用视频流
  • -acodec libmp3lame:指定MP3编码器
  • -ab 320k:设置音频比特率

2.4 视频切割

# 切割时间段 (00:00:00 - 00:30:00)
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:30:00 -c copy part1.mp4# 使用-t指定时长 (30分钟)
ffmpeg -i input.mp4 -ss 00:00:00 -t 1800 -c copy part1.mp4

-c copy:​​不重新编码​​,直接复制原始视频和音频流(速度快,无损,但无法剪切精确到帧)。

ffmpeg -i input.mp4 -ss 00:15:30 -t 00:05:00 -c:v libx264 -c:a aac segment.mp4
  • 适用于非关键帧位置切割
  • 会重新编码,质量略有损失

2.5 视频转GIF

ffmpeg -i 密室6.mp4 -ss 431 -to 442 -vf "fps=10,scale=640:-1" -c:v gif video1.gif
  • -ss 431:从431秒开始
  • -to 442:到442秒结束
  • fps=10:帧率10帧/秒
  • scale=640:-1:宽度640px,高度自动计算
#  `-loop 0`:无限循环
ffmpeg -i "水果缤纷.mp4" -ss 00:00:20 -to 00:00:28 -vf "fps=10,scale=640:-1" -loop 0 output.gif

如果要优化GIF大小,可以写作:

ffmpeg -i input.mp4 -ss 00:01:00 -t 10 -vf "fps=15,scale=500:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

-vf : 视频过滤器链参数,由多个滤镜组成,用逗号 , 分隔,主要完成以下操作:

  1. 降低帧率 (fps=15)**:将视频帧率从原始值(如 30 FPS)降低到 15 FPS,减少 GIF 的帧数,降低文件体积,同时避免动画过快。

  2. 调整分辨率 (scale=500:-1)**:将视频宽度缩放到 500 像素,高度按原比例自动计算(-1 表示保持宽高比),画面避免过大。

  3. 高质量缩放算法 (flags=lanczos)**:使用 Lanczos 重采样算法 进行缩放。相比默认的缩放算法(如双线性插值),Lanczos 能更好地保留细节,减少图像模糊。

  4. 生成调色板 (split[s0][s1];[s0]palettegen[p])**:将视频流分成两个副本 [s0][s1],然后用 [s0] 生成颜色调色板 [p]
    通过分析视频颜色分布,创建一个最优的颜色索引表,减少 GIF 的颜色数量(默认 256 色),同时尽量保留色彩丰富度。

  5. 应用调色板 ([s1][p]paletteuse)**:将调色板 [p] 应用到视频流 [s1] 上。确保生成的 GIF 使用有限的色彩(256 色)但尽可能接近原视频的视觉效果。

最后,推荐一个GIF文件处理网站ezgif,可以对视频进行转GIF进行各种处理,甚至是一帧帧选择要转为GIF的所有帧:

在这里插入图片描述

三、高级应用

3.1 视频拼接

# 创建文件列表
echo "file 'clip1.mp4'" > list.txt
echo "file 'clip2.mp4'" >> list.txt# 拼接视频
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

3.2 添加水印

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" output.mp4
  • 在右下角添加水印(距离边缘10px)

3.3 提取关键帧

ffmpeg -i input.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr thumbnails_%03d.jpg

4. 屏幕录制

ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -preset ultrafast -crf 0 output.mp4

四、实用技巧

  1. 快速切割:使用 -c copy 避免重新编码,速度极快
  2. 批量处理:结合批处理脚本或PowerShell自动化任务
  3. 硬件加速:使用 -hwaccel cuda-hwaccel dxva2 加速处理
  4. 格式探测:使用 ffprobe input.mp4 查看媒体详细信息
  5. 性能监控:添加 -report 参数生成处理日志

常见问题解决:

  1. 编码问题:使用 -c:v libx264 -pix_fmt yuv420p 确保兼容性
  2. 音频同步:尝试 -async 1 参数
  3. 大文件处理:使用分段处理或流式处理
  4. 质量优化:调整CRF值(18-28范围,值越小质量越高)

提示:使用 ffmpeg -h full 查看完整帮助文档,或访问 https://ffmpeg.org/ffmpeg.html 获取更多高级用法。

http://www.dtcms.com/a/438067.html

相关文章:

  • 10月3号
  • QT肝8天15--左侧静态菜单
  • 开源安全工具推荐:afrog- 主要用于 Bug Bounty、Pentest 和 Red Teaming 的安全工具
  • Go中的字符串
  • 为什么要做外贸网站公司邮箱域名是什么
  • 《政企API网关:安全与性能平衡的转型实践》
  • 安卓基础组件026-TabLayout
  • Day03_刷题niuke20251004
  • LeetCode:88.乘积最大子数组
  • 7.Java线程中的重要方法(interrupt、isInterrupted、interrupted)
  • 【深度学习计算机视觉】09:语义分割和数据集
  • Vue3 + Three.js 实现 3D 汽车个性化定制及展示
  • 外贸网站 费用广告公司取名字
  • 金融分析师技能提升路径与学习资源指南
  • MySQL processes, threads, connections的区别
  • 自己做的网站首页变成符号了工程与建设
  • P6374 「StOI-1」树上询问(倍增+LCA)
  • epoll_ctl函数中`sockfd` 和 `ev.data.fd`的疑问解析
  • 做元器件上什么网站做网站公司的排名
  • hadoop-hdfs-secondaryNameNode
  • 每日一个网络知识点:OSI参考模型
  • 怎么在国外网站做推广wordpress企业主题制作视频教程
  • K8s不同工作负载对应LOL里哪位英雄
  • 【探寻C++之旅】第十六章:unordered系列的认识与模拟实现
  • 用terraform 创建一个GKE private cluster
  • [优选算法专题三.二分查找——NO.22寻找峰值]
  • 中国建设银行官方网站下载北京企业做网站
  • [优选算法专题三.二分查找——NO.24搜索旋转排序数组中的最⼩值]
  • 微服务项目->在线oj系统(Java-Spring)--竞赛管理
  • 苏州市吴江太湖新城建设局网站网站模版建设教程