vitamio开发者大会

今天参加了vitamio开发者大会,收获颇多。这主要是介绍移动端(android和ios)多媒体开发的会议,以前自己也一直在做这方面的开发,但是没有做过系统的总结和归纳。会上已经有不少人在这方面创业做了一些产品。会议从早上9:00到下午5:00,中间安排了将近10人做介绍,时间安排上比较紧,听到后面都感觉快跟不上节奏了。

主要的介绍议题有下面这些:

1,手机硬件编码直播方法

主要介绍了从系统mediarecoder截获MP4数据,从中解析出音视频裸码流打包成flv发送到服务器,再由服务器转封装为mp4或者ts发送到移动客户端,pc客户端可用flash直接播放flv文件。其中flv文件不用切割成多个文件,直接用一个文件,支持流式传输和解析。

目前流媒体协议主要有mms、rtsp、rtmp和http flv、hls。

Mp4、mov、3gp格式相近。其中mdat 为音视频数据,moov为音视频信息描述、索引。Mp4由于索引区的关系,适合做点播,不适合做直播。Android mediarecord旧版是先写mdat,最后写moov,这样导致需要整个文件下载完才能播放。新版的android做了改进,文件开始空余出一部分做free,最后再把moov信息填充到free中。

在mp4中解析h264数据:先找mdat,再根据size字段和65、61等nal头来判断

解析音频数据:mp3和amr都是固定大小。Aac用ffmpeg 中的AACParser函数测试是否音频。音频帧一般间隔0x17ms。

2,Vitamio是如何实现硬解码的

用ffmpeg做解析(demux),将解析出的视频数据调用libstagefright硬解码。

主要的差异是(1)android版本不同需要引用不同头文件和链接库;(2)不同芯片硬解码出来的格式有差异(如YV12、NV12等),需要根据芯片类型做适配。

硬解码能兼容目前大部分手机。

3,如何开发一款全景视频播放器

介绍了vplayer的开发流程,用ffmpeg解析,硬件或软件解码,opengl显示。

比较炫的是全景播放器,拍摄视频帧包含了立体六面,播放时能用鼠标拖拽显示任意一个角度的画面。全景相关技术有:equirectangular, cubic

4,视频解析 SDK 与视频分享 SDK 的价值

主要介绍了秒拍的开发,包含视频剪切、变换大小;添加音乐、动画、字幕。视频分辨率为480x480。这块我们开发的视频编辑引擎比秒拍功能要多。

5,FFmpeg 于 iOS 平台下的深入应用

比较吸引的是3个应用:

(1)      用ffmpeg demux内存数据

(2)      边下边播
从网络下载数据存为临时文件,用ffmpeg解码临时文件播放。临时文件会预先缓存一段,分割存为多个长度不等的文件。

(3)      无缝播放多个文件
用第(1)中方法播放内存数据

6,与Vitamio共舞

介绍了vplayer、oplayer。Oplayer为开源播放器(java部分)。后面继续调研oplayer对rtsp的兼容性,考虑用vitamio实现rtsp直播、点播播放器。

7,Intel x86平台Android应用开发和视频处理优化

用ndk编译x86与arm类似,只需要修改APP_ABI := armeabi为APP_ABI := x86

Intel提供NativeMediaCodec,可以在解码后播放前做一些自定义处理,比较方便。

8,移动互联网推广

这部分受益匪浅,因为以前自己主要做技术开发,对推广方面知道的很少。这部分用手机录了音。

主要推广手段:制作rom、电子市场、搜索、官方网站、评测软文、微博

App图标要容易让人找,app在手机菜单中要排在前面(靠命名)

9,快速开发视频应用

主要介绍了七牛云存储,支持云端直播、点播。终端主动往云服务器发送实时流或文件。这块对实现大规模直播和点播比较有用。但是还没有实现按需拉数据,没有用户看视频时,终端也一直在往服务器发送数据,浪费了很多带宽,只适合直播会议、活动等。对于类似家长看幼儿园这类应用还是不适用。

10,     基于内容的视频检索

用opencv实现内容搜索,这块技术不是太懂。

比较有用的是根据直方图不同来判断场景变换,在显示视频缩略图比较有用。

11,     穿戴式云摄像机设计

介绍了一款小巧的运动摄像机,用ti芯片实现60帧拍摄,手机通过wifi查看。目前硬件结合移动app是一个热门的发展方向。以前做过硬件开发,现在做手机app开发,可以在这方面寻找一些突破口。
发布了32 篇原创文章 · 获赞 8 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/lipku/article/details/17658797