美文网首页
swift- -07

swift- -07

作者: 竹尖 | 来源:发表于2017-09-08 07:15 被阅读0次

    软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低

    性能高,对CPU没有压力,但是对其他硬件要求较高(如GPU等)

    硬编码 Gpu等非cpu编码   用 VideoToolBox框架

    编码流程: 采集--> 获取到视频帧--> 对视频帧进行编码 --> 获取到视频帧信息 --> 将编码后的数据以NALU方式写入到文件

    编码方式:H.264编码

    帧率:每秒钟多少帧画面

    码率:单位时间内保存的数据量

    关键帧(GOPsize)间隔:多少帧为一个GOP

    当编码成功后,将编码后的码流写入文件

    编码成功后会回调之前输入的函数

    1> 先判断是否是关键帧:

    如果是关键帧,则需要在写入关键帧之前,先写入PPS、SPS的NALU

    取出PPS、SPS数据,并且封装成NALU单元,写入文件

    2> 将I帧、P帧、B帧分别封装成NALU单元写入文件

    写入后,数据存储方式:

    硬解码

    软编码 

    软编码主要是利用CPU进行编码的过程, 具体的编码通常会用FFmpeg+x264

    iOS项目中集成FFmpeg

    将编译好的文件夹拖入到工程中添加依赖库: libiconv.dylib/libz.dylib/libbz2.dylib/CoreMedia.framework/AVFoundation.framework

    FFmpeg编码两个重要的类

    AVFormat

    保存的是解码后和原始的音视频信息

    AVPacket

    解码完成的数据及附加信息(解码时间戳、显示时间戳、时长等

    软解码---用到openGl  把解码的数据用openGl渲染出来

    01-(掌握)FFmpeg介绍和Mac下使用

    07-(掌握)服务器-购买

    08-(掌握)服务器-搭建配置

    09-(掌握)服务器-HLS支持

    04-LFLiveKit-----推流框架(直接能获取到相机)----推到服务器(服务器地址)

    05-kxMovie的使用(1.服务器推流    2.kxMovie获取地址进行播放 3.基于FFmpeg)

    06-IJKPlayer的使用(1.服务器推流    2.IJKPlayer获取地址进行播放)

    07-HelloOpenGL-----渲染画面用的

    相关文章

      网友评论

          本文标题:swift- -07

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