美文网首页
FFmpeg简介

FFmpeg简介

作者: 小怪兽鱼小宝 | 来源:发表于2022-02-24 19:06 被阅读0次

    FFmpeg中的“FF”指的是“Fast Forward”,“mpeg”指的是“Moving Picture Experts Group”(动态图像专家组)。

    一、FFmpeg的基本组成

    FFmpeg主要有以下几个模块库组成:AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等。 20180602175620844.jpeg

    1.FFmpeg的封装模块AVFormat

    AVFormat中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4、FLV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。
    FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。根据实际需求,可进行媒体封装格式的拓展,增加自己定制的封装格式,即在AVFormat中增加自己的封装处理模块。

    2.FFmpeg的编解码模块AVCodec

    AVCodec中实现了目前多媒体领域绝大多数常用的编解码格式,既支持编码,也支持解码。AVCodec除了支持MPEG4、AAC、MJPEG等自带的媒体编解码格式之外,还支持第三方的编解码器,如H.264(AVC)编码,需要使用x264编码器;H.265(HEVC)编码,需要使用X265编码器;MP3(mp3lame)编码,需要使用libmp3lame编码器。如果希望增加自己的编码格式,或者硬件编解码,则需要在AVCodec中增加相应的编解码模块。

    3.FFmpeg的滤镜模块AVFilter

    AVFilter库提供了一个通用的音频、视频、字幕等滤镜处理框架。在AVFilter中,滤镜框架可以有多个输入或多个输出。我们参考下面这个滤镜处理的例子。


    image.png

    4.FFmpeg的视频图像转换计算模块swscale

    swscale模块提供了高级别的图像转换API,例如它允许进行图像缩放和像素格式转换,常见于将图像从1080p转换成720p或者480p等的缩放,或者将图像数据从YUV420P转换成YUYV,或者YUV转RGB等图像格式转换。

    5.FFmpeg的音频转换计算模块swresample

    swresample模块提供了高级别的音频重采样API。例如它允许操作音频采样、音频通道布局转换与布局调整。

    二、FFmpeg的播放器ffplay

    ffplay是FFmpeg源代码编译后生成的另一个可执行程序,与ffmpeg在FFmpeg项目中充当的角色基本相同,可以作为测试工具进行使用,ffplay提供了音视频显示和播放相关的图像信息、音频的波形信息等。用下面的命令运行ffplay

       ffplay 1.mp4
    

    三、FFmpeg的多媒体分析器ffprobe

    fprode也是FFmpeg源码编译后生成的一个可执行程序。ffprode是一个非常强大的多媒体分析工具,可以从媒体文件或者媒体流中获得你想要了解的媒体信息,比如音频的参数、视频的参数、媒体容器的参数信息等。
    例如它可以帮助分析某个媒体容器中的音频是什么编码格式、视频是什么编码格式,同时还可以得到媒体文件中媒体的总时长、复合码率等信息。使用ffprode可以分析媒体文件中每个包的长度、包的类型、帧的信息等。

      ffprobe 1.mp4
    

    备注:
    1.查看ffmpeg安装目录:

       which ffmpeg         //位置:usr/local/bin/ffmpeg
    

    2.执行当前目录下的命令

      ./configure.             //执行configure命令。直接用configure不可以
    

    相关文章

      网友评论

          本文标题:FFmpeg简介

          本文链接:https://www.haomeiwen.com/subject/lfizlrtx.html