本帖最后由 kylinshaw 于 2015-01-08 19:55:12 编辑

解决方案 »

  1.   

    网上查一下这些参数配置是不是配置正确了,之前做过一个上传视频转码的,具体的细节不太记得了,好像参数的配置比较重要,还有就是转码线程的管理,或者看一下是不是没有flush啊。
      

  2.   

    参数什么的应该是没有问题的,直接在命令行敲的和java里面是一模一样的命令,如果把水印部分去掉,只留下转码的话,在java里面能够成功,估计是水印这块的问题,但是直接在命令行敲却可以....
      

  3.   

    打印下  commend应该是commend 拼接的 命令有问题?
      

  4.   

    List<String> commend = new java.util.ArrayList<String>();
        commend.add("/usr/local/ffmpeg/ffmpeg");
        //commend.add("E:/java_code/ffmpeg/ffmpe/bin/ffmpeg.exe");
        commend.add("-i");
        commend.add(oldfilepath);///usr/share/tomcat/temp/wifi.flv
      
        commend.add("-vf");
        commend.add("\"movie=/usr/share/tomcat/temp/logo.png [logo]; [in][logo] overlay=10:10 [out]\"");
        commend.add("-vcodec");
        commend.add("libx264");
        commend.add("-f");
        commend.add("mp4");
        commend.add(newfilepath);///usr/share/tomcat/temp/out.mp4
      commend.add("-s"); 这个去掉再试
      

  5.   

    processBuilder.directory(path)运行命令前先切换工作目录.这么长时间你应该解决了吧.还有水印大小会根据视频分辨率不同.
    这个也可以程序控制.
    有需要问我.