
在制作视频播放器之前,让我们了解一些基本定义.
视频
当连续图像变化超过每秒24帧或更多时,根据视觉的持久性原理,人眼无法分辨单个静态图像;它似乎是一种平滑而连续的视觉效果. 这样的连续图片称为视频.
帧频
是指每秒以视频格式播放的静态图片的数量. 典型的帧更新速率从早期的每秒6或8帧(fps)到今天的每秒120帧.

编
我们知道视频实际上是一帧图像. 计算,每秒25帧,90分钟,分辨率为1024 * 768,24位真彩色视频,无压缩,大小为
1Byte(byte)= 8bit(bit)
一帧大小= 1024 * 768 * 24 = 18874368(位)= 2359296(字节)
总帧数= 90 * 60 * 25 = 135000

总大小=一帧大小*总帧数= 2359296 * 135000 = 318504960000(字节)= 303750(MB)≈296(GB)
从以上计算可以看出,我们需要一个296GB的电影来存储90分钟的未压缩电影,并且两个电影可以占据我们计算机的整个硬盘. 因此我们需要压缩视频,这种视频压缩技术就是我们所谓的编码. 解码是对编码的视频进行解压缩.
包装格式
打包格式是指将压缩的视频数据和音频数据打包到一个文件中的规范. 我们常见的mp4,flv,avi,rmvb,mkv等都是具有代表性的视频打包格式.
播放视频的基本过程是: 去协议→去封装→解码→视频和音频同步.

解决协议
用于将流媒体协议数据解析为标准的相应封装格式数据. 当视频和音频在网络上传播时,它们通常使用各种流媒体协议,例如HTTP,RTMP或MMS. 这些协议在传输视频和音频数据的同时,还传输一些信令数据. 这些信令数据包括播放控制(播放,暂停,停止)或网络状态描述. 在取消协议的过程中,信令数据将被删除,仅视频和音频数据将被保留. 例如,使用RTMP协议传输的数据将在协议解析后以FLV格式输出.
打开包装
用于将输入的封装格式数据分离为音频流压缩编码数据和视频流压缩编码数据. 打包格式有很多类型,例如MP4,MKV,RMVB,TS,FLV,AVI等. 其功能是将经过压缩和编码的视频数据和音频数据以某种格式组合在一起. 例如,FLV格式的数据经过解封装后,将输出H.264编码的视频流和AAC编码的音频流.
解码

将视频/音频数据压缩并编码为未压缩的视频/音频原始数据. 音频压缩编码标准包括AAC,MP3,AC-3等java本地视频播放器,视频压缩编码标准包括H.264,MPEG2,VC-1等. 解码是整个系统中最重要,最复杂的部分. 通过解码java本地视频播放器,将压缩编码后的视频数据输出为未压缩的彩色数据,例如YUV420P,RGB等;压缩编码的音频数据将作为未压缩的音频样本数据(例如PCM数据)输出.
视频和音频同步
用于根据解封装模块处理过程中获得的参数信息,对解码后的视频和音频数据进行同步,并将视频和音频数据发送到系统的图形卡和声卡进行播放.
[摘要]视音频编解码技术的零基础学习方法
百度百科视频
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-242026-1.html
你还继续圈滴