分布式转码初步方案(hadoop+ffmpeg)
分布式转码初步方案
背景说明
现有的转码方案是一个转码worker处理整个视频的不同清晰度的转码,如果一个视频很大,那这个视频转码将非常耗时。
因此需要改进方案,要求对大多数格式的视频可以进行切片后并行转码,以此提高一个视频的转码效率。
技术预研
目前搜到的参考资料,基本都是针对某几个特定格式的分布式转码方案。
当前视频转码基本都依赖于ffmpeg, 目前存在一个问题:
暂时没有找到一个合适的方法去无缝切割多种编码格式的视频,然后分别对切割出来的分片进行转码; 这个过程部分格式正常部分异常(请原谅我是非科班出身)。
计划先用low一点的方案实现,ffmpeg可以在一个完整的视频上,指定视频区间来进行转码,暂时测试了大多数格式的效果都OK;
那就每个worker的视频源都是同一个视频文件,然后并行对不同区间的视频段进行转码,所以就有了下面这个初步方案。
架构方案
几点说明
- 利用ffmpeg、hadoop、RBMQ, ffmpeg作为分布式存储,ffmpeg作为转码工具,RBMQ作为任务队列, 来构建一个分布式转码服务;
- 关于方案中的几个问题:
- 每个转码worker都需要操作整个视频, 中间涉及到的上传、下载开销比较大;
- 多个过程都依赖于rbmq来完成异步转码,虽然解耦,但是会增加失败重转逻辑的复杂度;
- 如何均衡分配worker是一个关键点,比如有些视频转码的优先级比较高,有些视频比较大可能又需要更多的worker去并行处理转码。
最后
架构需要改进,但应该可以在编码实现和测试的过程中逐步改进;如果最后解决了大多数格式视频都可以先切割成单独视频分片后,再针对分片来进行转码及合并的问题,那么就可以减少更多传输和存储开销,提升性能。
分布式转码初步方案(hadoop+ffmpeg)相关推荐
- 【流媒体服务器的搭建】2. 源码编译安装ffmpeg
前言 centos 7 ffmpeg 编译时,打开H264功能时,必须已安装H264(参考这里).否则遇错:ERROR: libx264 not found. 官网 http://ffmpeg.org ...
- 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有
[涵盖从java入门到深入架构,Linux.云计算.分布式.大数据Hadoop.ios.Android.互联网技术应有尽有] 1.javascript视频教程 链接: http://pan.baidu ...
- Mixin Messenger 的分布式 D3M-PIN 码介绍
1.6位PIN 码介绍 PIN 码,全称 Personal Identification Number,中文可以译做「个人身份验证码」,用来验证使用者的身份. 1.1 为什么是6位纯数字?方便记忆. ...
- php ffmpeg 转码mp4,PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
配置php.ini文件 file_uploads = on ;//是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir ;//文件上传至服务器上存储临时文件的地方,如果没 ...
- 云计算与大数据第15章 分布式大数据处理平台Hadoop习题带答案
第15章 分布式大数据处理平台Hadoop习题 15.1 选择题 1.分布式系统的特点不包括以下的( D ). A. 分布性 B. 高可用性 C. 可扩展性 D.串行 ...
- java 分布式 转码_分布式转码集群思路
现在的转码程序是在通过增加WINFORM程序提高转码能力,存在下面两个问题: (1)FFMPEG转码非常费CPU,单个转码任务就会占用90%,一台主机上部署多个转码程序意义不大. (2)现在的扩展,是 ...
- 配置密码分布式集群环境hadoop、hbase、zookeeper搭建(全)
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 1.环境说明 群集环境少至要需3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以互相pin ...
- 网易视频云:分布式转码服务高可用浅析
分布式视频处理系统中的worker.razer.sdk等模块以无状态方式设计,即worker应用停止服务或节点宕机均不会影响整个系统对于视频的处理.比如有worker-N应用正在处理转码,到了99%的 ...
- linux eclipse 关联源码,获取Hadoop的源码和通过Eclipse关联Hadoop的源码
一.获取Hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...
最新文章
- 讯飞语音识别_赛诺语音输入法报告 搜狗、讯飞、百度AI语音输入哪家强
- python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息
- 蓝宝石 470 原版 bios_想怎么玩就怎么玩!改造双BIOS显卡,不再为噪音和性能选择而烦恼...
- 深度之眼课程打卡-python入门05
- jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
- Spring DI模式 小样例
- java 语法 泛型_java-解密泛型语法
- embedding.assign(embedding_input)的解读
- Tomcat session集群
- 如何用计算机观看电视节目,如何将计算机显示器变成电视以观看节目
- 从URL启动程序:也谈谈旺旺的页面启动
- 网站整站下载工具推荐【Z】
- 小米路由器和TP-Link做wifi无线桥接
- 分式的化简(约分、通分)
- 为什么会有这么多种Python?
- linux桌面应用小结,Linux桌面应用技巧大全
- 软件定义边界(SDP)简介
- AI视觉对抗之隐身T恤「AI前沿」
- [极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?
- 一篇文章带你深入理解漏洞之 XXE 漏洞