FFmpeg从入门到精通笔记之一库介绍

FFmpeg从入门到精通笔记之一库介绍FFmpeg:FastForwardMovingPictureExpertsGroup(mpeg:动态图像专家组)H.264:国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式.H.264是ITU-T以H.26x系列为名称命名的标准之一AVC(AdvanedVideoCoding):ISO/IECMPEG一方对H.264的称呼…

大家好,又见面了,我是你们的朋友全栈君。

FFmpeg: Fast Forward Moving Picture Experts Group(mpeg:动态图像专家组)
H.264:国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式.H.264是ITU-T以H.26x系列为名称命名的标准之一
AVC(Advaned Video Coding):ISO/IEC MPEG一方对H.264的称呼
序列的参数集(SPS):包括了一个图像序列的所有信息
图像的参数集(PPS):包括了一个图像所有片的信息
MinGW-w64:MinGW是Minimalist GNU for Windows的缩写,ffmpeg在Windows平台中的编译需要使用MinGW-w64,它提供了一系列的工具链来辅助编译Windows的本地化程序。MinGW-w64单独使用起来会比较麻烦,但是其可以与MSYS环境配合使用,MSYS是Minimal SYSYTEM的缩写,其主要完成的工作为UNIX on Windows的功能。显而易见,这是一个仿生UNIX环境的Windows工具集。

第一部分主要介绍FFmpeg的命令行使用。

  • FFmpeg发展过程
  • 搭建FFmpeg的使用环境–比如编译FFmpeg、生成文档、查找说梦文档等。
  • 如何使用FFmpeg实现流媒体应用中的常见功能

FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。

FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。

FFmpeg是一个很全面的图像处理套件。

FFmpeg框架的基本组成包含:
在这里插入图片描述

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

  • FFmpeg的编解码模块AVCodec.包含了绝大多数常用的编解码格式,即支持编码,也支持解码。
       * 支持MPEG4、AAC、MJPEG等自带的媒体编解码格式等
       * 支持第三方的编解码器:H.264(AVC)编码,需要使用x264编码器;H.265(HEVC)编码,需要使用x265编码器;MP3(mp3lame)编码,需要使用libmp3lame编码器
    如果希望增加自己的编码格式,或者硬件编解码,则需要在AVCodec中增加相应的编解码模块。

  • FFmpeg的滤镜模块AVFilter.AVFilter库提供了一个通用的音频、视频、字幕等滤镜处理框架。在AVFilter中,滤镜框架可以有多个输入和多个输出。

  • FFmpeg的视频图像转换计算模块swscale.swscale模块提供了高级别的图像转换API

  • FFmpeg的音频转化计算模块swresample.swresample模块提供了高级别的音频重采样API。

FFmpeg的编解码工具

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

FFmpeg的播放器ffplay

  • ffplay是FFmpeg源代码编译后生成的另一个可执行程序,可以作为测试工具进行使用,ffplay提供了音视频显示和播放相关的图像信息、音频的波形信息等。系统首先需要有SDL来进行ffplay的基础支撑。ffpaly旧版依赖于SDL-1.2,新版依赖于SDL-2.0。

FFmpeg的多媒体分析器ffprobe

  • ffprobe也是FFmpeg源码编译后生成的一个可执行程序。ffprobe是一个非常强大的多媒体分析工具,可以从媒体文件或者媒体流中获得你想要了解的媒体信息,比如音频的参数、视频的参数、媒体容器的参数信息等。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153380.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Lucene中AttributeSource作为TokenStream父类的原因

    Lucene中AttributeSource作为TokenStream父类的原因lucene3.0lucene中有如下的类层次:org.apache.lucene.util.AttributeSourceorg.apache.lucene.analysis.TokenStream(implementsjava.io.Closeable)org.apache.lucene.analysis.NumericTokenStreamorg.apache…

    2022年7月22日
  • 树莓派3B+ 引脚图说明

    树莓派3B+ 引脚图说明如上图所示,我们可以很清楚的看到各个引脚的功能。例如我们想使用pwm引脚来控制舵机,则我们可以考虑使用其中的BCM18(PWM0)和BCM13(PWM1)。在使用wiringPi库时,我们定义的引脚即BCM引脚,例如:pwmPinV=18pwmPinH=13…

    2022年6月25日
  • 常用的字符串截取方法

    常用的字符串截取方法1取字符串的前i个字符str=str.substring(0,i);str=str.remove(i,str.Length-i);2去掉字符串的前i个字符:str=str.remove(0,i);str=str.substring(i);3从右边开始取i个字符:str=str.substring(str.Length-i);str=str.remove(0,str.Lengt…

    2022年5月10日
  • 【JS 逆向百例】Fiddler 插件 Hook 实战,某创帮登录逆向

    【JS 逆向百例】Fiddler 插件 Hook 实战,某创帮登录逆向关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶、JS/安卓逆向等技术干货!声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!逆向目标目标:某创帮登录接口主页:aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1s接口:aHR0cHM6Ly9tLndjYmNoaW5hLmNvb..

    2022年6月20日
  • Odin Inspector 系列教程 — Dictionary Drawer Settings Attribute[通俗易懂]

    Odin Inspector 系列教程 — Dictionary Drawer Settings Attribute[通俗易懂]DictionaryDrawerSettings自定义字典绘制方式默认以左侧为key,右侧为value的形式展示,如果需要进行序列化,需要继承自SerializedMonoBehaviour[DictionaryDrawerSettings()][ShowInInspector][InfoBox(“为了序列化字典,我们需要做…

    2022年7月21日
  • spssχ2检验_spss交叉表分析方法与步骤 + SPSS卡方检验结果的阅读

    spssχ2检验_spss交叉表分析方法与步骤 + SPSS卡方检验结果的阅读spss中交叉分析主要用来检验两个变量之间是否存在关系,或者说是否独立,其零假设为两个变量之间没有关系。在实际工作中,经常用交叉表来分析比例是否相等。例如分析不同的性别对不同的报纸的选择有什么不同。spss交叉表分析方法与步骤:1、在spss中打开数据,然后依次打开:analyze–descriptive–crosstabs,打开交叉表对话框2、将性别放到行列表,将对读物的选择变量放到列,这样…

    2022年5月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号