前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FFmpeg入门 - 前置基础

FFmpeg入门 - 前置基础

作者头像
用户1081422
发布2020-04-08 10:09:20
7720
发布2020-04-08 10:09:20
举报
文章被收录于专栏:T客来了

章节

  • 像素存储格式YUV&RGB
  • 我,B,P帧
  • pts&dts
  • 音视频开发技术可以做的事情

前言

在学习音视频编程的过程中,在解决问题的过程中,总会遇到音视频当中的一些专业名词,而解决问题,这些专业名词是必须理解的,否则就会出现云里雾里的感觉 - 俗称 - 懵这给我个人的学习过程带来不小的问题,遂决定将这段时间当中遇到的一些必须掌握的名词概念做个记录,以供速查之用。

1,像素存储格式YUV&RGB

RGB

代码语言:javascript
复制
1.RGB 即 三原色,红、绿、蓝。
2.每个元素占用 1 个字节,即 24 bit。

YUV

代码语言:javascript
复制
1.YUV 也是一种像素存储格式,摄影机拍摄的影像文件存储格式即为 YUV,采用 YUV 像素存储格式对帧进行存
储,是为了保证这种文件能在黑白电视上能够播放。

2,I,B,P帧

我帧

代码语言:javascript
复制
I 帧是关键帧采用帧内压缩技术,I帧是全信息帧、一个视频文件当中的I帧越多,则文件体积越大。

B帧

代码语言:javascript
复制
B 帧是前后参考帧,它属由帧间压缩技术。也就是说在压缩成 B帧前,它会参考它前面的非压缩视频帧,和后
面的非压缩的视频帧,记录下前后两帧都不存放的“残差值”,这样可以达到更好的压缩率;
所以加入当前视频帧的编排顺序为 I B B P 则当视频文件播放时,解码的顺序为I->P->B->B 即关键帧I、向前
参考帧 P、向前向后参考帧B、向前向后参考帧B。

P帧

代码语言:javascript
复制
P帧是向前参考帧,也就是它参考的是前一个关键帧的数据。P帧也属于帧间压缩技术,相对于 B帧来说,P帧的压缩率要比B帧低。

3,pts&dts

pts(演示文稿时间戳)

代码语言:javascript
复制
视频渲染用的时pts、即以AVStream 的 AVRational (time_base)为计时单位的时间戳,加入 pts 时100 
,AVStream 的 time_base 为 1/25 (即1s播放帧数为25,FPS为25),则对应到日常时间戳 为 100 * (1/25)
= 4s。

dts(解码时间戳)

代码语言:javascript
复制
视频packet 解码为 frame 时的时间戳。之所以需要dts 是因为 视频中除了I 帧还有可能含有 B帧。
DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.

4,音视频开发技术可以做的事情

视频编解码 - 后台

代码语言:javascript
复制
应用在后台的视频编解码技术常用的是 FFmpeg,一款优秀的视频编解码应用技术,属于软件编解码。
rtmp 协议,网络直播推流等。

视频编解码 - 移动终端

代码语言:javascript
复制
如iOS、Android移动端经常用到的音视频编解码sdk ijkplayer,是对ffplay.c的二次封装(ffmpeg)属于硬编硬解技术、因为硬件中内置了编解码芯片。

OPENCV

代码语言:javascript
复制
计算机视觉库、可以做图像识别、当然也可以实现音视频编解码,因为其底层也是调用 FFmpeg

openGL的

代码语言:javascript
复制
图像渲染库,你以为微视、抖音上的小姐姐那么美若天仙的原因是什么?答:是渲染啊!问:靠什么渲染?答:openGL 啊。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 T客来了 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 章节
  • 前言
  • 1,像素存储格式YUV&RGB
  • 2,I,B,P帧
  • 3,pts&dts
  • 4,音视频开发技术可以做的事情
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档