我正在使用FFMPEG支持库将一堆图像转换为视频。它在早期版本的棒棒糖上工作正常。但在棒棒糖中它会产生以下错误。 ***error: only position independent executables (PIE) are supported.***
我知道PIE安全限制已在棒棒糖中更改,但我不知道如何解决它。
据我所知,它可能有两种可能的解决方案,
我们需要将FFMPEG库资源重新定位到SDCard,我们必须从编码中引用它们,如果这是答案,那么所有要遵循的步骤是什么?
或
在android棒棒糖的FFMPEG库中是否有任何更新。
如果两者都错了,你能否为我提供适当的解决方案。
非常感谢......
这是我的代码
try {
String[] ffmpegCommand = {"/data/data/com.mobvcasting.mjpegffmpeg/ffmpeg", "-r", ""+p.getPreviewFrameRate(), "-b", "1000000", "-vcodec", "mjpeg", "-i",
Environment.getExternalStorageDirectory().getPath() + "/req_images/frame_%05d.jpg", Environment.getExternalStorageDirectory().getPath() + "/req_images/video.mov"};
ffmpegProcess = new ProcessBuilder(ffmpegCommand).redirectErrorStream(true).start();
OutputStream ffmpegOutStream = ffmpegProcess.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(ffmpegProcess.getInputStream()));
String line;
Log.v(LOGTAG,"***Starting FFMPEG***");
while ((line = reader.readLine()) != null)
{
Log.v(LOGTAG,"***"+line+"***");
}
Log.v(LOGTAG,"***Ending FFMPEG***");
} catch (IOException e) {
e.printStackTrace();
}
if (ffmpegProcess != null) {
ffmpegProcess.destroy();
}
答案 0 :(得分:4)
您不需要更新"更新"。 PIE是编译时设置。您可以使用PIE选项集自行编译。
CFLAGS="-fPIE -pie"
在此处查看更多信息: https://github.com/danielkop/android-ffmpeg/commit/616a099151fb6be05b559adc4c9ed95afacd92c2