文章目录

  • 一、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 容器文件中包含了 111 个 AVC 视频流 , 111 个 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

【FFmpeg】FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 | 复用 | 解复用 )相关推荐

  1. 【FFmpeg】FFmpeg 相关术语简介 二

    文章目录 一.码率与帧率 二.ffmpeg.ffplay.ffprobe 可执行文件 一.码率与帧率 帧率 : 帧频率 , 视频中每秒钟含有视频帧的帧数 , 一秒钟刷新多少张图像 , 连续移动的图像至 ...

  2. HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文

    文章目录 HTTP 介绍 请求数据包/请求消息/请求报文 请求数据包解析 响应数据包/响应消息/响应报文 HTTP 介绍 概念:Hyper Text Transfer Protocol 超文本传输协议 ...

  3. java 直播媒体流服务(ffmpeg、javacv)支持本地视频、网路视频

    还在为视频推流和拉流而烦恼吗?还在为安装nginx.ffmpeg而头疼吗?只需要两步就可以省去这些烦恼,第一步:推流 第二步:播放,你确定不入手么 一.添加媒体流服务依赖包 maven pom.xml ...

  4. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  5. FFmpeg从入门到牛掰(一):解复用(demux)讲解

    转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos 解复用讲解 概念 解复用操作 函数调用流程 ...

  6. ffmpeg——ffmpeg简要

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  7. 快速了解WDM波分复用器的相关术语

    快速导读: 常用的WDM波分复用技术:介质薄膜滤波器TFF(Thin Film Filter).阵列波导光栅AWG WDM器件结构:C-lens和G-lens 光纤准直器(fiber collimat ...

  8. 【四】【vlc-android】播放控制交互与demux解复用层、媒体数据流拉取层的具体数据传递和控制流程源码分析

    1.VLC中有很多demux/mux/encoder/decoder模块,因此需要先了解这些模块的加载原理,模块的加载原理基本一致,因此举例分析MP4解复用模块如何加载完成的,主要流程如下: // v ...

  9. FFMPEG API函数根据SDP文件接收RTP媒体流

    背景 版本ffmpeg 3.3.3:使用 FFmpeg实时接收rtp 音频和视频流,并生成视频文件. 在网上查阅了大量资料,基本上都是使用命令行来接收rtp媒体流的,由于项目中不得不使用ffmpeg接 ...

最新文章

  1. Flex警告:framework.swc”具有默认样式并且在 library-path 中,表...
  2. Linux基础命令---comm
  3. 会议交流 | “数据智能与知识服务”研讨会的专家报告题目已更新!
  4. Java夺命21连问!(附答案)
  5. fossid安装教程_Win10环境下6sV2.1模型编译
  6. MySQL Statement Cancellation Timer] but has failed to stop it.
  7. html页面关闭执行函数,html页面调用js文件里的函数报错--方法名 is not defined处理方法...
  8. 市场研究中的数据分析知识整理 (四)-主成分分析和因子分析
  9. apache 二级域名设置完整步骤
  10. 乘风领航、耀世创新——DEFI平台Lizard打造数字金融新世界
  11. 因涉政内容导致域名被封禁
  12. three.js判断两个向量(角度)夹角误差是否小于某个值
  13. 重磅:微信官方推出 Web 前端和小程序统一框架
  14. 不忍舍弃的回忆——我的大学时代
  15. Traccar记录足迹-服务搭建及使用
  16. EP21 Activity在非正常行为下的数据保存和恢复
  17. B站崩溃3小时引网友狂欢:A站成为最大赢家?
  18. 混凝土外加剂建筑化学品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 中国电信SMGP接口
  20. 《Data Mining》第1章翻译 绪论

热门文章

  1. SharePoint 2010设置问卷调查权限
  2. vista装不了SQL SERVER
  3. PHP对请求时间范围条件的判断
  4. 09_Mybatis开发Dao方法——mapper代理开发规范
  5. 在最长的距离二叉树结点
  6. 算法导论6.1-2习题解答
  7. jQuery ready(fn) 页面载入函数
  8. Javascript编程基础1
  9. Python进程学习笔记-进程创建fork
  10. easyui datebox不可编辑设置