Advertisement

海康视频转码 - 标准mp4格式(java)

阅读量:

使用CPU进行转码

复制代码
    	    File source = new File(oldPath);
        File target = new File(newPath);
        AudioAttributes audio = new AudioAttributes();
        audio.setCodec("libmp3lame"); //音频编码格式
        audio.setBitRate(new Integer(800000));
        audio.setChannels(new Integer(1));
        //audio.setSamplingRate(new Integer(22050));
        VideoAttributes video = new VideoAttributes();
        video.setCodec("libx264");//视频编码格式
        video.setBitRate(new Integer(3200000));
        video.setFrameRate(new Integer(15));//数字设置小了,视频会卡顿
        EncodingAttributes attrs = new EncodingAttributes();
        attrs.setFormat("mp4");
        attrs.setAudioAttributes(audio);
        attrs.setVideoAttributes(video);
        Encoder encoder = new Encoder();
        MultimediaObject multimediaObject = new MultimediaObject(source);
        try {
            System.out.println("avi转MP4 --- 转换开始:"+new Date());
            encoder.encode(multimediaObject, target, attrs);
            System.out.println("avi转MP4 --- 转换结束:"+new Date());
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InputFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (EncoderException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

使用GPU进行加速(使用格式工厂进行GPU加速)

  • 下载格式工厂
复制代码
    	File source = new File(oldPath);
    File target = new File(newPath);
    	
    	String bashCommand = "D:/soft/FormatFactory/FormatFactory.exe"//格式工厂的路径
    	        + " \"-> MP4\" \"AVC Medium quality and size\" " + " " + source + " " + target;
    	
    	try {
    	    //System.out.println(bashCommand);
    	    Runtime runtime = Runtime.getRuntime();
    	    Process pro = runtime.exec(bashCommand);
    	    int status = pro.waitFor();
    	    if (status != 0)
    	    {
    	        System.out.println("Failed to call shell's command mp4 ");
    	    }
    	
    	    BufferedReader br = new BufferedReader(new
    	            InputStreamReader(pro.getInputStream()));
    	    StringBuffer strbr = new StringBuffer();
    	    String line;
    	    while ((line = br.readLine())!= null)
    	    {
    	        strbr.append(line).append("\n");
    	    }
    	
    	    String result = strbr.toString();
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

支持的所有格式
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~