Pit*_*rno 6 android ffmpeg flutter
我准备了一个测试程序来运行 FFMPEG 命令,并且它成功运行了-i "/data/user/0/com.example.test/cache/file_picker/test.mp4" -c:v mpeg4 "/data/user/0/com.example.test/cache/test-1639310478143.mp4"命令。这只是为了确保 ffmpeg_kit_flutter 已正确加载并已获得所有权限。
但是,我在执行-i "source.mp4" -vf fps=30 "thumb%03d.jpg" -hide_banner命令时遇到问题。当我在 Windows 上运行该命令时,该命令本身运行良好,例如:
md frame1
ffmpeg -i "test.mp4" -vf fps=30 frame1/thumb%%04d.jpg -hide_banner
Run Code Online (Sandbox Code Playgroud)
(注:双%是转义Windows批处理文件中的%)
这就是我在 android 上的 flutter 中所做的:
String command = '-i "/data/user/0/com.example.test/cache/file_picker/test.mp4" -vf fps=30 "/data/user/0/com.example.test/cache/tmp-1639309602536/thumb%03d.jpg" -hide_banner';
FFmpegKit.executeAsync(command, (session) async {
final returnCode = await session.getReturnCode();
if (ReturnCode.isSuccess(returnCode)) {
//ok
} else if (ReturnCode.isCancel(returnCode)) {
//cancelled
} else {
//error
}
});
Run Code Online (Sandbox Code Playgroud)
散文不起作用(总是转到错误部分)。我的问题是:
小智 0
在命令字符串中使用空格字符
FFmpegKit 和 FFprobeKit 中的execute() 和executeAsync() 方法使用空格字符作为分隔符将命令拆分为参数。如果您的命令参数之一包含空格字符,那么它将被分成两个参数,并且您的命令执行将失败。为了防止这种情况,请使用单引号或双引号将该参数括起来。环绕将防止参数被分割。
或者,您可以自己将命令拆分为参数,并调用接受参数数组的重载的executeWithArguments()/executeWithArgumentsAsync() 方法之一。
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |