大家好,又见面了,我是你们的朋友全栈君。
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是一个非常强大的多媒体分析工具,可以从媒体文件或者媒体流中获得你想要了解的媒体信息,比如音频的参数、视频的参数、媒体容器的参数信息等。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153380.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...