• java ffmpeg视频转码(自测通过)


     
    
    import java.io.*;
    
    
    public class VideoTransfer {
    
         //ffmepg文件 安装目录
         private static String ffmpeg = "D:\开发常用工具\ffmpeg-20181018-f72b990-win64-static\bin\ffmpeg";
         
         public static void main(String args[]) {
            String infile = "d://2//64891541678_181026061053_97_02.264";
            String outfile = "d://2//64891541678_181026061053_97_02.mp4";
    
            if(transfer(infile, outfile)) {
                System.out.println("the transfer is ok!");
            } else {
                System.out.println("the transfer is error!");
            }
        }
         
        public static boolean transfer(String infile,String outfile) {
    //        String avitoflv = "ffmpeg -i "+infile+" -ar 22050 -ab 56 -f flv -y -s 320x240 "+outfile;
    //        String flvto3gp = "ffmpeg -i " + infile + " -ar 8000 -ac 1 -acodec amr_nb -vcodec h263 -s 176x144 -r 12 -b 30 -ab 12 " + outfile;
    //        String avito3gp = "ffmpeg -i " + infile + " -ar 8000 -ac 1 -acodec amr_nb -vcodec h263 -s 176x144 -r 12 -b 30 -ab 12 " + outfile;
    //        String avitojpg = "ffmpeg -i " + infile + " -y -f image2 -ss 00:00:10 -t 00:00:01 -s 350x240 " + outfile;
    //        String h264tomp4 = ffmpeg + " -i "+infile+" -vcodec copy -f mp4 -y "+outfile;
            String h264tomp4 = ffmpeg + " -r 5 -i "+infile+" -vcodec copy -f mp4 -y "+outfile;
            try {
                Runtime rt = Runtime.getRuntime();
                Process proc = rt.exec(h264tomp4);
                InputStream stderr = proc.getErrorStream();
                InputStreamReader isr = new InputStreamReader(stderr);
                BufferedReader br = new BufferedReader(isr);
                String line = null;
    
                while ( (line = br.readLine()) != null) {
                    System.out.println(line);
                }
                int exitVal = proc.waitFor();
                System.out.println("Process exitValue: " + exitVal);
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }
    
    }
  • 相关阅读:
    Firefox页面截图插件Pearl Crescent Page Saver
    Effective C++ (5) 几个关于数组的问题
    Notice
    Effective C++ (4) c++中的命名空间
    Effective C++ (7) 强制类型转换
    Effective C++ (3) 避免C++头文件的多重包含
    Effective C++ (2) C#中的Const和Readonly
    总结一下这段时间的生活
    如何让rose一开始的那个向导对话框出现?
    Effective C++ (8) 顺序容器vector,list,deque
  • 原文地址:https://www.cnblogs.com/shihaiming/p/9830923.html
Copyright © 2020-2023  润新知