美文网首页
iOS音视频编码

iOS音视频编码

作者: 尘风killer | 来源:发表于2019-07-21 15:17 被阅读0次

iOS音视频开发涉及的方面比较广泛,一般分为采集、音视频的封装、编码、推流、拉流、解封装、解码、播放等阶段。其中音视频的编码和解码阶段是非常重要的步骤。其中编码分为硬编码和软编码,对应解码分为硬解码和软解码。

硬编码

硬编码是指使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等。
硬编码一般性能高,对CPU没有压力,但是对其他硬件要求较高(如GPU等)。

软编码

软编码是指使用CPU进行编码,软编码通常使用:ffmpeg+x264。
软编码实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低。

音视频的编码格式

常见的直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。

  • 视频编码
    视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。
    常见的视频编码标准为h.264。

  • 音频编码
    音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。
    常见的音频编码为ACC、MP3、WMA等。

iOS中编码方式:
在iOS8之前,苹果并没有开放硬编码的接口,所以只能采用ffmpeg+x624进行软编码
在iOS8之后,苹果开放了接口,并且封装了VideoToolBox&AudioToolbox两个框架,分别用于对视频&音频进行硬编码

相关文章

  • 音视频学习路径

    第1章音视频基础知识 11.1视频编码 11.2音频编码 21.3多媒体播放组件(Android、iOS) 21....

  • iOS 使用FFmpeg 实现音视频软编码

    此文中的音频编码部分存在问题,详见下一篇:OS使用FFmpeg进行音频编码 一.背景说明 在iOS开发中,音视频采...

  • 音视频采集硬编码

    iOS音视频实时采集硬件编码(H264+AAC) 最近在做音视频方面的东西,发现国内硬编的资料特别少,去网上搜全是...

  • iOS音视频编码

    iOS音视频开发涉及的方面比较广泛,一般分为采集、音视频的封装、编码、推流、拉流、解封装、解码、播放等阶段。其中音...

  • Mac OS使用FFmpeg进行音频AAC编码

    一.概述 iOS 使用FFmpeg 实现音视频软编码 上一篇文章中写到的AAC音频编码,因缺少真机测试,有挺多问题...

  • 2019-08-08

    音视频编码

  • iOS | 交叉编译 工欲善其事,必先利其器

    前言 在iOS设备上进行音视频的处理,往往要使用市面上比较流行的音视频相关库,比如音频编码的Lame,处理视频的F...

  • android音视频开发之编码封装

    音视频编码 为何要对音视频进行编码? 音视频的原始数据非常庞大,难以存储和传输。要解决音视频数据的存储和传输问题,...

  • 研究Android音视频-3-在Android设备上采集音视频并

    本文解决的问题 本文主要使用MediaCodec硬编码器对Android设备采集的音视频编码 封装音视频基础编码器...

  • iOS音视频

    iOS 音视频开发(一)常用音视频框架介绍iOS 音视频开发(二)AVAudioRecorder录音、AVAudi...

网友评论

      本文标题:iOS音视频编码

      本文链接:https://www.haomeiwen.com/subject/pwgmlctx.html