音视频基础知识-时间戳的理解

这篇具有很好参考价值的文章主要介绍了音视频基础知识-时间戳的理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题背景:

凡是和流媒体和音视频打交道,时间戳基本是一个必须深刻理解的概念。你会在各种各样的传输协议和封装格式中看到这个东西,而且表现形式还不一样。其次这个概念会涉及到音视频播放的同步问题,也会影响音视频播放的控制问题。前者说的是音画同步,后者说的是类似快进,随机点播放等。如果要理解好这个概念,需要掌握下面几个名词的含义。

基本概念:

采样率

音视频现在采用的数字编码方法,简单说就是把音视频这种波形和图像进行采集,量化,编码,传输,解码。所以采样率就是每秒钟抽取图像或者声波幅度样本的次数。比如音频采样率8k,就是表示把波形进行每秒8000次采样。

我们看到一秒的采样频率其实挺大的,至于这个值是多少合理,其实无论视频还是音频都和人的视觉特征和听觉特征有关系。

对于人的视觉而言,只要1秒钟播放的视频达到25帧以上,我们就看到了连续的图像即为视频。如果低于这个值,我们人眼就能感觉出来卡顿。

对于人的听觉而言,正常的听觉频率范围在20Hz-20kHz,根据奎斯特采样理论,为了保证音频不失真,我们的采样频率应该在40kHz左右。为什么采样率不是越高越好呢,因为采样率越高意味着你传输的数据量越多,这样给编码和传输都带了极大的负担,成本也是个重要考虑因素。

帧率

帧率就是每秒显示的帧数,比如30fps就是1秒显示30帧图像。但是对于音频可能理解帧率不太好理解,这有点抽象。对于音频,不同的编码方式比如AAC和mp3分别就规定1024采样sample,mp3每帧为1152采样,如果一个采样用一个字节表示,那就是1024字节AAC编码音频为一帧,1152字节为MP3编码方式的音频一帧。

时间戳单位

前面我们提到采样率,感觉到采样率是个很大的单位,一般标准的音频AAC采样率达到了44kHz,视频采样率也规定在90000Hz.所以我们衡量时间的单位不能再是秒,毫秒这种真实的时间单位,我们的单位应该转换为采样率,也就是一个采样的时间为音视频的时间单位,这就是时间戳的真实值。当我们要播放和控制时,我们再将时间戳根据采样率转换为真实的时间即可。

一句话,时间戳不是真实的时间是采样次数。比如时间戳是160,我们不能认为是160秒或者160毫秒,应该是160个采样。要换算真实时间,我们必须知道采样率,比如8000,那么说明1秒被划分成8000分之一,如果你要明确160个采样占用的时间,则160*(1/8000)即可,即20毫秒。

时间戳增量

就是一帧图像和另外一帧图像之间的时间戳差值,或者一帧音频和一帧音频的时间戳差值。同理时间戳增量也是采样个数的差值不是真实时间差值,还是要根据采样率才能换算成真实时间。

所以对于视频和音频的时间戳计算要一定明确帧率是多少,采样率是多少。

比如视频而言,帧率25,那么对于90000的采样率来说,一帧占用的采样数就是90000/25也就是3600,说明每帧图像的时间戳增量应该是3600,换算成实际时间就是3600*(1/90000)=0.04秒=40毫秒,这也和1/25=0.04秒=40毫秒一致。

对于AAC音频,一帧1024个采样,采样频率是44kHz,所以一帧的播放时间应该是1024*(1/44100)=0.0232秒=23.22毫秒。

同步方法:

上面说了时间戳重要的功能就是来为了音视频的同步,那么这个时间戳到底是如何让音视频同步的呢?

播放器本地需要建立一个系统时钟,这个时钟一般是根据CPU时间计算出来的,当播放开始时时钟时间为0,时间戳决定了一帧解码和渲染的时刻。当播放开始,时钟时间会进行增加,播放器会用系统时钟和当前视频和音频的时间戳进行比较,如果音视频的时间戳小于当前系统时钟,那么就要晚点进行解码和渲染播放。

可以看到播放能否准确进行需要编码器打的时间戳必须精确,同时播放器端的系统时钟也精确,因为播放时要基于时间戳和这个系统时钟对数据流进行控制,也就是对数据块要根据时间戳来采取不同的处理方法。实际无论编码器还是本地播放器都不能非常精确,所以我们说固定帧率25,也有可能编码器一遍打24帧的现象出现。为了解决这个累计误差问题,一般我们需要在播放端有一套反馈机制,能够消除这种误差。其实,同步是一个动态的过程,是一个有人等待、有人追赶的过程。同步只是暂时的,而不同步才是常态。人们总是在同步的水平线上振荡波动,但不会偏离这条基线太远。文章来源地址https://www.toymoban.com/news/detail-400193.html

到了这里,关于音视频基础知识-时间戳的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 音视频学习-音视频基础

    音视频学习-音视频基础

    ` ◼ 像素:像素是一个图片的基本单位,pix是英语单词picture的简写,加上英语单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素”之意。 ◼ 分辨率:是指图像的大小或尺寸。比如1920x1080。 ◼ 位深:是指在记录数字图像的颜色时,计算机实际上是用

    2024年02月12日
    浏览(85)
  • 音视频学习—音视频理论基础(2)

    音视频学习—音视频理论基础(2)

      音频是一种模拟信号,它是由声波转化而来的电信号。声波是通过气体、液体或固体传播的机械波,代表了声音的震动。在录制过程中,声音被转换成电信号,然后被储存在数字格式中。   声音的三要素是频率、振幅和波形   频率是指声波的振动次数,通常使用赫

    2024年04月29日
    浏览(16)
  • 音视频基础概念(6)——视频基础

    音视频基础概念(6)——视频基础

    网上冲浪时,我们会接触到网络流媒体和本地视频文件。常见的视频文件格式有MP4、MKV、AVI等。在流媒体网站上看见视频常用的协议有HTTP、RTSP、RTMP、HLS等。视频技术较为复杂,包括视频封装、视频编解码、视频播放和视频转码等内容。 当下市场常见的视频APP很多,其中10

    2024年02月04日
    浏览(17)
  • 「Python|场景案例」如何获取音视频中声音片段的起止时间?

    「Python|场景案例」如何获取音视频中声音片段的起止时间?

    本文主要介绍如何使用python的第三方库moviepy找出音视频中声音开始出现的位置以及声音结束的位置。 假设我们有一段音频,音频开始有一段无声片段,音频结束也有一段无声片段,我们需要知道开头无声片段的结束位置和结束无声片段的开始位置,或者换句话说, 我们需要

    2023年04月14日
    浏览(25)
  • 音视频基础

    音视频基础

    本篇文章我们来讲一下音视频基础 像素点: 将以下图片的美女眼睛放大 能够看到一个一个的小方块 这就是像素点 照片像素=宽像素点*高像素点 像素点 代码实例:    分辩率: 图像或者视频的分辨率是指图像的大小或者尺寸 我们通常用像素表示图像的尺寸 图像的分辨率越高

    2024年02月20日
    浏览(11)
  • 音视频基础概念(5)——音频基础说明

    现实生活中,音频(Audio)主要用在两大场景中,包括语音(Voice)和音乐(Music)。语音主要用于沟通,如打电话等。目前由于语音识别技术的发展,人机语音交互也是语音的一个应用方向,很多大厂推出智能音箱、语音助手等。音乐主要用于欣赏和陶冶情操,如播放音乐。

    2023年04月08日
    浏览(11)
  • 音视频知识:MPEG-4、H264、MP4、AAC之间的关系

    MPEG-4 一种编码标准。是国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义的标准。MPEG(Moving Picture Experts Group)标准包括 MPEG1、MPEG2与 MPEG4。 MPEG-4标准目前分为27个部分,统称为ISO/IEC14496国际标准。其中第10部分(ISO/IEC 14496-10)就是熟悉的高级视频编码

    2024年02月14日
    浏览(20)
  • 音视频学习之ffmpeg常用基础命令整理

    音视频学习之ffmpeg常用基础命令整理

    基于windows环境安装好必要的ffmpeg后,对ffmpeg基础命令进行一些了解:   有时候写入MP4文件会不成功,改成flv就好 1:视频裁剪:   2:文字水印: 编译的时候需要支持 FreeType、FontConfig、iconv,系统中需要有相关的子库, 在 FFmpeg 中增加纯字母水印可以使用 drawtext 滤镜进行支持

    2024年02月12日
    浏览(15)
  • FFmpeg基础:获取音视频的各种编码参数

    FFmpeg基础:获取音视频的各种编码参数

    获取视频编码参数 视频编码参数主要包括:帧率、分辨率、编码格式、码率等,对应的概念如下。 帧率(Frame Rate) 每秒显示帧数(Frames Per Second)。电影的帧率一般是25fps和29.97fps,3D游戏要保持流畅则需要30fps以上的效果。 分辨率 指视频宽高的像素数值。标准1080P的分辨率为1920×

    2024年02月03日
    浏览(8)
  • 前端基础(三十六):读取本地音视频设备并进行播放

    前端基础(三十六):读取本地音视频设备并进行播放

    请求媒体输入和输出设备的列表,例如麦克风,摄像机,耳机设备等 会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机、视频采集设备和屏幕共享服务等

    2024年02月15日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包