Media基础知识一

news2024/7/6 19:48:47

1.视频文件是什么?
FLV, MKV, MP4是不同的视频后缀名,不同的视频格式就像一个容器。容器里封装的是音视频流。
FFmpeg:一款开源软件,用来处理音视频,对音视频进行编解码。要在Android中使用FFmpeg,需要下载源码,然后通过ndk进行编译,编成Android可以用的版本。
FFmpeg需要到官网下载,根据自己的系统选择适合的开发版本。下载好后包含三个应用程序:
在这里插入图片描述
ffmpeg:对音视频进行编解码操作。
ffplay:播放器。
ffprobe:音视频的分析工具。
ffplay -i 文件路径 :播放音视频文件。
ffplay -i 文件路径 -vst 1:播放音视频文件中的第一个画面。
音视频文件都可以存放多路音视频流。
从视频文件中拿到的不一定是完整的图像,可能某一个图像的数据记录的是跟前一幅图像的区别信息,这样的一幅图像不能直接转化为视频进行播放,所以需要对这幅图像进行解码,然后得到一幅完整的图像进行展示。即需要根据两幅图像进行图像整合,这个过程叫做解码。

2.为什么要进行编解码操作?
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。
明明可以同时保存两幅图像的完整信息,却选择保存一幅图像相对于另一幅图像的差异点,这样做的优点就是节省空间。如果一段视频不经过编码处理,只采用原始图像的方式保存,会导致数据量过大,所以要进行编码处理。编码就是对数据进行压缩的过程。
在用编码对图像进行处理时,会存在一定的差异性,最后编码出来的数据会得到不同类型的压缩图像,这些类型有I P B帧。
I帧:帧内编码帧,关键帧,I帧可以看作一个图像经过压缩后的产物,可以单独解码出一个完整的图像;
P帧:前向预测编码帧,记录了本帧跟之前的一个关键帧或P帧的差异信息,解码完整的信息需要参考前一个I帧的信息,即解码时需要用之前缓存的画面(I帧)叠加上本帧定义的差别,生成最终画面(解码P帧的过程);
B帧:双向预测编码帧,记录了本帧与前后帧的差别,解码需要参考前一个I帧或P帧,同时需要后面的P帧才能解码一张完整的图像。

3.如何编码?
编码的目的就是为了压缩。各种视频编码方式,都是为了让视频变得体积更小,有利于存储和传输,编码的核心思想就是去除冗余信息。
空间冗余:图像内部相邻像素之间存在较强的相关性多造成的冗余。
时间冗余:视频图像序列中的不同帧之间的相关性所造成的冗余,即相邻图像只需要记录差异之处,而相同之处的记录就造成了时间冗余。
视觉冗余:人眼不能感知或不敏感的那部分图像信息。
信息熵冗余:也称编码冗余,人们用于表达某一信息所需要的比特数总比理论上表示该信息所需要的最少比特数要大,他们之间的差距就是信息熵冗余,或称编码冗余。
知识冗余:指在图像中还包括与某些验证知识相关的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/169116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue-element-admin 换肤功能,登录后不同权限不同皮肤,刷新不会失效

一、拉vue-element-admin的代码跑起来 安装依赖时会遇到一些问题,tui-editor装不上,需要按照以下步骤删除它 1、vue-element-admin\package.json 删除‘tui-editor’:‘1.3.3’依赖项。 2、vue-element-admin\src\components 删除MarkdownE…

C++ 三种智能指针及其设计实现unique_ptr、 share_ptr 指针

0、差不多春节啦。。。。。 好久没有写博客,写一写吧。。。。。。 祝大家嗨皮,提前恭喜发财 1、三种智能指针的使用方法 C 有3种指针:share_ptr, unique_ptr, weak_ptr 1.1)unique_ptr 指针 std::unique_ptr 是一种独占的智能指…

Sklearn标准化和归一化方法汇总(1):标准化 / 标准差归一化 / Z-Score归一化

Sklearn中与特征缩放有关的五个函数和类,全部位于sklearn.preprocessing包内。作为一个系列文章,我们将逐一讲解Sklearn中提供的标准化和归一化方法,以下是本系列已发布的文章列表: Sklearn标准化和归一化方法汇总(1)&#xff1a…

ESP32 (WIFI)-AP、STA模式(13)

提示:本博客作为学习笔记,有错误的地方希望指正 文章目录一、ESP32 WIFI模式概述二、ESP32 WIFI-AP初始化流程三、WIFI-AP示例四、ESP32 WIFI-STA初始化流程五、WIFI-STA示例一、ESP32 WIFI模式概述 参考资料:ESP IDF编程手册V4.4   WIFI主…

【GD32F427开发板试用】Systick系统定时器的使用

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:HonestQiao 基于Arm Cortex-M系列内核的MCU,都包含了SysTick定时器。 所谓SysTick即为系统定时器,又称嘀嗒定时器&am…

Docker Swarm

Swarm 是什么? Docker Swarm 是Docker官方的跨节点的容器编排工具。用户只需要在单一的管理节点上操作,即可管理集群下的所有节点和容器。 主要解决什么问题 1. 解决docker server的集群化管理和部署。 2. Swarm通过对Docker宿主机上添加的标签信息来…

分享60个PHP源码,总有一款适合您

PHP源码 分享60个PHP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 60个PHP源码下载链接:https://pan.baidu.com/s/1SvjbzolwuMrQyhVb_byG5Q?pwdx831 提取码&#xff…

生物素点击标记试剂:DBCO-SS-PEG3-biotin,1430408-09-5,生物素PEG3二硫键DBCO

1、理论分析:中文名:生物素-三聚乙二醇-二硫-二苯并环辛炔,生物素-PEG3-二硫-DBCO ,生物素PEG3-二硫二苯并环辛炔英文名:DBCO-S-S-PEG3-biotin,Biotin-PEG3-SS-DBCOCAS号:1430408-09-5化学式&am…

如何使用ArcGIS进行点抽稀

01 概述对于制图工作者而言,遇到大量的点要素(POI、村名等)标注的时候往往非常的麻烦,因为这些点往往都是十分的密集,直接标注很影响制图的美观。如果直接去处理原始的数据,会导致后续的数据更新维护麻烦&a…

pdf合并在线,大家都在用的工具

工作和生活当中都有很多场景需要我们提交PDF文档,而且有时候要求仅能提交一份,如果这时候刚好你的文档分成了几份,就得先合并之后才能提交。要在线合并PDF并不麻烦,关键是用对工具。下面就来给大家介绍几款热门的软件,…

Spring Boot(五十五):基于redis防止接口恶意刷新和暴力请求

下面的教程,通过intercept和redis针对urlip在一定时间内访问的次数来将ip禁用,可以根据自己的需求进行相应的修改,来达到自己的目的 下面只讲解大致步骤,不详细讲解,需要完整代码的可以自行下载。 https://download.c…

数据结构之查找详解

一、什么是查找表? 1.1 定义 查找表是由同一类型的数据元素构成的集合。例如电话号码簿和字典都可以看作是一张查找表。 1.2 查找表的几种操作: 1)在查找表中查找某个具体的数据元素; 2)在查找表中插入数据元素&am…

win10环境使用nvm安装多版本nodejs并配置环境变量

win10环境使用nvm安装多版本nodejs并配置环境变量nvm安装环境变量配置测试安装全局模块对于旧版本的node,手动安装npm最近使用node工程,需要多版本,并且进行切换,来回安装卸载不同版本的node比较麻烦,后面自己就简单捯…

MySQL 5.5版本的两个执行引擎

目录执行引擎引入MySQL执行引擎生成的文件MyIsamInnoDB聚簇索引与非聚簇索引稀疏索引回表覆盖索引执行引擎引入 我们真正的索引结构要去落地的时候呢,也就是MySQL底层BTree数据结构要去落地的话,那么一定要和我们的存储引擎相结合。接下来我们会说MySQL…

【游戏逆向】老飞飞怀恋魅力爱玩等老飞飞瞬移分析代码

【游戏逆向】老飞飞怀恋魅力爱玩等老飞飞瞬移分析代码 在游戏中,每个人物都有一个坐标。x坐标和y坐标。老飞飞也一样,可能有些朋友用ce找到当前的人物坐标。然后修改坐标就能达到瞬移到效果。不过有些老飞飞是无法实现的。只要瞬移就会掉客户端。今天就…

3>2,看看U.3升级了啥

关注企业级NVMe SSD的小伙伴对U.2接口一定不会感到陌生。然而,在U.2之外,还存在一种名为“U.3”的硬盘接口,二者外观完全相同,接口性能也都一样,甚至不少客户直接将U.3的NVMe SSD部署在U.2服务器上使用。但既然3&#…

分布式应用解决方案之一致性Hash

什么是一致性Hash 一致性Hash就是将整个hash值空间按照顺时针方向形成一个虚拟的环,整个环状结构就称之为Hash环。那为什么叫做一致性Hash环?一致性是由于Hash环应用场景一般在分布式应用服务中,各个服务提供者分布在hash环中,当某…

【Qt】一文总结新工程的创建

文章目录一、导读二、浅谈开发方式(2-1)C开发方式(2-2)QtQuick qml开发方式(2-3)python开发方式三、新工程创建向导下的Library四、其他项目五、其他工程项目六、Import Project选项七、总结一、导读 在使…

Linux-Find命令

目录 Find 命令格式: 常用查找条件 案例展示: Find find 命令根据预设的条件递归查找文件或目录所在位置 命令格式: 命令格式:find 查找路径 查找条件1 查找条件2 .. [-exec 处理命令 {} \; ] –exec 可接额外的命令来处理查…

【Kubernetes 企业项目实战】03、基于 Alertmanager 发送报警到多个接收方(下)

目录 一、promethues 采集 tomcat 监控数据 1.1 制作 tomcat 镜像 1.2 基于上面的镜像创建一个 tomcat 实例 1.3 采集数据 二、promethues 采集 redis 监控数据 2.1 配置一个 Redis 的 exporter 2.2 查看 Prometheus 2.3 grafana 导入模板 三、Prometheus 监控 mysql …