“仅支持位置独立可执行文件(PIE)”

时间:2015-06-03 06:07:46

标签: android ffmpeg

我正在使用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();        
        }

1 个答案:

答案 0 :(得分:4)

您不需要更新"更新"。 PIE是编译时设置。您可以使用PIE选项集自行编译。

CFLAGS="-fPIE -pie"

在此处查看更多信息: https://github.com/danielkop/android-ffmpeg/commit/616a099151fb6be05b559adc4c9ed95afacd92c2