热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

带你进入Android音视频世界之(一)音视频基础知识

首先让我们一起了解下音视频的基础知识。1、视频编码:视频编码是指通过特定的压缩技术,将某个视频文件转换成另外一种视频格式文件的方式。目前最重要的编解码

首先让我们一起了解下音视频的基础知识。


1、视频编码:

    视频编码是指通过特定的压缩技术,将某个视频文件转换成另外一种视频格式文件的方式。目前最重要的编解码标准有:


标准类型
国际电联H.261、H.263、H.264
运动图像专家组M-JPEG
国家标准化组织运动图像专家组MPEG系列
Real-NetworksRealVideo
微软WMV
AppleQuickTime

在这里插入图片描述
在这里插入图片描述

从某种意义上讲视频编码可以分为两个系列:


  • MPEG系列:

MPEG系列视频编码方面介绍
MPEGIVCD就是用的这种
MPEG2DVD就是用的这种
MPEG4DVDRIP使用的都是他的变种例如:DivX,XviD等
MPEG4 AVC正热门
MPEGIVCD就是用的这种

MPEG系列音频编码方面介绍
MPEG Audio Layer 1/2\
MPEG Audio Layer 3我们经常用的mp3
MPEG-2 AAC\
MPEG-4 AAC\

注:DVD音频技术没有采用MPEG的;


  • H.26X 系列:

    由ITU主导,侧重网络传输, 注意:只有视频编码。

   包括H.261、H.262、H.263、H.263+、H.263++、H.264 (MPEG4 ACV合作的结晶)


2、音频编码:

    常见的音频格式有AAC、MP3、AC3;


  • AAC:一种专为声音数据设计的文件压缩格式,与MP3不同,他采用了全新的算法进行编码,更加高效,具有更高的“性价比”。声音质量几乎没有明显的降低的前提下,保证了文件的小巧型。苹果iPod、诺基亚手机也支持AAC格式的音频文件。但是,AAC属于有损压缩;

  • MP3: 是一种音频压缩技术,全称是动态影像专家压缩标准音频层面(Moving Picture Experts Group Audio Layer III),简称MP3。被设计用来大幅度地降低音频数据量。利用MP3技术,将音乐一1:10甚至1:12的压缩率,压缩成容量较小的文件,对于大多数用户来说,重放的音质与最初的不压缩音频没有明显下降;MP3利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同频段使用不同的压缩率,对高频信号使用大压缩率升至忽略信号,对低频信号使用小压缩率,保证信号不失真。等于抛弃了人耳基本听不到的高频声音,只保留了能听到的低频部分,从而实现1:10甚至1:12的压缩率压缩。

  • AC3:全称为Audio Coding Version 3,是Dolby实验室锁发展的有损音频编码格式。AC3被广泛应用于5.1省道,是Dolby Pro Logic的继承者,不同的地方在于AC3提供了6个独立的声道而Pro Logic混合其环绕声道。AC3以348~448kb/s的码率应用于激光唱片和DVD,也经常以640kbs/s的码率应用于电影院。Dolby AC3提供的环绕声系统由5个全频域声道和一个超低音声道组成,被称为5.1声道。5个全频域声道包括左前,中央,右前,左后、右后。超低音声道主要提供一些二外的低音信息,是特殊场景例如爆炸,撞击等的声音效果更好。


3、多媒体播放组件:

    Android多媒体播放组件包含MediaPlayer、MediaCodec、OMX、StageFright、AudioTrack等;

在这里插入图片描述


  • MediaPlayer:播放控制。

  • MediaCodec:音视频编解码。

  • OMX:多媒体部分采用的编解码标准。

  • StageFright:是一个播放框架、替代之前的OpenCore,主要是做了一个OMX层,仅仅对OpenCore的omx-component部分做了引用。StageFright是在MediaPlayerService这一层加入的,和OpenCore是并列的。StageFright在Android中是以共享库的形式存在的(libstagefright.so),其中的module–NuPlayer/AwesomePlayer 可用来播放音视频,提供了许多API,可以让生成的应用程序(JAVA/JNI)调用。

  • MediaPlayer:音频播放。


4、多媒体框架及解决方案:

   常见的播放框架及解决方案有VLC.FFmpeg,GStreamer等。


VLCVideo LAN Client 开源的跨平台多媒体播放器及框架
FFmpeg多媒体解决方案,不是多媒体框架,广泛应用于音视频开发中
GStreamer一套构建流媒体应用的开源多媒体框架

推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
author-avatar
男人邦121121121
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有