什么是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
文/骚之哈塞给(简书作者)