ffmpeg基础整理

devtools/2025/3/19 17:28:09/
        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.ppmy.cn/devtools/168403.html

相关文章

【CentOS】搭建Radius服务器

目录 背景简介:Radius是什么?Radius服务器验证原理搭建Radius服务器环境信息yum在线安装配置FreeRADIUS相关文件clients.conf文件users文件重启服务 验证 参考链接 背景 在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器,做…

每天五分钟深度学习框架pytorch:基于pytorch搭建循环神经网络RNN

本文重点 我们前面介绍了循环神经网络RNN,主要分析了它的维度信息,其实它的维度信息是最重要的,一旦我们把维度弄清楚了,一起就很简单了,本文我们正式的来学习一下,如何使用pytorch搭建循环神经网络RNN。 RNN的搭建 在pytorch中我们使用nn.RNN()就可以创建出RNN神经网络…

PostgreSQL:简介与安装部署

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

C# WPF编程-边框控件(Border)

C# WPF编程-边框控件(Border) WPF中的Border控件。在WPF中,Border是一个非常有用的控件,它可以用于为其他控件或容器添加边框和背景。Border只能包含一个子元素,但这个子元素可以是另一个容器(如Grid, Stac…

Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南

Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南 一、核心概念对比 1. 本质区别 维度过滤器(Filter)拦截器(Interceptor)规范层级Serv…

Android的消息机制

Android的消息机制-从入门到精通 前言Android消息机制概述Android 的消息机制分析ThreadLocal 的工作原理消息队列的工作原理Looper的工作原理Handler的工作原理 主线程的消息循环 前言 作为开发者,提及Android的消息机制,必然绕不开Handler,…

单机DeepSeek做PPT,YYDS!

今天同事问我 AI 能不能做 PPT,有个述职报告要做,问我能不能帮忙,这时我脑海中的第一画面就是 DeepSeek Kimi DeepSeek 擅长逻辑构建与内容生成,其深度思考能力当前测试下来,不愧为国内No.1,而且还会把中间…

Github 2025-03-15 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2025-03-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…