老哥们我有一个在 Linux 执行 Java Process 的问题

查看 13|回复 0
作者:DIO   
我想将类似
ffmpeg -i “input.mkv” -i “input.chs&jpn.ass” -c copy "output/output1.mkv"
这样的命令由 Java 代码来执行
java
        List command = new ArrayList();  
        command.add(ffmpegPath);  
        command.add("-i");  
        //输入视频文件 File
        command.add(file.getAbsolutePath());  
        command.add("-i");  
        //输入字幕文件 File
        command.add(sub.getAbsolutePath());  
        command.add("-c");  
        command.add("copy");  
        //拼接输出路径
        command.add((new File(out,fileName)).getAbsolutePath());
由于考虑多平台运行,所以路径获取和拼接都是通过 File ,没有自己加 Separate 。
在 windows 编译执行没问题,成功进行了分类


但是在 linux,总是执行失败
Log 以后,提示是这样的:
INFO: "/home/codeTest/ffmpegSubTest/[Kamigami&VCB-Studio] Boku dake ga Inai Machi [01][Ma10p_1080p][x265_flac_ac3].mkv": No such file or directory

其实已经分好类了,也就是说 File 对象指向是符合我预期的,只是创建文件夹利用的是 Java File 类的 mkdirs ()。
那就是 ffmpeg 命令这里参数出了问题,我试过给参数再套一层双引号(""),同样是 win 编译执行 ok ,linux “No such file or directory”
请问如何处理参数问题,或者有更好的解决方案希望能赐教
java Process 在不同平台执行看了会源码没看太明白。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部