接上回的图片处理,接着又做了视频处理,太蓝了。
这两个链接是介绍性的,
https://blog.pivotal.io/pivotal/features/large-scale-video-analytics-on-hadoop
以下是网上搜到的关于分布式视频处理的算法介绍,源地址我也找不到了。(没有翻墙,也不会)
1、 要获取视频帧,这一步我找了好久,自己是没有成功的实现,但是找到网友的实现,然后用起来了。实现主要是要重写写mapreduce的FileInputFormat,RecoderReader。将整个视频按照一段一段的格式进行读取,就像将图片组合成sequencefile,然后一个图片一个图片的读取,再像文本文件一行一行的读取。
2、 按照切割的视频段,进行视频的解析,取出每一帧的数据,然后封装成图片。用了xuggle这个开源的工具。配置比较麻烦。哎~
3、 截取每一帧的图像,就像上一篇图像处理一样,将图片封装成sequencefile,然后再进行分布式处理。
4、 有想过进行视频内容的分析,比如移动物体检测等,虽然听说opencv有简单的实现,但是暂时不想搞下去了。
下图是从hdfs上的11.avi的视频中截取的图片,实际是直接存到hdfs中的,这里就看下效果。