linux下處理視訊為flv格式
阿新 • • 發佈:2018-12-21
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
原貼:http://blog.csdn.net/crackcell/archive/2007/05/29/1629062.aspx http://blog.csdn.net/octverve/archive/2007/09/24/1798231.aspxFLV視訊轉換的利器 - ffmpeg.exe大 家應該都知道Youtobe、Google Video之類視訊分享網站。他們的視訊全部是使用Flash播放,而通過探索實際地址,會發現下載回來的東西都是Flash支援的FLV格式。這種格式 的視訊,播放和轉換是非常麻煩的。但是,有一個源於Linux的工具軟體ffmpeg可以輕易地實現FLV向其它格式(avi(mpeg4)、asf、 mpeg)的轉換或者將其它格式轉換為flv。Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1798231
轉自:http://blog.verycd.com/dash/showentry=35982作者是大名鼎鼎的VeryCD的創始人。凌晨2點洗澡的時候,突然決定把flv的視訊轉換和線上播放的問題研究一下。於是在之後花了2小時進行Google,並在睡覺前初步試驗成功。今天晚上對這些資訊進行了一下整理,分享給大家。youtube 火起來以後,國內外跟進的一大把,不過技術和流程上沒有任何突破,基本上就是伺服器自動對使用者上傳的視訊進行壓縮,壓成可以用flash線上播放的 flv,縮小尺寸並降低位元速率。然後再用Flash製作一個播放器,可以根據引數線上播放指定的flv視訊,當然有些還會加上水印和跳自己網站等功能。轉 換工具可以選擇ffmpeg和mencoder,這2個都是gnu專案,並且可以非常完美的在linux/Mac/Win32等平臺下使用。不過 ffmpeg支援的視訊格式較少(不能很方便的支援rmvb,mov等,不過據說Google Video用的是這個),而mencoder則不能進行截圖,所以可以考慮2者結合使用,mencoder負責轉換,ffmpeg負責截圖。關於下載和安裝,ffmpeg煩一點,官方網站上只提供了svn,需要自己編譯。具體可以參考這篇文章,Windows還需要裝MinGW來MSYS模擬linux環境,偷懶的話可以直接找個編譯好的版本,不過功能可能會不全。mencoder則很簡單,本來就是mplayer的一部分,會裝mplayer就成。注意把codecs都裝全了首先通過mencoder把普通視訊轉化為flv格式,命令如下程式碼mencoder test.avi -o test.flv -of lavf -oac mp3lame -lameopts abr:br=32:mode=3 -ovc lavc -lavcopts vcodec=flv:vbitrate=150:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -vf scale=350:-3 -sws 2mencoder 的引數超級複雜,視音訊壓縮本身又是一門非常高深的學問,本人略知皮毛,下面只對自己瞭解的一些引數做些說明,詳細解釋請看手冊引用test.avi 輸入檔案路徑,是Mplayer能支援的格式即可-o test.flv輸出路徑-of lavf輸出格式 lavf表示libavcodec-oac mp3lame輸出音訊編碼方式,lame是最好的mp3編碼器-lameopts abr:br=32:mode=3lame的選項abr代表平均位元速率,相對於cbr(固定位元速率)和vbr(可變位元速率,貌似不支援)br就是音訊的位元速率,越高音質越好mode=3,0-3分別代表Stereo,Joint Stereo,Force ms_stereo,Mono(預設為自動,事實上1和3對檔案大小的影響並不是很大)另外可選的還有 vol(音量,取值0-10,數值越大音量越大,不建議修改)等-srate 22050聲音取樣頻率設定,也可以選11025,檔案可以稍小一點-ovc lavc輸出視訊編碼 lavc就是libavcodec-lavcoptslavc的的選項codec=flv flv格式壓縮vbitrate=150 視訊位元速率其他幾個選項一概不懂,請看手冊(一般來說看了還是不懂)-vf scale=350:-3 -sws 2縮放視訊,指定寬度為350,高度按比例來。質量由-sws選項控制,具體看手冊-ofps 23 設定幀數,縮小幀數對節約檔案大小效果不明顯,且可能造成畫面聲音同步。建議不設定mencoder壓縮後生成的flv缺少meta資訊,會造成播放時沒有進度條等問題,需要再用flvmdi修復一下程式碼flvmdi test.flv生成後的flv通過MPC就可以預覽。ffmpeg截圖程式碼ffmpeg -i test.flv -ss 10-vframes 1-r 1-ac 1-ab 2-s 320×240-f image2 test.jpg-ss 10 就是說1秒後的那一幀然後生成flash視訊播放器的話,網上例子很多,自己對Flash研究也不深,也就不多說了,要自定義播放器介面的參考這裡唯一需要補充一下的是視訊的smoothing屬性,現在的線上播放器尺寸一般都回比實際壓縮後的視訊尺寸大一些,smoothing=true可以保證放大的質量(包括全屏後的),具體的文章見這裡。很長時間沒在技術方面做些研究了,難得在晚上可以清靜些。我所瞭解的內容都已列出,也不會再作進一步研究,所以其他的問題就不要問我了,Google一下會比問我更有效率。Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1629062