FFmpeg的工程化方案

音频文件和视频文件的转码处理一般称为多媒体处理,华为云也有相应的媒体处理服务——Media Processing Center,简称MPC,是一种多媒体数据处理服务,基于华为云云计算服务构建,解决客户自建音视频处理能力不可避免的投入成本高昂、技术门槛高等问题,帮助客户专注于业务能力构建,快速交付上线。

1. FFmpeg对音频处理的学习

1.1 音频中常见的参数说明


​-aq quality 指定输出音频的质量​​​​-ar rate 指定音频采样率 (单位 Hz)
-ac channels 指定音频声道数量
-an 输出的文件不带音频
-acodec codec 指定输出的音频编码类型('copy' to copy stream)
-vol volume 指定音频的音量 (256=normal)
-af filter_graph 指定音效
-ab 指定输出音频的比特率​

1.2 重要参数及其特性说明

FFmpeg 处理音视频文件的常用方法_音视频

2.FFmpeg对视频处理的学习

2.1 视频中常见的参数说明

​-r rate 指定帧率 (单位Hz )​-s size 指定分辨率 (WxH)
-aspect aspect 指定宽高比(4:3, 16:9 or 1.3333, 1.7777)
-vn 指定输出文件不包含视频
-vcodec codec 指定输出视频的编码格式 ('copy' to copy stream)
-vf filter_graph 指定视频滤镜
-ab bitrate 指定音频比特率 (please use -b:a)
-b bitrate 指定比特率,若指定该值为平均比特率 (please use -b:v)
-vb 指定视频比特率

2.2 重要参数及其特性说明

FFmpeg 处理音视频文件的常用方法_音视频_02

3.FFmpeg转码(包含音频以及视频转码)

转码一般涉及这样一些概念:

  1. 容器格式的转换,比如MP4转换为MOV
  2. 容器中音视频数据编码方式转换,比如H264编码转换成MPEG4编码,MP3换为AAC
  3. 音视频码率的转换,比如4M的视频码率降为2M
  4. 视频分辨率的转换,比如1080P视频变为720P,音频重采样等等

转码流程

FFmpeg 处理音视频文件的常用方法_音视频_03

音频转码命令如下
​ffmpeg -i 音频名称.mp3 -acodec aac -ab 3000 -ac 1 -ar 8000 output.aac​

视频转码命令如下
​ffmpeg -i 视频的名称.mp4 -vcodec h263 -b:v256000 -r 15 -s 352x288 —acodec copyoutput.ts​