78144666 发表于 2018-10-31 07:16:09

利用Hadoop和opencv进行处理视频的原理

  大概的原理就是,先使用一个自定义的InputFormat将视频文件从HDFS里面读到内存,这时是以二进制字节的形式存在,然后对视频文件根据其编码类型,比如x264或者xvid格式,对这些二进制的字节流进行截取,转换成一个个的桢。这时将“帧流”以key-value的方式输入到Map Task中进行处理。
  其实我们之前一直存在一个误区,就是opencv的API读取的是文件路径,这两个对不上啊。但是,opencv利用VideoCapture读取文件之后还是会把它转成一个个的帧,因此,我们的Map Task其实就只要处理现成的帧就好了。这样才符合MapReduce的模型!
  另外,其实Spark和Hadoop处理视频的思路应该是一样的。
  相关参考资料:

[*]  JAVE:ffmpeg 项目的 Java 语言封装 http://www.sauronsoftware.it/projects/jave/index.php
[*]  JavaCv–获取视频帧并保存 http://www.lvzejun.cn/?p=698
[*]  Hadoop InputFormat浅析http://hi.baidu.com/_kouu/item/dc8d727b530f40346dc37cd1
[*]  自定义hadoop的InputFormathttp://blog.csdn.net/zhongyifly/article/details/25156145
[*]  hadoop 自定义inputformat和outputformathttp://blackproof.iteye.com/blog/1806263
[*]  自定义hadoop map/reduce输入文件切割InputFormathttp://hi.baidu.com/lzpsky/item/0d9d84c05afb43ba0c0a7b27
[*]  在Hadoop的streaming中使用自定义的inputformat和outputformathttp://www.codesky.net/article/201204/172486.html
[*]  javaCV http://blog.sina.com.cn/s/blog_72cc84c001019nzd.html
[*]  Java中如何使用OpenCV http://blog.sina.com.cn/s/blog_7b4a5b550101ifi7.html

页: [1]
查看完整版本: 利用Hadoop和opencv进行处理视频的原理