【Android FFMPEG 开发】FFmpeg 相关术语简介

【Android FFMPEG 开发】FFmpeg 相关术语简介,第1张

概述文章目录一、FFmpeg简介二、FFmpeg相关术语1、容器2、媒体流3、数据帧4、数据包5、编解码器6、复用7、解复用博客资源一、FFmpeg简介FFmpeg是"FastForwardmpeg"的缩写,其符合mpeg视频编码标准;FFmpeg功能很强大,可以对音视频进行格式转换,

文章目录一、FFmpeg 简介二、FFmpeg 相关术语1、容器2、媒体流3、数据帧4、数据包5、编解码器6、复用7、解复用博客资源





一、FFmpeg 简介

FFmpeg 是 " Fast Forward mpeg " 的缩写 , 其符合 mpeg 视频编码标准 ;

FFmpeg 功能很强大 , 可以对音视频进行 格式转换 , 内容修改 , 等几乎所有涉及音视频的 *** 作 ;

爱奇艺 , 优酷 , YouTube 等公司的音视频产品 , 几乎都是基于 FFmpeg 进行的二次开发 ;




二、FFmpeg 相关术语

1、容器

容器 Container : 容器的本质就是文件 , 是特定的视频文件 , 如 mp4 , mkv , flv 等格式的音视频文件 ;

容器的作用 : 容器中可以存放 音频 , 视频 , 字幕流 等信息 , 将这些信息整合在一起 , 按照特定规则放置在容器文件中 ,

使用 MediaInfo 打开一个 mp4 格式的视频文件 , 在 " 容器格式和一般信息 " 一栏中 , 可以看到该 mp4 容器文件中包含了 1 1 1 个 AVC 视频流 , 1 1 1 个 AAC LC 音频流 ;

MediaInfo 工具在 http://mediaarea.net/en/MediaInfo 地址下载 , 或本博客的博客资源中下载 ;


2、媒体流

媒体流 ( Stream ) : 时间上的一段连续数据 , 一段声音数据 称为 音频流 , 一段视频数据 称为 视频流 , 一段字幕数据 称为 字幕流 ;

这些媒体流数据 可以压缩 , 也可以不压缩 , 如视频流以 H.264 格式进行压缩 , 将视频帧编码成 关键帧 , 非关键帧 , 音频流一般是 AAC 编码格式进行压缩 ;

媒体流如果是压缩的 , 在播放时 , 先使用解码器解码 , 然后再播放 ; 生成文件时需要使用编码器 , 编码后存储到文件中 ;


3、数据帧

数据帧 ( Data Frame ) : 媒体流 由 若干 数据帧构成 ; 压缩格式中 , 数据帧是最小的处理单元 ;

在容器中如果有多个数据流 , 那么 视频帧 , 音频帧 , 字幕信息 , 交错存储 , 以保证实时性 ;

数据帧是未压缩的原始数据 , 如 : 视频帧每一帧都是一张完整的 YUV 图片 , 音频帧是 PCM 格式的 ;


4、数据包

数据包 ( Data Packet ) : 将 数据帧 压缩后就是 数据包 , 数据帧是未压缩的原始数据 , 数据包时压缩后的数据 ;

生成容器文件时 , 压缩数据 , 将数据帧 编码压缩 成 数据包 ;

播放容器文件时 , 解压数据 , 将数据包 解码展开 成 数据帧 ;


视频编码过程 : YUV 格式的图像 -> H.264 编码器编码 -> H.264 视频帧
视频解码过程 : H.264 视频帧 -> H.264 解码器解码 -> YUV 格式的图像

音频数据编码过程 : PCM 音频数据 -> ACC 编码器编码 -> AAC 音频帧
音频数据解码过程 : AAC 音频帧 -> AAC 解码器解码 -> PCM 音频数据


5、编解码器

编解码器 ( Codec ) : 数据帧 ( 原始数据 ) 与 数据包 ( 压缩数据 ) 之间的转换工具 ;

数据帧 ( 原始数据 ) -> 编解码器 ( 编码 ) -> 数据包 ( 压缩数据 )

数据包 ( 压缩数据 ) -> 编解码器 ( 解码 ) -> 数据帧 ( 原始数据 )


6、复用

复用 ( Mux ) : 将不同的 媒体流流 , 按照一定规则放入容器 ;

音频流 , 视频流 , 字幕流 ,
按照一定规则
封装到 容器 ( 视频文件 ) 中 ;

复用的关键工具时 复用器 ( muxer ) ;


7、解复用

解复用 ( Demux ) : 从容器中解析不同的流出来 ;

从 容器 ( 视频文件 ) 中 ,
按照一定规则
拆分出 音频流 , 视频流 , 字幕流 ,

解复用的关键工具时 解复用器 ( Demuxer ) ;




博客资源

https://download.csdn.net/download/han1202012/19555927

总结

以上是内存溢出为你收集整理的【Android FFMPEG 开发】FFmpeg 相关术语简介全部内容,希望文章能够帮你解决【Android FFMPEG 开发】FFmpeg 相关术语简介所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1211099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存