Posted on 2007-12-19 16:46
dennis 閱讀(7304)
評論(5) 編輯 收藏 所屬分類:
java 、
linux & C
挺久沒動筆寫blog了,換了新工作比較忙是一個原因。最近的工作是做一個素材管理的系統,其中有個要求做視頻預覽,將用戶上傳的視頻轉換并在網頁上預覽。在網頁上看視頻,現在大多數視頻網站都是采用flv流媒體文件,用flash做的播放器播放,我們也采用了這種方式。流程大概主要:用戶上傳文件->后臺轉換文件成flv格式->flv播放器調用flv文件。
轉換視頻、音頻文件到flv格式可以使用mencoder或者ffmpeg,我們采用了mencoder,在linux上的安裝參考
這里,安裝結束后記的設置環境變量:export LD_LIBRARY_PATH=/usr/local/lib:LD_LIBRARY_PATH
java調用的話就是通過Process:
Process process = runtime.exec(cmd);
mencoder轉換視頻音頻成flv命令:
mencoder 源文件 -o 目標文件.flv -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=400:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=200:-3 -ofps 12 -srate 22050
取視頻元信息命令(視頻比特率、長寬等信息):
mplayer -identify 文件名 -ao null -vo null -frames 0
切割視頻命令:
mencoder -ss 開始時間 -oac copy -ovc copy -endpos 終止時間 文件名 -o 目標文件名
操作flv文件(給視頻打上信息、切割之類)可以采用
flvtool2。
需要注意的是通過java調用的話,一定要處理標準輸出和標準錯誤輸出,不然進程會掛在那結束不了,可以開個線程取處理。在網頁播放的話,可以考慮用
這個播放器,具體參數看它的說明。最后一個問題,IE6的flash控件需要激活,這個問題的解決可以采用
swfobject.js。
有興趣的老大們可以考慮自己搭個“土豆網”,說不定哪天拿了風投.....浮云