zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    Hive和HBase的区别
    HBase面试问题
    HBase的rowkey的设计原则
    一、spark 数据类型(Data Types)
    Phaser显示对象(文字)
    Phaser中的组对象group
    Phaser中的动画
    phaser.js 显示对象笔记
    MD5之C#密码加密备忘录
    学了点小小的技巧,也有一点点问题,怎么解决呢?
  • 原文地址:https://www.cnblogs.com/shihaiming/p/9830923.html
Copyright © 2011-2022 走看看