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

ffmpeg基础整理

        FFmpeg 是一个开源的跨平台 多媒体处理工具 ,可以用于 录制、转换、编辑、流式传输 音视频文件。它支持几乎所有常见的音视频格式,功能极其强大,是开发者、视频创作者常用的命令行工具。

一、FFmpeg 核心功能

  1. 格式转换:将视频/音频从一种格式转换为另一种格式(如 MP4 → AVI、MP3 → WAV)。
  2. 剪辑/合并:截取视频片段、合并多个文件。
  3. 调整参数:修改分辨率、码率、帧率、音量等。
  4. 提取内容:从视频中提取音频,或从音频中提取片段。
  5. 流媒体处理:支持直播推流、拉流等网络传输操作。

二、基础安装

  • Windows:官网下载编译好的二进制文件,解压后即可使用。
  • macOS:通过 Homebrew 安装:brew install ffmpeg
  • Linux:使用包管理器安装:
sudo apt-get install ffmpeg # Debian/Ubuntu 
sudo yum install ffmpeg # CentOS

三、基础使用命令

1. 通用命令结构
ffmpeg -i [输入文件] [参数] [输出文件]

2. 常见场景示例
(1) 格式转换(MP4 → AVI)
ffmpeg -i input.mp4 output.avi
(2) 提取音频(从视频中提取 MP3)
ffmpeg -i input.mp4 -vn -q:a 0 output.mp3
 # -vn: 禁用视频流
 # -q:a 0: 音频质量最佳(0-9,0为最高)
(3) 调整视频分辨率(缩放为 640x480)
ffmpeg -i input.mp4 -vf "scale=640:480" output.mp4
(4) 截取视频片段(从第10秒开始截取15秒)
ffmpeg -i input.mp4 -ss 00:00:10 -t 15 output.mp4
 # -ss: 开始时间
 # -t: 持续时间
(5) 合并多个视频文件
  1. 创建 list.txt 文件,写入待合并的文件路径:
file 'input1.mp4' file 'input2.mp4'
  1. 执行合并命令:
ffmpeg -f concat -i list.txt -c copy output.mp4

3. 常用参数说明
参数
作用
-c:v
指定视频编码器(如 -c:v libx264)
-c:a
指定音频编码器(如 -c:a aac)
-b:v
设置视频码率(如 -b:v 1M表示 1Mbps)
-r
设置帧率(如 -r 30表示 30fps)
-preset
编码速度与质量的平衡(如 -preset fast)

四、进阶知识

  1. 流媒体推流:
ffmpeg -i input.mp4 -f flv rtmp://live.twitch.tv/app/your-stream-key
  1. 硬件加速(需显卡支持):
ffmpeg -hwaccel cuda -i input.mp4 output.mp4 # NVIDIA GPU
  1. 批量处理脚本:结合 Shell/Python 脚本自动处理多个文件。

  • 官方文档:Documentation
  • 常用命令速查表:ffmpeg Cheat Sheet by thetartankilt - Download free from Cheatography - Cheatography.com: Cheat Sheets For Every Occasion

http://www.kler.cn/a/586729.html

相关文章:

  • 《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成
  • 利用matlab编制的转子动力学
  • springboot树形结构 支持模糊查询,返回匹配节点和父节点,其他节点不返回
  • Android开源库——RxJava和RxAndroid
  • Training-free neural architecture search: A review
  • docker构建镜像时总会有部分文件没有被更新,解决办法
  • Android Framework 之了解系统启动流程二
  • 011【fate/extra link】【概率论与数理统计】大数定律与中心极限定理 ,数理统计的基本概念,常用的统计三大分布,正态总体的抽样分布定理
  • Python 实现大文件的高并发下载
  • jenkins通过ssh连接远程服务器出错解决方案(Algorithm negotiation fail)
  • MySQL(第四周)
  • 基于“动手学强化学习”的知识点(六):第 19 章 目标导向的强化学习(gym版本 >= 0.26)
  • C++之OOP
  • 蓝桥杯嵌入式赛道复习笔记1(led点亮)
  • 【Python机器学习】2.4. K均值聚类(KMeans Analysis)实战(进阶)
  • SOME/IP:用Python实现协议订阅、Offer、订阅ACK与报文接收
  • 【Unity网络同步框架 - Nakama研究(二)】
  • Spark 中创建 DataFrame 的2种方式对比
  • 【最后203篇系列】015 几种消息队列的思考
  • docker后台运行,便于后期用命令行进入它的终端