乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      java調用ffmpeg執(zhí)行視頻轉換-轉載

       韭菜一碟 2010-04-05
      java調用ffmpeg執(zhí)行視頻轉換
      2007-10-26 23:02
      用java小例題說明更直觀:(可以直接編譯運行)
      環(huán)境我在windows平臺下測試的。。。
      需要在e:\下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4個文件。
      還要在e:\input下放各種文件名為a的以下各種視頻文件;還要e:\output;java程序執(zhí)行后能得到一個a.flv的已轉換的文件。
      ffmpeg.exe能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
      對ffmpeg.exe無法解析的文件格式(wmv9,rm,rmvb等),
      可以先用別的工具(mencoder)轉換為avi(ffmpeg能解析的)格式;
      mencoder.exe;drv43260.dll;pncrt.dll這3個文件是為文件格式(wmv9,rm,rmvb等)
      轉換為avi(ffmpeg能解析的)格式準備的;再把轉換好的avi文件再用ffmpeg.exe轉換成flv格式的視頻文件。。。
      java文件的內容如下:
      import java.io.File;
      import java.util.List;
      public class ConvertVideo {

      private final static String PATH = "c:\\test\\a.mpg";
      public static void main(String[] args) {
               if(!checkfile(PATH)){
                System.out.println(PATH+" is not file");
                return;
               }       
         if (process()) {                 
                   System.out.println("ok");
               }
      }

      private static boolean process() {       
         int type = checkContentType();
               boolean status = false;
               if (type==0) {
                   status = processFLV(PATH);// 直接將文件轉為flv文件           
               } else if (type==1) {
                   String avifilepath = processAVI(type);
                   if (avifilepath == null)
                       return false;// avi文件沒有得到
                   status = processFLV(avifilepath);// 將avi轉為flv
               }
               return status;
           }
           private static int checkContentType() {
               String type = PATH.substring(PATH.lastIndexOf(".") + 1,
                 PATH.length()).toLowerCase();
      //ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
               if (type.equals("avi")) {
                   return 0;
               } else if (type.equals("mpg")) {
                   return 0;
               } else if (type.equals("wmv")) {
                   return 0;
               } else if (type.equals("3gp")) {
                   return 0;
               } else if (type.equals("mov")) {
                   return 0;
               } else if (type.equals("mp4")) {
                   return 0;
               } else if (type.equals("asf")) {
                   return 0;
               } else if (type.equals("asx")) {
                   return 0;
               } else if (type.equals("flv")) {
                   return 0;
               }
               //對ffmpeg無法解析的文件格式(wmv9,rm,rmvb等), 可以先用別的工具(mencoder)轉換為avi(ffmpeg能解析的)格式.
               else if (type.equals("wmv9")) {
                   return 1;
               } else if (type.equals("rm")) {
                   return 1;
               } else if (type.equals("rmvb")) {
                   return 1;
               }       
               return 9;
           }
         
           private static boolean checkfile(String path){
            File file=new File(path);
            if(!file.isFile()){
             return false;
            }
            return true;
           }
      //   對ffmpeg無法解析的文件格式(wmv9,rm,rmvb等), 可以先用別的工具(mencoder)轉換為avi(ffmpeg能解析的)格式.
           private static String processAVI(int type) {
               List commend=new java.util.ArrayList();
               commend.add("e:\\mencoder");
               commend.add(PATH);
               commend.add("-oac");
               commend.add("lavc");
               commend.add("-lavcopts");
               commend.add("acodec=mp3:abitrate=64");
               commend.add("-ovc");
               commend.add("xvid");
               commend.add("-xvidencopts");
               commend.add("bitrate=600");
               commend.add("-of");
               commend.add("avi");
               commend.add("-o");
               commend.add("c:\\home\\a.avi");
             
               try{
                ProcessBuilder builder = new ProcessBuilder();
                   builder.command(commend);
                   builder.start();
                   return "c:\\home\\a.avi";
               }catch(Exception e){
                e.printStackTrace();
                return null;
               }
           }
      //   ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
           private static boolean processFLV(String oldfilepath) {
           
             if(!checkfile(PATH)){
                 System.out.println(oldfilepath+" is not file");
                 return false;
                }     
             
               List commend=new java.util.ArrayList();
               commend.add("e:\\ffmpeg");
               commend.add("-i");
               commend.add(oldfilepath);
               commend.add("-ab");
               commend.add("64");
               commend.add("-acodec");
               commend.add("mp3");
               commend.add("-ac");
               commend.add("2");
               commend.add("-ar");
               commend.add("22050");
               commend.add("-b");
               commend.add("230");
               commend.add("-r");
               commend.add("24");
               commend.add("-y");
               commend.add("c:\\home\\a.flv");
               try {
                   ProcessBuilder builder = new ProcessBuilder();
                   builder.command(commend);
                   builder.start();
                   return true;
               } catch (Exception e) {
                   e.printStackTrace();
                   return false;
               }
           }

      }

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多