ffmpeg基础整理

embedded/2025/3/17 8:21:07/
        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/embedded/172994.html

相关文章

在离线情况下如何使用 Python 翻译文本

以下是在离线环境下使用Python进行文本翻译的两种主流方案,包含本地模型部署和轻量级词典两种方法: 方案一:使用本地神经网络翻译模型(推荐) # 安装依赖(需提前下载) # pip install argos-tra…

在K8S中,svc底层是如何实现的?

在Kubernetes中,Service是集群内部的一个抽象层,用于定义一组Pod的逻辑分组,并提供统一的访问入口点,同时还可以对这些Pod提供负载均衡和网络代理功能。Service底层的实现主要包括以下几个关键组件和技术: 标签选择器…

删除有序数组中的重复项(26)

26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:int removeDuplicates(vector<int>& nums) {auto first nums.begin();auto last nums.end();auto result first;if (first last) {return std::…

架构思维:高性能架构_01基础概念

文章目录 概述基础概念性能指标利特尔法则&#xff08;O T L&#xff09;系统优化策略1. 降低耗时&#xff08;L↓&#xff09;2. 增加容量&#xff08;O↑&#xff09;3. 增加时延&#xff08;L↑&#xff09; 场景化指标选择响应时间优先吞吐量/容量优先平衡策略 概述 一个…

MYsql—1

1.mysql的安装 在windows下安装mysql&#xff0c;直接官网搜索即可&#xff1a;http://www.mysql.com/&#xff0c;自己找想要的版本进行download&#xff0c;官网长这样 安装路径需要是英文路径&#xff0c;设置默认即可&#xff0c;若安装执行内容时报错&#xff0c;则AltCt…

买瓜 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组

买瓜 题目来源 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组 原题链接 蓝桥杯 买瓜 https://www.lanqiao.cn/problems/3505/learning/ 问题描述 题目描述 小蓝正在一个瓜摊上买瓜。瓜摊上共有 n n n 个瓜,每个瓜的重量为 A i A_i Ai​。小蓝刀功了得,他可以把任何瓜…

Python软件和搭建运行环境

一、Python安装全流程&#xff08;Windows/Mac/Linux&#xff09; 1. 下载官方安装包 官网地址&#xff1a;Download Python | Python.org 版本选择建议&#xff1a;推荐Python 3.10&#xff08;勾选Add Python to PATH&#xff09; 2. 详细安装步骤&#xff08;以Windows为…

打包当前Ubuntu镜像 制作Ubuntu togo系统

我的系统的基本情况说明&#xff1a; 我原来的系统的具体型号如下&#xff1a; uname -rLinux Engine 5.15.0-134-generic #145~20.04.1-Ubuntu SMP Mon Feb 17 13:27:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux我原来的硬盘以及分区策略如下&#xff1a; 可以看到我的分区…