隨筆-31  評論-7  文章-0  trackbacks-0

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

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

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

            4、等待轉換進程結束,如果成功將相應紀錄的videostat字段的值改為1(表示轉換成功),若轉換失敗則將失敗次數字段加一(confailtime=confailtime+1)

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

          Code

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

          還有一點需要注意的是獲得命令行的輸出結果先要從錯誤流中獲得,即(ErrorStream),而非從輸入流(InputStream)中獲得,很有用的經驗。



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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昂仁县| 定兴县| 陈巴尔虎旗| 仲巴县| 金秀| 马鞍山市| 河曲县| 孙吴县| 长顺县| 海淀区| 农安县| 额济纳旗| 翼城县| 庆云县| 霞浦县| 高邮市| 龙游县| 灵寿县| 子长县| 安化县| 承德市| 工布江达县| 荔波县| 云梦县| 景谷| 淅川县| 文安县| 青阳县| 玛沁县| 平湖市| 重庆市| 灌云县| 全州县| 察隅县| 黄骅市| 武乡县| 阿拉善左旗| 绩溪县| 萍乡市| 闵行区| 惠安县|