FFmpeg 是一套跨平台的音视频处理开源工具库,可实现音视频的编解码、转码、剪辑、流媒体传输等功能,是前端、后端音视频开发的核心工具之一。
ffmpeg是一种通用媒体转换器。它可以读取各种输入------包括实时抓取/录制设备------过滤并转码它们生成多种输出格式。
ffmpeg is a universal media converter. It can read a wide variety of inputs - including live grabbing/recording devices - filter, and transcode them into a plethora of output formats.
核心特点
- 功能全面
- 支持几乎所有主流音视频格式(MP4、FLV、MKV、MP3、AAC 等)的编解码。
- 可完成转码、裁剪、合并、加水印、提取音频 / 视频流等操作。
- 支持流媒体推流 / 拉流(如 RTMP、HLS、HTTP-FLV 协议)。
- 跨平台性可运行在 Windows、Linux、macOS 等系统,也支持嵌入式设备。
- 高性能底层由 C 语言编写,执行效率高,支持硬件加速(如 NVIDIA CUDA、Intel QSV)。
常用命令示例
1.音视频转码将 WMV 格式的视频转换为 MP4 格式:
ffmpeg -i input.wmv output.mp4
-
提取音频 从视频中提取 MP3 音频:
ffmpeg -i input.mp4 -vn -acodec mp3 output.mp3 -
视频裁剪 截取视频 00:01:00 到 00:02:00 的片段:
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
-
视频裁剪 截取视频 00:01:00 到 00:02:00 的片段:
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
前端开发中的应用
- 结合
ffmpeg.wasm可在浏览器端直接处理音视频(无需后端),比如实现视频压缩、格式转换等功能。 - 后端可通过 FFmpeg 处理用户上传的音视频,生成适配不同终端的文件。