FFmpeg

FFmpeg安装

FFmpeg 是一款免费开源的跨平台音视频处理工具,被誉为音视频领域的"瑞士军刀"。

| 功能 | 说明 |

| ----------- | ----------------------------- |

| **格式转换** | MP4 ↔ AVI ↔ MKV ↔ MOV 等任意格式互转 |

| **提取/分离** | 从视频中提取音频、提取字幕、分离音轨 |

| **剪辑合并** | 截取片段、拼接多个视频、裁剪画面 |

| **编码压缩** | 调整分辨率、码率、帧率来压缩文件大小 |

| **添加/移除字幕** | 嵌入字幕、提取字幕、移除字幕流 |

| **录制推流** | 屏幕录制、摄像头捕获、直播推流 |

| **滤镜处理** | 加水印、去水印、调色、模糊、旋转等 |

去字幕要

  • 软字幕:一条命令直接移除或提取,不重新编码,速度快、无损

  • 硬字幕:通过裁剪、模糊、遮罩等滤镜处理

  • 完全免费,无需安装大型软件

FFmpeg安装途径

用 winget 一键安装(最简单)

以管理员身份打开 CMD,输入:

bash 复制代码
winget install Gyan.FFmpeg

视频字幕

利用FFmpeg,可以将mp4视频中的字幕去掉。

软字幕(外挂/内封):可单独关闭或提取

硬字幕(内嵌):直接烧录在画面像素中,无法简单分离

bash 复制代码
# 查看字幕流信息
ffmpeg -i input.mp4

# 移除所有字幕流(复制视频和音频,不复制字幕)
ffmpeg -i input.mp4 -c copy -sn output.mp4

# 提取字幕为单独文件
ffmpeg -i input.mp4 -map 0:s:0 subtitles.srt

硬字幕无法完美去除,只能遮盖裁剪

遮盖字幕

遮盖字幕区域

bash 复制代码
# 对底部区域应用模糊效果
ffmpeg -i input.mp4 -vf "delogo=x=0:y=ih-80:w=iw:h=80" -c:a copy output.mp4

# 或用纯色遮罩
ffmpeg -i input.mp4 -vf "drawbox=x=0:y=ih-80:w=iw:h=80:color=black@1:t=fill" -c:a copy output.mp4

对于电脑中的视频,进行如下操作:

bash 复制代码
# 或用纯色遮罩
ffmpeg -i 1986-天空之城_2.mp4 -vf "drawbox=x=0:y=ih-100:w=iw:h=80:color=black@1:t=fill" -c:a copy output2.mp4

裁剪字幕

(字幕在底部黑边处)

bash 复制代码
# 裁剪底部 50 像素(根据实际调整)
ffmpeg -i input.mp4 -vf "crop=in_w:in_h-50:0:0" -c:a copy output.mp4

在CMD中进入视频所在的文件夹。E:\计算机多媒体\视频

cpp 复制代码
ffmpeg -i 1986-天空之城_2.mp4 -vf "crop=in_w:in_h-100:0:0" -c:a copy output2.mp4

执行以上代码之后,发现文件体积有所膨胀。

为什么裁掉一行反而变大?

  1. 一定会触发重编码

    ffmpeg -vf crop=... → 必须解码 → 裁画面 → 再编码。原视频是别人压好的、高度优化的;你重编码等于 "重新打包",默认参数往往更保守、体积更大。

  2. 默认码率 / 质量太高(最常见)

    ffmpeg 默认 x264:CRF 23 ,对很多高压缩的网片来说偏高质量、偏肥大。原视频可能是 800 kbps ,你重编码默认跑到 2000--5000 kbps,哪怕分辨率小一点,体积照样涨。

  3. 画面 "变干净" 反而不好压?

    字幕那一行往往是高对比度、高频细节 ,压缩时开销大;裁掉后,剩余画面更平、噪声更少 ,编码器反而分配了更高比特率去 "保质量",结果体积上去。

  4. 音频也被重编码了

    不加 -c:a copy,音频也会重新编码(比如 aac 默认 128k),额外增加体积。

  5. 容器 / 元数据差异(次要)

    mp4/mkv 封装、moov 块位置、字幕流等,也会带来几十 KB 到几 MB 差异。

只裁画面、尽量不涨体积、画质差不多,执行如下代码,即可对视频字幕进行优化剪裁。

cpp 复制代码
ffmpeg -i 1986-天空之城_3.mp4 -vf "crop=in_w:in_h-100:0:0" -c:v libx264 -crf 28 -preset fast  -c:a copy  output3.mp4

即可完成。

相关推荐
blanks20203 天前
ffmpeg 学习笔记 通过命令行采集音频
ffmpeg
Mahut7 天前
我用 Electron + FFmpeg 做了一个本地视频处理工作站 ClipForge
前端·ffmpeg·electron
源之缘-OFD先行者16 天前
破界渲染:WinForm下的FFmpeg+Vortice极速推流引擎
ffmpeg·winform·推流·h264
源来猿往16 天前
记ffmpeg-8.1.1 之Android库编译(window)
android·ffmpeg
Deitymoon16 天前
RV1126+FFMPEG多路码流监控项目
ffmpeg·音视频
芝麻别开门16 天前
GStreamer DASH Demux 知识文档
ffmpeg·dash
ltlovezh17 天前
ROI 编码学习指南:Android 与 FFmpeg 的真实实现边界
android·ffmpeg·音视频开发
m0_7471245318 天前
多媒体框架 FFmpeg 和 GStreamer
ffmpeg·gstreamer
小鹿研究点东西18 天前
AI直播系统怎么搭?
人工智能·ffmpeg·自动化·音视频·语音识别
Nightwish518 天前
Oracle 数据库巡检检查清单
数据库·oracle·ffmpeg