FFmpeg——Windows下,视频播放器1:音视频处理基础
来源:互联网 发布:谷歌娘语音软件 编辑:程序博客网 时间:2024/06/06 18:29
1. 视频播放器原理
视频播放器播放一个本地视频文件,需要经过以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。
2. 封装格式
视频码流和音频码流按照一定的格式存储在一个文件中,常见的视频封装格式有AVI,MP4,FLV,RMVB……..
3. 视频编码数据
将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量
常见视频编码格式:
4. 音频编码数据
将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量
常见音频编码格式:
5. 视频像素数据
保存了屏幕上每个像素点的像素值。
常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P, YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常 见的格式为YUV420P。
6. 音频采样数据
保存了音频中每个采样点的值。
音频采样数据体积很大,一般情况下一首4分钟的PCM格式的
歌曲体积为:
4*60*44100*2*2=42.3MByte
PS:这里假定采样率为44100Hz,采样精度为16bit。
解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。
解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。
视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。
- FFmpeg——Windows下,视频播放器1:音视频处理基础
- FFmpeg——Windows下,视频播放器4:播放音频、音视频同步
- FFmpeg——Windows下,视频播放器2:视频解码、转码
- 音视频处理-ffmpeg+sdl视频播放
- FFmpeg——Windows下,视频播放器3:绘制画面、缩放、暂停、拖拽进度条
- FFMpeg视频播放器
- 视频处理——ffmpeg
- wince版ffmpeg音视频播放器
- FFMPEG Qt视频播放器之音视频同步
- FFMPEG —— 视频播放器 :(一)环境配置
- FFmpeg+SDL视频播放器—图形界面版学习笔记
- sdl+ffmpeg视频播放器
- ffmpeg + sdl 视频播放器
- FFmpeg视频播放器原理
- ffmpeg简单视频播放器
- FFmpeg+SDL视频播放(1)
- ffmpeg+SDL+windows 视频播放器的开发(三)
- ffmpeg编程基础:视频解码、音频播放
- 微信自动检测色情图片_python +itchat
- 立志成为高级码农的第一天,耶耶耶~
- slice() 把匹配元素集合缩减为指定的指数范围的子集
- Python有趣的现象——x+=y VS x=x+y
- Invalid bound statement (not found): 异常
- FFmpeg——Windows下,视频播放器1:音视频处理基础
- json在前端的运用
- OSG学习:自动对齐节点示例
- c++容器之set容器
- Codeforces 439D Devu and his Brother【思维+三分查找】
- 回顾javaScript的面向对象继承
- java 8 Stream Collectors使用注意
- python脚本--用户密码登陆1
- 单例模式封装PDO链接数据库