2012-08-14 87 views
0

我想从Java使用ffmpeg将flv文件转换为mp3。从低优先级从java运行ffmpeg

我运行下面的命令

的cmd.exe/C开始/ BELOWNORMAL /等待/ B /的ffmpeg -i“C:\ Documents和Settings \用户\我的文档\鲍勃·迪伦 - 西班牙哈莱姆事件( LD).flv“”C:\ Documents and Settings \ user \ My Documents \ Bob Dylan - 西班牙语哈林事件(LD).mp3“

我收到此错误”系统找不到该文件“。

我使用下面的代码时,我的Java之外运行它来执行命令http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4

,从CMD控制台我没有问题

任何想法,将不胜感激。

回答

1

您是否正确转义特殊字符?它应该是这样的,如果你只是将其粘贴到代码作为字符串:

String command = "cmd.exe /C start /BELOWNORMAL /WAIT /B /ffmpeg -i \"C:\\Documents and Settings\\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv\""; 

如果你是,但它仍然没有工作,我建议你分离出的命令,就像这样:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", "start", "BELOWNORMAL", "/WAIT", "/B", "ffmepg", "-i", "C:\\Documents and Settings\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv"}); 

这将消除引用文件名的需要。

或者,为了提高可读性和排除问题,您的文件系统,你可以使用File类来包装的位置,正是如此:

File f = new File("C:\\Documents and Settings\\user\\My Documents\\Bob Dylan - Spanish Harlem Incident(LD).flv"); 
    Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", "start", "BELOWNORMAL", "/WAIT", "/B", "ffmepg", "-i", f.getAbsolutePath()});