隨筆-31  評(píng)論-7  文章-0  trackbacks-0

          這兩天完善了一下視頻轉(zhuǎn)換這個(gè)東西,以前做的那套東西上傳完之后就開始轉(zhuǎn)換,無法適應(yīng)大并發(fā)量下的視頻轉(zhuǎn)換(我覺得同時(shí)有10個(gè)ffmpeg進(jìn)程在轉(zhuǎn)視頻服務(wù)器肯定要掛掉),所以我用了另一套方案,視頻上傳之后先不轉(zhuǎn)換,把視頻的基本信息存到數(shù)據(jù)庫中,然后由程序定時(shí)的從數(shù)據(jù)庫中讀取數(shù)據(jù),依次轉(zhuǎn)換視頻。具體做法是:1、上傳文件,將文件名存入數(shù)據(jù)庫,同時(shí)在數(shù)據(jù)庫標(biāo)明videostat字段為0(表示未轉(zhuǎn)換)

            2、通過程序,每隔30秒(根據(jù)不同情況可以改變)取出一個(gè)未轉(zhuǎn)換(videostat=0)且失敗次數(shù)小于5(confailtime<5)的紀(jì)錄

            3、開始轉(zhuǎn)換視頻,這里要先將數(shù)據(jù)庫中videostat字段改為2(表示正在轉(zhuǎn)換)不然30秒鐘轉(zhuǎn)換不完下個(gè)進(jìn)程又會(huì)讀到這條紀(jì)錄開始轉(zhuǎn)換......

            4、等待轉(zhuǎn)換進(jìn)程結(jié)束,如果成功將相應(yīng)紀(jì)錄的videostat字段的值改為1(表示轉(zhuǎn)換成功),若轉(zhuǎn)換失敗則將失敗次數(shù)字段加一(confailtime=confailtime+1)

            在鼓搗這東西的過程中,遇到了一個(gè)問題,如果一個(gè)進(jìn)程先執(zhí)行p.waitFor();方法而后輸出命令行中的結(jié)果是不行的,即:

          Code

          如果這樣執(zhí)行的話進(jìn)程會(huì)掛起,無法繼續(xù)下午,而正確的方法是先讀取命令行的數(shù)據(jù),再來waitFor();

          還有一點(diǎn)需要注意的是獲得命令行的輸出結(jié)果先要從錯(cuò)誤流中獲得,即(ErrorStream),而非從輸入流(InputStream)中獲得,很有用的經(jīng)驗(yàn)。



          --------------------------
          09博客園紀(jì)念T恤
          新聞:自由軟件基金會(huì)列舉Windows 7之七宗罪
          網(wǎng)站導(dǎo)航: 博客園首頁  個(gè)人主頁  新聞  社區(qū)  博問  閃存  找找看
          文章來源:http://www.cnblogs.com/xiaoao808/archive/2009/08/04/1538824.html
          posted on 2009-08-04 17:45 破名超難起 閱讀(275) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 明光市| 封开县| 平罗县| 吴江市| 桦川县| 会宁县| 萨迦县| 江都市| 宁明县| 庆阳市| 翼城县| 宿州市| 沭阳县| 搜索| 三河市| 德惠市| 西乌珠穆沁旗| 新河县| 五原县| 定结县| 贵港市| 江山市| 山阴县| 芮城县| 来宾市| 新民市| 广宁县| 海城市| 株洲县| 锦州市| 来宾市| 安泽县| 余干县| 筠连县| 浙江省| 洛阳市| 孝感市| 岳池县| 浏阳市| 万宁市| 瓮安县|