分布式转码初步方案

背景说明

现有的转码方案是一个转码worker处理整个视频的不同清晰度的转码,如果一个视频很大,那这个视频转码将非常耗时。 
因此需要改进方案,要求对大多数格式的视频可以进行切片后并行转码,以此提高一个视频的转码效率。

技术预研

目前搜到的参考资料,基本都是针对某几个特定格式的分布式转码方案。 
当前视频转码基本都依赖于ffmpeg, 目前存在一个问题: 
暂时没有找到一个合适的方法去无缝切割多种编码格式的视频,然后分别对切割出来的分片进行转码; 这个过程部分格式正常部分异常(请原谅我是非科班出身)。 
计划先用low一点的方案实现,ffmpeg可以在一个完整的视频上,指定视频区间来进行转码,暂时测试了大多数格式的效果都OK; 
那就每个worker的视频源都是同一个视频文件,然后并行对不同区间的视频段进行转码,所以就有了下面这个初步方案。

架构方案

几点说明

  1. 利用ffmpeg、hadoop、RBMQ, ffmpeg作为分布式存储,ffmpeg作为转码工具,RBMQ作为任务队列, 来构建一个分布式转码服务;
  2. 关于方案中的几个问题: 
    • 每个转码worker都需要操作整个视频, 中间涉及到的上传、下载开销比较大;
    • 多个过程都依赖于rbmq来完成异步转码,虽然解耦,但是会增加失败重转逻辑的复杂度;
    • 如何均衡分配worker是一个关键点,比如有些视频转码的优先级比较高,有些视频比较大可能又需要更多的worker去并行处理转码。

最后

架构需要改进,但应该可以在编码实现和测试的过程中逐步改进;如果最后解决了大多数格式视频都可以先切割成单独视频分片后,再针对分片来进行转码及合并的问题,那么就可以减少更多传输和存储开销,提升性能。

分布式转码初步方案(hadoop+ffmpeg)相关推荐

  1. 【流媒体服务器的搭建】2. 源码编译安装ffmpeg

    前言 centos 7 ffmpeg 编译时,打开H264功能时,必须已安装H264(参考这里).否则遇错:ERROR: libx264 not found. 官网 http://ffmpeg.org ...

  2. 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有

    [涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.javascript视频教程 链接: http://pan.baidu ...

  3. Mixin Messenger 的分布式 D3M-PIN 码介绍

    1.6位PIN 码介绍 PIN 码,全称 Personal Identification Number,中文可以译做「个人身份验证码」,用来验证使用者的身份. 1.1 为什么是6位纯数字?方便记忆. ...

  4. php ffmpeg 转码mp4,PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件

    配置php.ini文件 file_uploads = on ;//是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir ;//文件上传至服务器上存储临时文件的地方,如果没 ...

  5. 云计算与大数据第15章 分布式大数据处理平台Hadoop习题带答案

    第15章 分布式大数据处理平台Hadoop习题 15.1 选择题 1.分布式系统的特点不包括以下的(  D  ). A. 分布性     B. 高可用性        C. 可扩展性     D.串行 ...

  6. java 分布式 转码_分布式转码集群思路

    现在的转码程序是在通过增加WINFORM程序提高转码能力,存在下面两个问题: (1)FFMPEG转码非常费CPU,单个转码任务就会占用90%,一台主机上部署多个转码程序意义不大. (2)现在的扩展,是 ...

  7. 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 1.环境说明 群集环境少至要需3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以互相pin ...

  8. 网易视频云:分布式转码服务高可用浅析

    分布式视频处理系统中的worker.razer.sdk等模块以无状态方式设计,即worker应用停止服务或节点宕机均不会影响整个系统对于视频的处理.比如有worker-N应用正在处理转码,到了99%的 ...

  9. linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码

    一.获取Hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...

最新文章

  1. 讯飞语音识别_赛诺语音输入法报告 搜狗、讯飞、百度AI语音输入哪家强
  2. python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息
  3. 蓝宝石 470 原版 bios_想怎么玩就怎么玩!改造双BIOS显卡,不再为噪音和性能选择而烦恼...
  4. 深度之眼课程打卡-python入门05
  5. jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
  6. Spring DI模式 小样例
  7. java 语法 泛型_java-解密泛型语法
  8. embedding.assign(embedding_input)的解读
  9. Tomcat session集群
  10. 如何用计算机观看电视节目,如何将计算机显示器变成电视以观看节目
  11. 从URL启动程序:也谈谈旺旺的页面启动
  12. 网站整站下载工具推荐【Z】
  13. 小米路由器和TP-Link做wifi无线桥接
  14. 分式的化简(约分、通分)
  15. 为什么会有这么多种Python?
  16. linux桌面应用小结,Linux桌面应用技巧大全
  17. 软件定义边界(SDP)简介
  18. AI视觉对抗之隐身T恤「AI前沿」
  19. [极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?
  20. 一篇文章带你深入理解漏洞之 XXE 漏洞

热门文章

  1. 向linux内核加入系统调用新老内核比較
  2. WSSv3 Technical Articles 系列文章
  3. 洛谷 - P2761 软件补丁问题(spfa+状压)
  4. 视觉注意力机制(中)
  5. EfficientDet解读
  6. php self 内存,php导致内存溢出
  7. SGU247(排列组合与大数运算)
  8. HDU3549(最大流算法的Dinic算法)
  9. OD 调试带启动参数的程序
  10. 逆向工程核心原理学习笔记(二):字符串检索法查找main函数