zoukankan      html  css  js  c++  java
  • 音视频基本概念

    容器/文件

    1. 指特定格式的多媒体文件,比如mp4, flv等。

    媒体流

    1. 指事件轴上的一段连续数据,比如一段音频数据,一段视频数据,一段字幕数据。
    2. 可以是压缩的,也可以是未压缩的。

    数据帧/数据包

    1. 数据包存储的是编码后的多媒体数据,一段媒体流是由大量数据包组成的。
    2. 数据帧存储的戳编码前的多媒体数据,帧对应着编解码器的最小处理单元。
    3. 编码前(解码后)的数据为数据帧,编码后(解码前)的数据为数据包。

    编解码器

    1. 编解码器的作用是转换数据包与数据帧,比如libx264,fdk-aac等

    音频

    声波三要素

    1. 频率(过零率):音阶的高低,频率越高,波长越短。越容易穿过障碍物,能量衰减月底,传得更远。
    2. 振幅:声音的响度,反映能量的大小。
    3. 波形:音色,波的形状决定了其所能代表的音色,比如钢琴和小提琴的音色差异。。。

    数字音频

    1. 采样:时间轴上对信号进行数字化。
    2. 量化:幅度轴上对信号进行数字化。
    3. 编码:按照一定格式记录采样和量化后的数字数据。

    PCM描述

    PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。

    1. 量化格式:表示来声音的有效范围,高音与低音的可容忍性,比如8位,16位,32位等
    2. 采样率:每秒从连续信号中提取并组成离散信号的采样个数,比如44100,48000等
      采样率的倒数为采样周期,采样间隔,即每个样本的持续事件
      44.1kHz 采样周期为1 / 44100 * 1000 = 0.0226757ms
      44.1kHz 单声道每秒1024个样本 = 1024 / 44100 * 1000 = 24.219954ms
      
    3. 通道个数:表示声音的立体效果,即录制时的音源数量或者播放时的扬声器数量,单声道(mono),双声道(stereo),5.1声道等
    4. 比特率(码率):1s内的数据比特数量,体现来媒体数据的质量,比如44100 x 16 x 2 = 1378.125kbps
      2M = 2 * 1024 byte
      1Byte = 8bit
      2M带宽的网速 = 2 * 1024 / 8 = 256KB/s
      
    5. 整形或浮点型:大多数的pcm数据使用整型标示,对于精度要求较高的场景使用浮点类型标示pcm样本数据[-1.0, 1.0]
    6. 帧率:每秒播放样本的数量,单位为fps(frame per second),比如1024

    视频

    1. 分辨率:每个方向上的像素数量,分辨率越高,可显示的点越多,画面就越精细。比如1920x1080
    2. 码率:同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。
      1KB/s = 8Kbps
      
    3. 帧率:每秒传输图像的数量,表示是实时性的还原度
      25fps:每秒显示25帧数据 => 每帧数据显示时长为1000 / 25 = 40ms
      60fps:每秒显示60帧数据 => 每帧数据显示时长为1000 / 60 = 16.667ms

    帧率是每秒图像的数量,分辨率表示每幅图像的尺寸即像素数量,码流是经过视频压缩后每秒产生的数据量,而压缩是去掉图像的空间冗余和视频的时间冗余,所以,对于静止的场景,可以用很低的码流获得较好的图像质量,而对于剧烈运动的场景,可能用很高的码流也达不到好的图像质量,所以结论是设置帧率表示您要的实时性,设置分辨率是您要看的图像尺寸大小,而码率的设置取决于摄像机及场景的情况,通过现场调试,直到取得一个可以接受的图像质量,就可以确定码流大小。
    一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。
    帧率,码率,分辨率关系

    本文来自博客园,作者:faithlocus,转载请注明原文链接:https://www.cnblogs.com/faithlocus/p/15627102.html

  • 相关阅读:
    Mockito一个方法的实例
    LIst与ArrayList区别
    mockito入门学习
    eclipse中调整字体大小和改变背景颜色
    常用sql语句
    eclipse导入代码和重新编译
    windows下登录linux的常用工具SecureCRT和常用命令
    junit4
    接口测试
    java环境
  • 原文地址:https://www.cnblogs.com/faithlocus/p/15627102.html
Copyright © 2011-2022 走看看