Bootstrap

FFmpeg(一) 简介

FFmpeg 官网

FFmpeg 下载

ffmpeg-release-essentials.7z

ffmpeg-release-full-shared.7z


FFmpeg既是一款音视频编解码工具,同时也是一组音社频编解码开发套件

FFmpeg包含

  • 多种音视频编码
  • 多种协议的流媒体
  • 多种色彩格式转换
  • 多种采样率转换
  • 多种码率转换
  • 多种丰富的插件模块

FFmpeg框架的组成

  • AVFormat 封装模块
  • AVCodec 编解码模块
  • AVFilter 滤镜模块
  • AVDevice
  • AVUtil
  • swresample 音频转换计算模块
  • swscale 视频图像转换计算模块

ffmpeg.exe 是FFmpeg 源代码编译后生成的一个可执行程序,是FFmpeg的编解码工具,作为命令行工具使用。

使用示例

ffmpeg -i input.mp4 output.avi  # 获取输入源input.mp4, 转码, 输出到文件output.avi
ffmpeg -i input.mp4 -f avi output.dat

ffmpeg.exe 的工作流程主要是

  1. 解封装 (demuxing)
  2. 解码 (decoding)
  3. 编码 (encoding)
  4. 封装 (muxing)

其需要6个步骤

  1. 读取输入源
  2. 进行音视频解封装
  3. 解码每一帧音视频数据
  4. 编码每一帧音视频数据
  5. 进行音视频重新封装
  6. 转出到目标

FFmpeg 还提供了播放器相关功能avformat,avcodec 可以播放各种媒体文件或者流,ffplay 是主要播放器。

ffprobe 是FFmpeg 中的多媒体分析器,可以得到媒体的信息,比如媒体格式,总时长,复合码率,包长度,包类型,帧信息。

FFmpeg的编码器支持可以通过ffmpeg -encoders查看
FFmpeg的解码器支持可以通过ffmpeg -decoders查看
FFmpeg的封装支持可以通过ffmpeg -muxers查看
FFmpeg的解封装支持可以通过ffmpeg -demuxers查看
其他的可以参考

Print help / information / capabilities:
-L                  show license
-h <topic>          show help
-version            show version
-muxers             show available muxers
-demuxers           show available demuxers
-devices            show available devices
-decoders           show available decoders
-encoders           show available encoders
-filters            show available filters
-pix_fmts           show available pixel formats
-layouts            show standard channel layouts
-sample_fmts        show available audio sample formats
;