Android FFMPEG - 没有创建输出文件

时间:2017-03-18 19:21:01

标签: java android shell terminal ffmpeg

每当我发出以下命令时," intermediate.ts"输出文件已创建:

getRuntime.exec("ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts")

即使使用这样的String[]

String[] cmd = {
"sh",
"-c",
"./ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts"
}

但是当我打开终端模拟器并写同样的东西时,我得到了正确的输出,我正在寻找。通过Java我可以从

获得输出
ffmpeg -help 

但无法使用FFMpeg和Java的getRuntime.exec()创建文件。我做错了什么?

1 个答案:

答案 0 :(得分:1)

当您在Android应用程序的上下文中运行ffmpeg时,其工作目录是文件系统的根目录,并且以只读方式挂载。您可以指定输出文件的完整路径,或使用exec(cmd, null, dir)。输出文件必须转到您的应用具有写权限的目录,例如 myActivity.getFilesDir() myPackageInfo.applicationInfo.dataDir

您不需要通过 sh 运行 ffmpeg ,但您必须提供可执行文件的完整路径,或通过的Runtime.exec()