使用ffmpeg進行視頻文件轉換成FLV整理

1、首先下載ffmpeg(附件即是)
2、將解壓得到的ffmpeg.exe和pthreadGC2.dll文件解壓到任何目錄(當然也可以是WebRoot中的目錄)
3、創建bat文件convertVideo.bat並添加以下內容:(參數說明見附錄一)
Txt代碼 複製代碼
  1. %1\ffmpeg -i %2 -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 %3  
  2. exit  
******************
%1爲ffmpeg存放目錄
%2爲需要轉換的文件路徑
%3爲FLV文件輸出目錄
******************
同樣需要注意的是bat文件存放的路徑不能包含空格
也可以對視頻進行截取縮略圖哦:)
Txt代碼 複製代碼
  1. 【轉換文件格式的同時抓縮微圖】   
  2. ffmpeg -i "test.avi" -y -f p_w_picpath2 -ss 8 -t 0.001 -s 350x240 "test.jpg"  
  3.   
  4. 【對已有flv抓圖】   
  5. ffmpeg -i "test.flv" -y -f p_w_picpath2 -ss 8 -t 0.001 -s 350x240 "test.jpg"  
  6.   
  7. ****************   
  8. -ss後跟的時間單位爲秒   
  9. ****************  
 
4、創建類
Java代碼 複製代碼
  1. public class ConvertVideo   
  2. {   
  3.     private static String INPUT_PATH;   
  4.     private static String OUTPUT_PATH;   
  5.     private static String PROJECT_PATH;   
  6.     private static HashMap<String, String> fileType;   
  7.        
  8.     static  
  9.     {   
  10.         fileType = new HashMap<String, String>();   
  11.         fileType.put("avi""true");   
  12.         fileType.put("mpg""true");   
  13.         fileType.put("wmv""true");   
  14.         fileType.put("3gp""true");   
  15.         fileType.put("mov""true");   
  16.         fileType.put("mp4""true");   
  17.         fileType.put("asf""true");   
  18.         fileType.put("asx""true");   
  19.         fileType.put("flv""true");   
  20.     }   
  21.        
  22.     public static void convertToFLV(String projectPath, String inputFile, String outputFile)   
  23.     {   
  24.         INPUT_PATH = inputFile;   
  25.         OUTPUT_PATH = outputFile;   
  26.         PROJECT_PATH = projectPath;   
  27.         if (checkContentType())   
  28.             processFLV();// 直接將文件轉爲flv文件   
  29.     }   
  30.   
  31.     private static boolean checkContentType()   
  32.     {   
  33.         String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".") + 1, INPUT_PATH.length()).toLowerCase();   
  34.         // ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)   
  35.         return "true".equals(fileType.get(type));   
  36.     }   
  37.   
  38.     private static void processFLV()   
  39.     {   
  40.         if (new File(INPUT_PATH).isFile())   
  41.         {   
  42.             try  
  43.             {   
  44.                 String cmd = "cmd /c start X:\\ffmpeg.bat \"" + PROJECT_PATH + "\" \"" + INPUT_PATH + "\" \"" + OUTPUT_PATH +"\"";   
  45.                 Runtime.getRuntime().exec(cmd);   
  46.             }   
  47.             catch (Exception e)   
  48.             {   
  49.                 e.printStackTrace();   
  50.             }   
  51.         }   
  52.     }   
  53. }  
 
5、測試代碼
Java代碼 複製代碼
  1. public static void main(String[] args)   
  2. {   
  3.     ConvertVideo.convertToFLV("X:\\convertVideo""X:\\a.wmv""X:\\a.flv");   
  4. }  
 
6、附一個下載來的flv播放器吧(附件中下載)
 
Js代碼 複製代碼
  1. var swf_width="100%";   
  2. var swf_height="100%";   
  3. var files='nba.flv';   
  4. var config='0:自動播放|1:連續播放|100:默認音量|0:控制欄位置|2:控制欄顯示|0x000033:主體顏色|60:主體透明度|0x66ff00:光暈顏色|0xffffff:圖標顏色|0xffffff:文字顏色|:logo文字|:logo地址|:結束swf地址';   
  5. var texts='NBA精彩進球TOP10';   
  6. document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+swf_width+'" height="'+swf_height+'">');   
  7. document.write('<param name="movie" value="vcastr2.swf"/>');   
  8. document.write('<param name="quality" value="high"/>');   
  9. document.write('<param name="menu" value="false"/>');   
  10. document.write('<param name=wmode value="opaque"/>');   
  11. document.write('<param name="FlashVars" value="vcastr_file='+files+'&vcastr_title='+texts+'&vcastr_config='+config+'">');   
  12. document.write('<embed src="vcastr2.swf"/>" wmode="opaque" FlashVars="vcastr_file='+files+'&vcastr_title='+texts+'&vcastr_config='+config+'" menu="false" quality="high" width="'+swf_width+'" height="'+swf_height+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');   
  13. document.write('</object>');  
 
 
【補充說明】如果遇到ffmpeg所涉及以外的視頻格式,可以使用其他轉換工具先轉換,例如mencoder。
 
附錄一(ffmpeg參數說明):
 
【參數】 【說明】 【示例】
-i "路徑" 指定需要轉換的文件路徑 -i "C:\nba.wmv"
-y 覆蓋輸出文件,即如果nba.xxx文件已經存在的話,直接覆蓋  
   控制畫面參數
-bitexac 使用標準比特率  
-vcodec xvid 使用xvid壓縮  
-s <寬高比> 指定分辨率大小 -s 320*240
-r <數值> 幀速率(非標準數值會導致音畫不同步【標準值爲15或29.97】) -r 15
-b <比特率> 指定壓縮比特率 -b 1500
-qmin <數值>
設定最小質量 -qmin 10
-qmax <數值> 與-qmin相反,可以與-qmin同時使用 -qmax 30
-sameq 使用與源視頻相同的質量  
   控制聲音參數
-acodec aac 設定聲音編碼  
-ac <數值> 設定聲道數:1爲單聲道,2爲立體聲 -ac 2
-ar <採樣率> 設定聲音採樣率(8000,11025,22050) -ar 22050
-ab <比特率> 設定聲音比特率(-ac設爲立體聲時要以一半比特率來設置,比如192kbps的就設成96) -ab 96
-vol <百分比> 設定音量大小,比如設定200就會比原來的音量大2倍 -vol 200
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章