您的位置:首页 > 移动开发 > IOS开发

iOS中RTMP视频播放(一)

2013-11-22 17:35 204 查看
最近公司要搞视频直播,一头雾水,以为会很难很高端很洋气,最后做了之后发现实际是一个不算很难的事情,最主要的问题是ffmpeg,这个开源库的牛逼超出我的相信,之前也做过ffmpeg的预研,花了几天时间搞了一下,对其中的使用过程有了一个大概的流程。最后发现了之前看过的一个开源项目,这个项目就能很好播放rtmp视频流,kxmovie,可惜的是里面的编译脚本在xcode 5.0.2中已经不能使用了,在编译的时候,貌似也没有其他的librtmp的支持,但是可以播放,好想librtmp会更高效一些,最后决定自己编译librtmp,然后编译ffmpeg,xcode5.0.2中的编译器位置发生了改变,把编译脚本改了一下,再加上添加外部类的时候,犯了一个外部库搜索路径的低级错误。用来一下午终于编译成功,可惜的时候,在尝试播放nginx-rtmp
module的视频时,可以正常播放,播放crtmpserver的时候却无法正常播放。最后发现,在rmtp的url后面添加live=1参数时,就可以正常播放,貌似是crtmpserver的兼容有些小问题。

首先需要搭建一个测试环境,包括adobe的官方环境,这里有个哥们写的文章已经完全秒杀我了,没必要做重复性工作,推荐这个地址,测试环境搭建

搭建完环境之后,很easy,也没什么太多的波折,完成这个之后,就需要编译支持rtmp的ffmpeg库了,其实这里一开始我也有个疑问,为毛kxmovie的编译脚本中没有使用librtmp呢?找了一下,发现其实ffmpeg本身是支持rtmp的,只是实现的方式不够高效,一般而言,大家更喜欢librtmp,参见百度知道

接着,就是编译了,这个过程先忽略,脚本我是写好了,但是太土了,会在整理好之后发布出来

后来,android也需要使用rmtp,我们找了一个第三方的sdk,本身性能非常高效,但最后很不幸,这个团队的license卖的太贵了,根本不是小团队可以负担的起的。本来我的想法是自己来迁移,我看了一下kxmoive的代码,发现使用opengl渲染的,这让我想起了自己苦逼熬了一个月看的OpenGL,虽然最后依旧没学会太多,但我还是不甘心,真不甘心自己浪费这么大精力最后没用上。于是自告奋勇跟老大说给我一周,让我试一下,之前做过cocos2d-x,借鉴一下cocos2d-x中的封装经验,使用C++移植到android还是会有些把握的,很不幸,老大不同意。。。。,最后决定使用百度SDK,可自己心里觉得心里痒痒的,没搞成心里不爽,算了,利用自己的业余时间改造封装一下kxmovie吧

发现好久没有写博客了,断断续续的,又经历很多,知道怎么回事了,心态有成熟了一些,觉得何必呢?自己费那么大劲得不到一个机会,为毛浪费自己的天赋呢,反正觉得也不想多待,自己做点自己感兴趣的事情把,随便做点什么,觉得应该都会比那点可怜的工资强,也能获得更多的成就感。这个是第一篇,后面会先搞一个网站,搞完之后,就开始移植RTMP,也可以说是一个简易播放器的开发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: