什么是FFmpeg?

什么是FFmpeg?

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg官网:https://ffmpeg.org

强大的功能

FFmpeg有非常强大的功能包括:视频采集、视频格式转化、视频截图、视频添加水印、视频切片(m3u8、ts)、视频录制、视频推流、更改音视频参数(编码方式、分辨率、码率、比特率等)功能,等等...

FFmpeg主要构成

FuncNamesFeatures

libavformat用于各种音视频封装格式的生成和解析

libavcodec用于各种类型声音/图像编解码

libavutil包含一些公共的工具函数

libswscale用于视频场景比例缩放、色彩映射转换

libpostproc用于后期效果处理

FFmpeg常用参数

主要参数

-i 设定输入流

-f 设定输出格式

音频参数

-ar 设定采样率

-ac 设定声音的Channel数

-acodec 设定声音编解码器,未设定则使用与输入流相同的编解码器

-an 不处理音频

视频参数

-b 设定视频流量,默认为200Kbit/s

-r 设定帧速率,默认为25

-s 设定画面的宽与高

-aspect 设定画面的比例

-vn 不处理视频

-vcodec 设定视频编解码器,未设定则使用与输入流相同的编解码器

FFmpeg命令分析

HLS-搭建Nginx流媒体服务器(3)一文中,Richy通过ffmpeg实现将RTMP流HLS流推流至Nginx+RTMP流媒体服务器上,命令如下:

ffmpeg -re -i input.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar44100-strict -2-ac1-f flv -s1280x720 -q10rtmp://localhost:1935/rtmplive/test

分析:

对输入源 input.mp4 进行: libx264视频编码,aac音频编码,设定音频采样率44100,视频分辨率1280x720

输出格式:flv

推流至流媒体服务器地址:rtmp://localhost:1935/rtmplive/test

文/骚之哈塞给(简书作者)

推荐阅读更多精彩内容