在iOS平台上使用iOS8及以上系统的VideoToolbox进行硬编码,会涉及到CMTime,CMTimeMake,CMTimeMakeWithSeconds的使用。下面说下这几个结构体的作用。
CoreMedia.framework的CMTime.h中CMTime,CMTimeMake,CMTimeMakeWithSeconds的定义如下:
在iOS平台上使用iOS8及以上系统的VideoToolbox进行硬编码,会涉及到CMTime,CMTimeMake,CMTimeMakeWithSeconds的使用。下面说下这几个结构体的作用。
CoreMedia.framework的CMTime.h中CMTime,CMTimeMake,CMTimeMakeWithSeconds的定义如下:
今天是2015年12月31号,2015年最后的一天,这一年过的真快,自己在这一年中做了什么,在2016年需要做什么,我需要花点时间来总结和规划下。2015年的最后一天,没有了以往的那种希望时间快速过去的欲望,而是一种淡淡的对时间流逝的可惜和害怕,害怕变老,害怕时间过得太快,要做的事情没有按时完成。
flv文件格式分析,可参看RTMP中FLV流到标准h264、aac的转换,该文章写的很清晰。
flv封装格式解析,可参看视音频数据处理入门:FLV封装格式解析,文章图文并貌,很直观。
flv文件封装,可参看将h.264视频流封装成flv格式文件(一.flv格式)
, 将h.264视频流封装成flv格式文件(二.开始动手)
使用rtmp协议发送flv文件,可参看rtmp协议简单解析以及用其发送h264的flv文件
iOS:https://github.com/kewlbear/FFmpeg-iOS-build-script
iOS:https://github.com/kewlbear/x264-ios
iOS:https://github.com/verybigdog/fdk-aac-ios
或 https://github.com/kewlbear/fdk-aac-build-script-for-iOS,不支持iOS arm64,但是可以借鉴
iOS:https://github.com/saiten/ios-librtmp
以下内容摘自我博客的编译iOS平台上使用的X264库一文。
从iOS8开始,苹果开放了硬解码和硬编码API,框架为VideoToolbox.framework, 此框架需要在iOS8及以上的系统上才能使用。
此框架中的硬解码API是几个纯C函数,在任何OC或者 C++代码里都可以使用。使用的时候,首先,要把 VideoToolbox.framework 添加到工程里,并且在要使用该API的文件中包含头文件 #include <VideoToolbox/VideoToolbox.h>,然后,就可以畅快的高效的对视频流进行硬编码了。
其实至少从iPhone4开始,苹果就是支持硬件解码了,但是硬解码API框架VideoToolBox一直是私有API,如果调用这个私有库,那么app在必须在越狱的设备上运行,正常的App如果想提交到AppStore是不允许使用私有API的。