视频上传、转码、切面、存储的思路
视频上传、转码、切面、存储的思路
创业是喝可乐 发表于8个月前
视频上传、转码、切面、存储的思路
  • 发表于 8个月前
  • 阅读 27
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

在工作中常常会接触到图片与视频的处理,下面简单介绍下我接触过的视频断点续传与视频转码相关思路。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.  

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

  • 点赞
  • 收藏
  • 分享
粉丝 7
博文 42
码字总数 6860