视频上传、转码、切面、存储的思路

在工作中常常会接触到图片与视频的处理,下面简单介绍下我接触过的视频断点续传与视频转码相关思路。java语言编写,文件存储我们用的GFS,视频转码用的ffmpeg,发消息用的ActiveMQ,数据库用的mysql,另外还用到了redis保存片信息。

GFS,ffmpeg,activeMQ,mysql,redis我这里只是简单介绍下思路

  1. 为了实现断点续传(传到一半,下次接着传)呢,采用的是分块上传的方法。当有一个上传请求的时候,flash首先计算视频的md5码,并传给服务器端,server端验证flash身份。如果身份通过,通过该md5去数据库中查找,是否存在改MD5的数据,也就是这个视频是否上传过。
  2.  

    如果没有上传过,从第一块开始上传,如果上传过,看是否已经上传完,如果上传完返回视频封面图,地址,视频时长等。如果没有从redis中根据md5获取已经上传的块编号,总块数给flash端。

  3.  

    flash发送下一块的数据流,总块数,已经上传的块编号给服务器端

  4.  

    服务器端接收数据流,合并到之前的块文件中,更新redis中已经上传的块编号。

  5.  

    如果上传完所有块文件,将文件复制到真正的存储地址,删除临时块文件信息,更新数据库信息,推送索引,向消息队列发送转码请求等。

转载于:https://my.oschina.net/lambert519/blog/879301

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值