如果目录路径或文件名中有 space,如何使 ffmpeg cmd 运行
How to make ffmpeg cmd run if there is space in director path or file name
我正在使用 ffmpeg 通过 android 剪切视频,一切正常,但只有当源目录包含 space 时才会出现问题,命令无法正常工作,提示找不到文件
-i /storage/emulated/0/ISave Videos/Br0gv9anKKg.mp4 -acodec copy -vcodec copy -ss 00:00:10 -t 00:00:20 /storage/emulated/0/1547813275685ChunkClip.mp4
找不到文件是赞"File not found -i /storage/emulated/0/ISave"
但对于其他路径没有问题,只有当 space 存在于文件路径中时,一切正常,问题才会出现
很酷的问题
即使我们找到了解决方案,也很难解决这类问题
以下 Link 显示了一些解决此类问题的方法
Quoting and escaping
所以对于你遇到的问题有修复将 ffmpeg 注释中的每个单词添加到 LinkedList,然后转换为命令数组,以便 ffmpeg 执行它
如下(根据您的要求命令)
List<String> cmdList = new LinkedList<>();
cmdList.add("-i");
cmdList.add("/storage/emulated/0/ISave Videos/Br0gv9anKKg.mp4");
cmdList.add("-acodec");
cmdList.add("copy");
cmdList.add("-vcodec");
cmdList.add("copy");
cmdList.add("-ss");
cmdList.add("00:00:10");
cmdList.add("-t");
cmdList.add("00:00:20");
cmdList.add("/storage/emulated/0/1547813275685ChunkClip.mp4");
String[] command = cmdList.toArray(new String[cmdList.size()]);
希望此解决方案能解决您的问题
我正在使用 ffmpeg 通过 android 剪切视频,一切正常,但只有当源目录包含 space 时才会出现问题,命令无法正常工作,提示找不到文件
-i /storage/emulated/0/ISave Videos/Br0gv9anKKg.mp4 -acodec copy -vcodec copy -ss 00:00:10 -t 00:00:20 /storage/emulated/0/1547813275685ChunkClip.mp4
找不到文件是赞"File not found -i /storage/emulated/0/ISave"
但对于其他路径没有问题,只有当 space 存在于文件路径中时,一切正常,问题才会出现
很酷的问题
即使我们找到了解决方案,也很难解决这类问题 以下 Link 显示了一些解决此类问题的方法 Quoting and escaping
所以对于你遇到的问题有修复将 ffmpeg 注释中的每个单词添加到 LinkedList,然后转换为命令数组,以便 ffmpeg 执行它
如下(根据您的要求命令)
List<String> cmdList = new LinkedList<>();
cmdList.add("-i");
cmdList.add("/storage/emulated/0/ISave Videos/Br0gv9anKKg.mp4");
cmdList.add("-acodec");
cmdList.add("copy");
cmdList.add("-vcodec");
cmdList.add("copy");
cmdList.add("-ss");
cmdList.add("00:00:10");
cmdList.add("-t");
cmdList.add("00:00:20");
cmdList.add("/storage/emulated/0/1547813275685ChunkClip.mp4");
String[] command = cmdList.toArray(new String[cmdList.size()]);
希望此解决方案能解决您的问题