Linux ffmpeg 基础用法
1.Linux环境变量详解2.Linux find命令详解3.Linux lsof命令详解4.Linux grep命令搜索神器详解5.一文吃透Linux htop命令6.Linux stdin、stdout和stderr详解7.Linux ps命令详解(不是PS)8.Linux 著名的sudo、su是什么?怎么用?9.Linux 查看磁盘信息:df与du命令详解10.Linux &&、& 各种操作符困惑? 看此文11.Linux 常用压缩命令全解,一次搞懂通关!12.Linux 硬链接和软链接怎么区分使用?13.推荐一款基于vim的超可扩展文本编辑器neovim14.Linux Systemd基础教程15.Linux rsync命令详解16.C获取程序名称的方法17.Linux ssh 基础教程18.Linux 如何查询命令的二进制文件位置?19.Linux 如何查看当前系统版本的详细信息?20.Linux 用户账户信息配置文件详解21.Linux Debian发行版系统包管理工具使用教程22.Linux dpkg命令详解23.Linux yum 包管理工具使用教程24.Linux sed 命令详解25.Linux awk 命令详解26.Linux dnf 包管理工具使用教程27.Linux netstat 命令详解28.Linux ss 命令详解29.Linux nc 命令详解30.Linux 用户与组基础教程31.Linux firewalld 命令详解32.Linux iptables 命令详解33.Linux 中如何使用Mosquitto MQTT?34.Linux xattr 命令详解35.Linux locate 命令详解36.Linux history 命令详解37.Linux sort 命令详解38.Linux下Certbot使用教程39.Linux ufw 命令详解40.Linux ifconfig ip 命令详解41.Linux setfacl lsattr chattr 命令详解42.Linux zsh基础用法43.Linux umask 命令详解44.Linux 如何设置特殊权限?45.Linux tmux 基础教程46.Linux pstree 命令详解47.Linux tinyproxy 使用教程48.Linux crontab 使用教程49.Linux procps-ng 包详解50.Linux xargs 命令使用教程51.Linux 比grep更快的ack命令详解52.Linux下比ack更快的ag搜索命令详解53.Linux axel 下载加速命令详解54.Linux 下的模糊查找神器 fzf 使用教程55.Linux pget 下载命令详解
56.Linux ffmpeg 基础用法
57.Linux 怎么在储存设备上创建文件系统?58.Linux 如何使用parted进行磁盘分区?59.Linux 如何使用dd命令来复制和转换数据?60.Linux 如何使用fdisk进行磁盘相关的操作?61.Linux pgrep 命令详解62.Linux lsblk 命令详解63.Linux pkill 命令使用详解64.Linux gdisk 命令使用详解65.Linux stat 命令使用详解66.Linux tr 命令使用详解67.Linux mpstat 命令使用详解68.Linux ifstat 命令使用详解69.Linux iostat 命令使用详解70.Linux zcat 命令使用详解71.Linux nmcli 命令使用详解72.Linux iftop 命令使用详解73.Linux 下使用更强的ripgrep来搜索74.Linux inode 详解75.Linux 下aria2 下载神器使用详解76.Linux nftables 命令使用详解77.Linux 磁盘挂载教程78.Linux sftp 使用详解79.Linux 性能更好的ftp客户端 lftp 使用详解80.Linux 使用nload 监控网络流量81.Linux 使用 cut 进行文本提取操作82.Linux 下使用ncdu更好的查看磁盘使用83.Linux 使用 sosreport 生成系统报告84.Linux 下使用tracepath进行网络诊断分析85.Linux 下使用vmstat监控系统性能86.Linux 下使用mtr命令来进行网络诊断87.Linux 下使用traceroute来进行网络诊断分析88.Linux 下使用nslookup和dig来查询域名和ip信息89.Linux 下使用tcpdump进行网络分析90.Linux 使用 partprobe 更新分区表91.Linux expr命令详解92.Linux egrep 命令使用详解93.Linux fgrep 命令使用详解简介
FFmpeg
是一个强大的开源多媒体框架,用于处理视频、音频和其他多媒体文件和流。它允许转换、录制、编辑、流媒体等等。
安装
Debian/Ubuntu
sudo apt update
sudo apt install ffmpeg
Red Hat/CentOS
sudo dnf install ffmpeg
macOS (via Homebrew)
brew install ffmpeg
- 从源码构建
# Install dependencies
sudo apt update
sudo apt install -y build-essential yasm pkg-config libx264-dev libx265-dev libvpx-dev
# Clone FFmpeg repo and compile
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make
sudo make install
常用选项
-
-i
:指定输入文件 -
-f
:指定输出的格式 -
-c:v
:指定视频编解码器 -
-c:a
:指定音频编解码器 -
-b:v
:指定视频比特率 -
-b:a
:指定音频比特率 -
-t
:持续时间 (hh:mm:ss
) -
-ss
:开始时间 -
-vn
:禁用视频流 -
-an
:禁用音频流 -
-map
:选择指定的流 -
-y
:无需询问即可覆盖输出文件
示例用法
查看 ffmpeg
版本
ffmpeg -version
转换视频格式
要将视频从一种格式转换为另一种格式(例如,将
.avi
转换为.mp4
)
ffmpeg -i input.avi output.mp4
从视频中提取音频
提取音频并保存为
mp3
格式
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-
-q:a 0
:设置音频质量(0 为最佳) -
-map a
:选择音频流
转换音频格式
要转换音频文件(例如,将
.wav
转换为.mp3
)
ffmpeg -i input.wav output.mp3
调整视频大小
要将视频调整为特定分辨率(例如
1280x720
)
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
更改视频编解码器
要使用特定编解码器(例如
H.264
编解码器)转换视频
ffmpeg -i input.mp4 -c:v libx264 output.mp4
从视频中提取特定时间范围
要从视频中提取特定片段(例如从 1 分钟开始的 30 秒)
ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4
-
-ss 00:01:00
:开始时间(1分钟) -
-t 00:00:30
:时长(30 秒)
合并多个视频
将多个视频文件合并为一个
- 先创建一个文本文件,把文件的名称写进去,如下:
file 'input1.mp4'
file 'input2.mp4'
- 运行命令
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
视频添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
overlay=10:10
:水印的位置(距左上角10px
)
调整视频速度
- 减速(50% 速度)
ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" output.mp4
- 加速(200% 速度)
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
从视频中创建 GIF
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif output.gif
将音频转换为单声道
ffmpeg -i input.mp3 -ac 1 output.mp3
将音频转换为立体声
ffmpeg -i input.mp3 -ac 2 output.mp3
将音频的音量增加 2 倍
ffmpeg -i input.mp3 -filter:a "volume=2.0" output.mp3
将音频标准化为标准音量级别
ffmpeg -i input.mp3 -filter:a "loudnorm" output.mp3
通过 RTMP
流式传输音频/视频
ffmpeg -re -i input.mp4 -f flv rtmp://live.twitch.tv/app/stream_key
通过 RTP
传输音频
ffmpeg -i input.mp3 -f rtp rtp://192.168.0.100:1234
应用视频滤镜
FFmpeg
包含许多过滤器来调整视频属性,如亮度、对比度、饱和度等。
增加亮度和对比度的示例
ffmpeg -i input.mp4 -vf "eq=brightness=0.05:contrast=1.5" output.mp4
应用音频滤镜
降低音频噪音的示例
ffmpeg -i input.wav -af "afftdn" output.wav
总结
FFmpeg
是一个非常强大和灵活的多媒体工具,用于转换、编辑和处理音频和视频。它支持广泛的格式和编解码器,使其成为任何媒体相关任务的必备工具。使用FFmpeg
,可以执行简单的任务,如转换文件和提取音频,以及更高级的任务,如流式传输、创建 gif
和编辑视频。广泛的过滤器和选项使其适用于几乎任何媒体相关的需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)