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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • day04 JavaScript高级程序设计 阅读总结

    day04 JavaScript高级程序设计 阅读总结《JavaScript高级程序设计》(第四版)阅读总结额,据说这本是前端er必看书籍,花了20个小时简单把这本书过了一下,目前暂时很少用到的东西我这一遍就没有过了,等以后要用的时候再回来继续学了。先来谈谈这本书的缺点,书籍前面章节用到了一些后面才讲到的东西,比如第三章讲symbol对象时,就用到了后面才讲的iterator和generator。然后就是感觉讲的有点太广了,而且基本没有课后习题,看过就是看过了,顶多自己花时间把书里面的例子都敲一遍。所以我建议应该和现代JavaScript教程一起食用。反

    2022年8月20日
    9
  • Filter及FilterChain的使用具体解释

    Filter及FilterChain的使用具体解释

    2021年12月9日
    56
  • torchvision 安装出现错误[通俗易懂]

    torchvision 安装出现错误[通俗易懂](base)C:\Users\pxsj_admin>pipinstalltorchvisionCollectingtorchvisionUsingcachedhttps://files.pythonhosted.org/packages/fb/01/03fd7e503c16b3dc262483e5555ad40974ab5da8b9879e164b56c1f4ef6f/tor…

    2022年6月24日
    45
  • webpack dev server_devserver proxy

    webpack dev server_devserver proxy前言当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,这样很麻烦,我们希望本地能搭建一个服务器,然后写入新的代码能够自动检测出来,这时候就需要用到webpack-dev-ser

    2022年8月7日
    8
  • python aiohttp_python aiohttp的使用详解

    python aiohttp_python aiohttp的使用详解1.aiohttp的简单使用(配合asyncio模块)importasyncio,aiohttpasyncdeffetch_async(url):print(url)asyncwithaiohttp.request(“GET”,url)asr:reponse=awaitr.text(encoding=”utf-8″)  #或者直接awaitr.read()不编码,直接读取,适…

    2025年6月30日
    4
  • java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…

    java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…一.Json对象与Json字符串的转化1.jQuery插件支持的转换方式:$.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:JSON.stringify(obj)将JSON转为字符串。JSON.par…

    2022年10月6日
    2

发表回复

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

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