音视频开发基础知识

1. 视频录制播放原理

暂时无法在文档外展示此内容
在这里插入图片描述

2. 图像几种格式

  1. RGB格式
    1. 红绿蓝三色混合,各有256种亮度
  2. YUV格式
    1. Y表示亮度,称为灰阶值—>U和V指色度,描述影像色彩和饱和度
    2. Planar->先连续储存Y再连续储存U,最后V 和packed格式->YUV一起储存
    3. Libyuv 是谷歌的一个库,在YUV和RGB之间转换
    4. YUV 444、是指相邻四个像素包含4个Y、U、V
    5. YUV422、是指相邻四个像素包含4个Y,2个U,2个V
    6. YUV420 是指相邻四个像素包含4个Y,2个U或者2个V

3. 视频主要概念

  1. 视频码率:kb/s,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。
  2. 帧率
  3. 分辨率
  4. I、P、B帧
    1. I帧(Intra coded frames):不需要参考其他画面,解码时自己就可以生成完整图像
    2. P 帧(Predicted frames):根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据,同时利用了空间和时间上的相关性。 P帧属于前向预测的帧间编码。它需要参考前面最靠近它的I帧或P帧来解码。
    3. B 帧(Bi-directional predicted frames):B 帧图像采用双向时间预测,可以大大提高压缩倍数。参考前后P帧。

4. 常用视频压缩算法

  1. MPEG阵营
    1. MPEG
    2. H264
    3. H265
  2. Google阵营
    1. VP8
    2. VP9
  3. 中国阵营
    1. AVS

5. 声音的频率

  1. 人耳能听见的频率 20~20KHz
  2. 采样频率
    1. 22KHz
    2. 44.1KHz(CD音质,保证人耳能听见的频率被数字化)
    3. 48KHz
  3. 采样精度 取决于它用多少位来表示
    1. 8位量化(8bit),表示256个不同的值
    2. 16位量化(16bit),表示65536个不同的值
  4. 通道数:单声道、双声道、四声道、5.1声道
  5. 比特率:每秒传输的bit数,单位为bps(bit Per second)
  6. 码率
    1. 96kbpsFM质量
    2. 192kbsCD质量
  7. 交错模式 :LRLRLR
  8. 非交错模式:LLLLLLLRRRRRRR

6. 音频编码原理

  1. 去除声音信号中冗余部分==>不能被人耳感知的信号
  2. 人耳听到频率之外,人耳只能听到20~20KHz
  3. 频谱掩蔽效应
    1. 当有一个声强为很高dB的声音时,它附近频率的声音就被掩蔽掉了
  4. 时域掩蔽效应
    1. 当有一个声强为很高dB的声音时,它出现时间前后的声音就被掩蔽掉了

7. 音频编码方法

在这里插入图片描述

8. 音频编码器

  1. 杜比公司方案 AC3和EAC3
  2. AAC
  3. MP3
  4. OPUS
  5. 封装格式
  6. 封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。
  7. 最常见视频封装格式 --> H264+ACC 封装为FLV或者MP4,还有mkv,mwv,F4V
  8. 音视频同步
  9. DTS(Decoding Time Stamp)
  10. PTS(Presentation Time Stamp)
  11. 同步方式:
    1. Audio Master:同步视频到音频
    2. Video Master:同步音频到视频
    3. External Clock Master:同步音频和视频到外部时钟。
    4. 一般情况下 Audio Master > External Clock Master > Video Master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一种开源的音视频处理工具,可以实现音视频的编码、解码、转码、剪辑、过滤、流媒体等功能。它可以处理大多数音视频格式,包括但不限于MP4、AVI、FLV、MOV、MKV、MP3、AAC、WAV等。FFmpeg是一个跨平台的软件,可以在Windows、Linux、Mac OS等操作系统下运行。 FFmpeg的基本架构包括三个主要的组件:AVFormat、AVCodec和AVFilter。其中,AVFormat负责音视频格式的输入和输出,AVCodec负责音视频编解码,AVFilter则是一个过滤器框架,可以实现音视频的滤镜、合成、分割等效果。 在使用FFmpeg进行音视频开发时,需要掌握以下几个方面的知识: 1. FFmpeg的安装和配置。 2. 音视频格式的认识和理解,包括音视频的编码格式、容器格式等。 3. FFmpeg命令行工具的使用,可以使用FFmpeg命令行工具进行音视频的转码、剪辑、合成等操作。 4. FFmpeg的API使用,可以通过FFmpeg提供的API进行音视频的处理,包括解码、编码、过滤等操作。 5. FFmpeg在流媒体方面的应用,可以使用FFmpeg进行音视频的直播、录制等操作。 在实际的开发过程中,可以根据实际需求选择合适的方式进行音视频处理,例如使用FFmpeg命令行工具或API进行转码、剪辑等操作,或者使用FFmpeg进行流媒体直播、录制等操作。 总之,掌握FFmpeg的基础知识和技能对于音视频开发人员来说是非常重要的,可以帮助开发人员更加高效、准确地完成音视频处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值