在Mac OSX上安装ffmpeg && ffmpeg命令行将h264封装为mp4
采用工具软件分析h264文件
通过文章利用x264将iOS摄像头实时视频流编码为h264文件 和 利用FFmpeg+x264将iOS摄像头实时视频流编码为h264文件,实现了如何采集实时视频流并压缩为h264编码格式的文件。对于采集到h264文件,里面究竟有些什么,下面就通过工具软件来一探究竟。
采用文章利用x264将iOS摄像头实时视频流编码为h264文件配套工程X264-Encode-for-iOS中的h264文件,该文件地址为2015-09-17 18:05:20.h264
工具软件 UITraEdit
利用FFmpeg+x264将iOS摄像头实时视频流编码为h264文件
一、编译x264库
如何编译x264源码获取支持iOS平台的静态库,可参考我的文章《编译iOS平台上使用的X264库》
二、编译FFmpeg库
如何编译FFmpeg源码获取支持iOS平台的静态库,可参考我的博客园上的文章《实战FFmpeg--编译iOS平台使用的FFmpeg库(支持arm64的FFmpeg2.6.2)》
三、将x264库编译进FFmpeg库
通过步骤二,知道了如何编译FFmpeg库,但是要在FFmpeg中使用x264进行h264编码,还需要修改步骤二中的脚本。
步骤二中,使用的脚本的下载地址为:build-ffmpeg.sh
现在,FFmpeg的最新版本是 2.8,iOS系统的最新版本是 iOS 9.0.2,Xcode 最新版本是 Xcode 7.0.1,从 Xcode 7.0 开始支持 bitcode 选项了,bitcode 是什么,在百度上搜一搜就知道了。
利用x264将iOS摄像头实时视频流编码为h264文件
代码见我的Github代码托管区域:X264-Encode-for-iOS
编译iOS平台上使用的X264库
x264是一种免费的、具有更优秀算法的符合H.264/MPEG-4 AVC视频压缩编码标准格式的编码库。它同xvid一样都是开源项目,但x264是采用H.264标准的,而xvid是采用MPEG-4早期标准的。由于H.264是2003年正式发布的最新的视频编码标准,因此,在通常情况下,x264压缩出的视频文件在相同质量下要比xvid压缩出的文件要小,或者也可以说,在相同体积下比xvid压缩出的文件质量要好。它符合GPL许可证。
从iOS8开始,苹果开放了硬解码和硬编码API,框架为 VideoToolbox.framework, 此框架需要在iOS8及以上的系统上才能使用。此框架中的硬解码API是几个纯C函数,在任何OC或者 C++代码里都可以使用。使用的时候,首先,要把 VideoToolbox.framework 添加到工程里,并且在要使用该API的文件中包含头文件 #include <VideoToolbox/VideoToolbox.h>,然后,就可以畅快的高效的对视频流进行硬编码了。
音视频传输解决方案
硕士毕业一年的感受
时间过的很快,转眼毕业一年了,去年的今天拿到硕士毕业证和庆祝毕业的场景在脑海中清晰可见。可是,时间就这么过去了。
在一个北方的城市,待了七年(2007~2014),自己从奔二的年纪跨越到奔三的年纪,想想觉得时间真的好可怕。在自己渴望成长的年龄段,父母变老了,弟弟妹妹们都已到了读大学的年纪,小外甥都上幼儿园了。现在回忆过去,我的感受是处在最美最纯的场景中的时候,却拼命的渴望摆脱这个单纯的生活,追求复杂而且功利的生活,眼前的美好却不曾珍惜。而今,处在自己曾今刻意追赶的生活中,不过是人生阶段必经的过程,可惜的是以往该放慢脚步体验生活的阶段再也回不去了。
深处在一个以学习就是为了找一份好工作,拿到高薪的大环境中,作为学生深受这种氛围的影响,变得唯利是图,变得焦躁不安,变得对未来恐慌,而不把握当下和珍惜当下最美的时光。对过去的追忆无外乎两种,一种是结合现在的处境反思以前的人生阶段的遗憾,一种是回想过去美好的记忆。是甜蜜是懊悔,只有当事人知道,毕竟个人的经历是独一无二的。
我对毕业生进大公司与小公司的看法
2014年7月1日毕业,2014年4月23日第一天正式上班,1个半月就从试用期转正,到今天已经工作1年2个月了。工作了1年多,重新思考以前自己面对的问题,以前对毕业之后究竟要找一个什么样的公司很模糊,听到的是进大公司好,福利好,做颗小螺丝钉,小公司加班多,待遇差,锻炼人。究竟大公司与小公司对初入社会的毕业生今后的职业生涯与生存状态有多大影响?
小公司与大公司的直接明了的区别就是职员人数,几十个人的公司虽在业务经济效益上可能取胜人数上百的大公司,但是整个公司的建制体系跟数百人上千人的公司是无法比的。
帮助平台部解决重庆项目的bug
属于网络研发部的我,职位是播放器开发工程师,主要工作是播放器库的开发与维护。今天,收到老大(网络研发部经理)的工作安排,帮助平台部iOS工程师做重庆的项目,为期十五天左右。
工作就是修项目的bug,好比接手烂尾工程紧急修复在规定的时间段完工。百分之九十的程序员,是不愿意看别人写的代码的,因为代码不规矩,看一句代码要吐槽N句。