分布式转码初步方案(hadoop+ffmpeg)
分布式轉(zhuǎn)碼初步方案
背景說(shuō)明
現(xiàn)有的轉(zhuǎn)碼方案是一個(gè)轉(zhuǎn)碼worker處理整個(gè)視頻的不同清晰度的轉(zhuǎn)碼,如果一個(gè)視頻很大,那這個(gè)視頻轉(zhuǎn)碼將非常耗時(shí)。?
因此需要改進(jìn)方案,要求對(duì)大多數(shù)格式的視頻可以進(jìn)行切片后并行轉(zhuǎn)碼,以此提高一個(gè)視頻的轉(zhuǎn)碼效率。
技術(shù)預(yù)研
目前搜到的參考資料,基本都是針對(duì)某幾個(gè)特定格式的分布式轉(zhuǎn)碼方案。?
當(dāng)前視頻轉(zhuǎn)碼基本都依賴于ffmpeg, 目前存在一個(gè)問(wèn)題:?
暫時(shí)沒(méi)有找到一個(gè)合適的方法去無(wú)縫切割多種編碼格式的視頻,然后分別對(duì)切割出來(lái)的分片進(jìn)行轉(zhuǎn)碼; 這個(gè)過(guò)程部分格式正常部分異常(請(qǐng)?jiān)徫沂欠强瓢喑錾?。?
計(jì)劃先用low一點(diǎn)的方案實(shí)現(xiàn),ffmpeg可以在一個(gè)完整的視頻上,指定視頻區(qū)間來(lái)進(jìn)行轉(zhuǎn)碼,暫時(shí)測(cè)試了大多數(shù)格式的效果都OK;?
那就每個(gè)worker的視頻源都是同一個(gè)視頻文件,然后并行對(duì)不同區(qū)間的視頻段進(jìn)行轉(zhuǎn)碼,所以就有了下面這個(gè)初步方案。
架構(gòu)方案
幾點(diǎn)說(shuō)明
- 每個(gè)轉(zhuǎn)碼worker都需要操作整個(gè)視頻, 中間涉及到的上傳、下載開(kāi)銷比較大;
- 多個(gè)過(guò)程都依賴于rbmq來(lái)完成異步轉(zhuǎn)碼,雖然解耦,但是會(huì)增加失敗重轉(zhuǎn)邏輯的復(fù)雜度;
- 如何均衡分配worker是一個(gè)關(guān)鍵點(diǎn),比如有些視頻轉(zhuǎn)碼的優(yōu)先級(jí)比較高,有些視頻比較大可能又需要更多的worker去并行處理轉(zhuǎn)碼。
最后
架構(gòu)需要改進(jìn),但應(yīng)該可以在編碼實(shí)現(xiàn)和測(cè)試的過(guò)程中逐步改進(jìn);如果最后解決了大多數(shù)格式視頻都可以先切割成單獨(dú)視頻分片后,再針對(duì)分片來(lái)進(jìn)行轉(zhuǎn)碼及合并的問(wèn)題,那么就可以減少更多傳輸和存儲(chǔ)開(kāi)銷,提升性能。
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的分布式转码初步方案(hadoop+ffmpeg)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ffmpeg与ffserver的协同工作
- 下一篇: 网易视频云分享:如何搭建视频转码集群