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

FFmpeg在Go、Python、C++、Rust实践案例

FFmpeg Windows环境下安装详解

下载FFmpeg官方版本

访问FFmpeg官网(https://www.ffmpeg.org/)或GitHub Releases(https://github.com/BtbN/FFmpeg-Builds/releases),选择Windows平台的静态构建版本(Static Builds)。推荐下载最新稳定版,文件通常为ffmpeg-master-latest-win64-gpl.zip或类似名称。

解压下载的压缩包至任意目录(如C:\ffmpeg),确保解压后包含ffmpeg.exeffplay.exeffprobe.exe三个核心文件。

配置环境变量

右键“此电脑”选择“属性” > “高级系统设置” > “环境变量”,在“系统变量”中找到Path并编辑。点击“新建”,添加FFmpeg的bin目录路径(如C:\ffmpeg\bin)。

验证安装是否成功:打开命令提示符(Win + R,输入cmd),运行以下命令:

ffmpeg -version

若输出版本信息,说明配置成功。

通过包管理器安装(可选)

使用Chocolatey或Scoop等包管理器快速安装:

choco install ffmpeg       # Chocolatey
scoop install ffmpeg       # Scoop

安装后无需手动配置环境变量。

验证基础功能

测试音频转码(MP3转WAV):

ffmpeg -i input.mp3 output.wav

测试视频截图(第10秒的画面):

ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 screenshot.jpg

常见问题解决

错误“ffmpeg不是内部命令”:检查环境变量路径是否包含bin目录,或重启终端。

缺少编解码器:下载GPL或LGPL版本的FFmpeg(包含更多编解码器),或手动编译所需模块。

GPU加速支持:需安装NVIDIA CUDA或AMD AMF工具包,并使用对应参数(如-hwaccel cuda)。

进阶配置

自定义编译FFmpeg:下载MSYS2(https://www.msys2.org/),安装GCC和依赖库后,从源码编译。

集成到脚本或程序:调用FFmpeg命令行或使用libavformat/libavcodec等库开发。

ffmpeg 基础命令

安装ffmpeg后,可通过命令行调用。常用命令结构为:

ffmpeg [全局选项] [输入文件选项] -i 输入文件 [输出文件选项] 输出文件

视频格式转换

将MP4转为AVI:

ffmpeg -i input.mp4 output.avi

指定编码器(H.264视频+AAC音频):

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

视频裁剪

按时间裁剪(从00:01:30开始截取10秒):

ffmpeg -i input.mp4 -ss 00:01:30 -t 10 -c copy output.mp4

按画面尺寸裁剪(从左上角(100,50)截取640x480区域):

ffmpeg -i input.mp4 -filter:v "crop=640:480:100:50" output.mp4

视频合并

文本文件list.txt内容:

file 'clip1.mp4'
file 'clip2.mp4'

执行合并:

ffmpeg -f concat -i list.txt -c copy output.mp4

调整视频参数

修改分辨率(缩放为1280x720):

ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

调整帧率(改为30fps):

ffmpeg -i input.mp4 -r 30 output.mp4

改变比特率(视频1500k,音频128k):

ffmpeg -i input.mp4 -b:v 1500k -b:a 128k output.mp4

音频处理

提取音频:

ffmpeg -i input.mp4 -vn -c:a copy output.aac

替换音频:

ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4

调整音量(2倍音量):

ffmpeg -i input.mp4 -filter:a "volume=2" output.mp4

高级滤镜应用

添加水印:

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4

视频加速(2倍速,音频保持正常):

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4

画面旋转(顺时针90度):

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

屏幕录制

录制桌面(Linux系统):

ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4

录制摄像头(Mac系统):

ffmpeg -f avfoundation -i "0" output.mkv

直播推流

RTMP推流:

ffmpeg -re -i input.mp4 -c:v libx264 -preset fast -c:a aac -f flv rtmp://server/live/stream_key

HLS切片:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 10 -hls_playlist_type event stream.m3u8

硬件加速

使用NVIDIA GPU编码:

ffmpeg -i input.mp4 -c:v h264_nvenc -preset fast output.mp4

QSV加速(Intel):

ffmpeg -hwaccel qsv -i input.mp4 -c:v h264_qsv output.mp4

视频基础处理

  1. 视频格式转换
    ffmpeg -i input.mp4 output.avi
    将MP4转为AVI格式。

  2. 调整视频分辨率
    ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
    将视频分辨率调整为1280x720。

  3. 修改视频帧率
    ffmpeg -i input.mp4 -r 30 output.mp4
    强制输出帧率为30fps。

  4. 提取视频音频
    ffmpeg -i input.mp4 -vn -acodec copy output.aac
    提取音频并保留原始编码。

  5. 替换视频音轨
    ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 output.mp4
    保留原视频流,替换为新的音频。

  6. 视频静音处理
    ffmpeg -i input.mp4 -an -c:v copy output.mp4
    移除所有音频流。

  7. 视频片段剪切
    ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c copy output.mp4
    精确剪切1分钟到2分30秒的内容。

  8. 合并多个视频
    ffmpeg -f concat -i file_list.txt -c copy output.mp4
    通过文本文件列表合并视频。

  9. 调整视频比特率
    ffmpeg -i input.mp4 -b:v 2M output.mp4
    设置视频比特率为2Mbps。

  10. 旋转视频方向
    ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
    顺时针旋转90度。


特效与滤镜

  1. 添加水印
    ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4
    在左上角(10,10)位置添加静态水印。

  2. 动态水印跟踪
    结合剪影工具的关键帧跟踪功能,生成动态坐标文件后通过FFmpeg应用:
    ffmpeg -i input.mp4 -vf "movie=logo.png[wm];[in][wm]overlay=x='if(gte(t,5),10,NAN)':y=10" output.mp4

  3. 模糊背景
    ffmpeg -i input.mp4 -vf "split[original][blur];[blur]boxblur=10[bg];[original][bg]overlay=0:0" output.mp4
    主体保持清晰,背景添加10强度模糊。

  4. 老电影效果
    ffmpeg -i input.mp4 -vf "noise=c0s=60:c0f=u" -color_range mpeg output.mp4
    添加颗粒噪声模拟胶片质感。

  5. 颜色校正
    ffmpeg -i input.mp4 -vf "eq=contrast=1.5:brightness=-0.05:saturation=0.8" output.mp4
    调整对比度、亮度和饱和度。

  6. 画中画效果
    ffmpeg -i bg.mp4 -i fg.mp4 -filter_complex "[1]scale=iw/4:ih/4[fg];[0][fg]overlay=main_w-overlay_w-10:10" output.mp4
    将第二个视频缩小后置于主视频右下角。

  7. 绿幕抠像
    ffmpeg -i bg.mp4 -i green_screen.mp4 -filter_complex "[1]chromakey&

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

相关文章:

  • vue3 el-table 列汉字 排序时排除 null 或空字符串的值
  • rust cargo 编译双架构的库
  • 构建InfluxDB 3 Python插件深入实践指南
  • DDL期间TDSQL异常会话查询造成数据库主备切换
  • linux环境下安装和配置MySQL数据库
  • 关于市场主流自动化测试工具和框架的简要介绍
  • MySQL主键深度解析:数据库设计的核心基石
  • Java学习---JVM(1)
  • 字节跳动高质量声音克龙文字转语音合成软件MegaTTS3整合包
  • 依存句法分析:语言结构的骨架解码器
  • 岛津液相色谱仪配置RF-20AXS荧光检测器的测试安装,校准
  • Ansible:强大的自动部署工具
  • SPGAN: Siamese projection Generative Adversarial Networks
  • 开源 Canvas 和 WebGL 图形库推荐与对比
  • OpenCV 4.10.0 移植 - Android
  • 跨境电商税务解决之道:在合规航道上驶向全球市场
  • Elasticsearch 简介
  • 集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
  • 节日庆典儿童节婚庆运动会劳动节PPT模版
  • Android Studio 打 release 包 Algorithm HmacPBESHA256 not available 问题解决
  • 【arXiv 2025】新颖方法:基于快速傅里叶变换的高效自注意力,即插即用!
  • 多样化消费摄像头监控功能
  • pdf_copy.ahk
  • 用 LangChain4j 从零实现 RAG:基于 PDF 文档的智能问答系统
  • 《信号与系统》学习笔记——第八章(补充部分)
  • 缺乏日常项目进度例会机制,如何系统推进
  • 基于大模型的膀胱癌全周期精准诊疗方案研究
  • GitHub敏感信息收集与防御指南
  • 【音视频】TS协议解析
  • 音频 SDP 文件格式