前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我的播放器0---音视频基础

我的播放器0---音视频基础

原创
作者头像
瑶瑶
修改2020-08-19 18:03:52
1.1K2
修改2020-08-19 18:03:52
举报
文章被收录于专栏:音视频技术开发

Mpeg4封装格式音视频编码格式

MPEG-4

MPEG-4是一套用于音频、视频信息的压缩编码标准。

MPEG-4 Part 14定义了MPEG-4文件格式,即mp4后缀文件。mp4文件格式只是MPEG-4标准中的一小部分

常用封装格式

AVI 压缩标准可任意选择

FLV ts流媒体格式

ASF

mp4 MPEG-4中定义的一种格式

常用编码格式

视频:H264(AVC Part10) , wmv, XviD(Part2), mjpeg(每一帧都是独立的,都是I帧)

音频:aac(有损压缩), MP3(有损), ape(无损), flac(无损)

音视频解封装和解码原理分析

image.png
image.png

像素格式

YUV比RGB更省空间

由于GPU擅长浮点运算, 所以YUV转RGB可以用openGL的shader做,性能好

image.png
image.png

3*3 RGB图像存放方式

image.png
image.png

如果视频宽度不是4或者8的倍数,程序为了运算效率,会自动补齐,所以拷贝时要一行行拷贝,根据图像时间宽度。

YUV

image.png
image.png
  • YUV444与RGB占用空间一样,都是每个像素3个字节
  • YUV420,四个Y共用一个UV,不是连续的Y共用,而是2*2的矩阵Y,共用UV
  • Packed模式YUVYUVYUV ;Planar模式YYYUUUVVV,使用时,Packed模式存储在一个数组中,Planar模式存储在三个数组中。

PCM音频参数

  • 采样率 sample_rate 44100 (CD)
  • 通道 channels (左右声道)
  • 样本大小(格式) sample_size enum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1, AV_SAMPLE_FMT_U8, ///< unsigned 8 bits AV_SAMPLE_FMT_S16, ///< signed 16 bits AV_SAMPLE_FMT_S32, ///< signed 32 bits AV_SAMPLE_FMT_FLT, ///< float AV_SAMPLE_FMT_DBL, ///< double AV_SAMPLE_FMT_FLTP, ///< float,planar }; 我们大部分声卡只支持16位或24位样本大小,而aac解码出来的是AV_SAMPLE_FMT_FLTP格式,32位浮点值(浮点运算效率高)
  • Packed模式LRLRLR ;Planar模式LLLRRR
  • 倍速播放,改变播放采样率和原始采样率的关系

MP4标准和h264格式的NAL的GOP分析

image.png
image.png

编码格式及细节

https://cloud.tencent.com/developer/article/1638143 该链接比较详细

image.png
image.png

android studio SDK目录

image.png
image.png

windows获取当前毫秒时间戳

image.png
image.png

设置解码线程数

骁龙835 硬解码 FPS 120帧

骁龙835 软解码 1线程 neon FPS 60

骁龙835 软解码 8线程 neon FPS 250

骁龙835 软解码 1线程 无neon FPS 30

骁龙835 软解码 8线程 无neon FPS 140

image.png
image.png

硬解码和软解码

image.png
image.png

硬解码需要加上这个函数,不需要手动调用,java加载时会自动调用

image.png
image.png
image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mpeg4封装格式音视频编码格式
    • MPEG-4
      • 常用封装格式
        • 常用编码格式
        • 音视频解封装和解码原理分析
        • 像素格式
          • 3*3 RGB图像存放方式
            • YUV
              • PCM音频参数
              • MP4标准和h264格式的NAL的GOP分析
                • 编码格式及细节
                • android studio SDK目录
                • windows获取当前毫秒时间戳
                • 设置解码线程数
                • 硬解码和软解码
                  • 硬解码需要加上这个函数,不需要手动调用,java加载时会自动调用
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档