簡體   English   中英

如何在帶有輸入和輸出文件路徑的android中使用ffmpeg commnad?

[英]How to use ffmpeg commnad in android with input and output file path?

我想在 android 應用程序中使用 ffmpeg 命令。我正在使用這個庫從 ffmpeg 開始。

http://writingminds.github.io/ffmpeg-android-java/

我開發了一個演示應用程序並運行命令

ffmpeg 版本

這個命令也給出了精確的輸出。 但是當我給任何帶有名稱的文件路徑時,我的命令總是失敗,因為我正在使用:

            String cmd[] = new String[]{"ffmpeg", "-i", "/storage/emulated/0/Videos/dheere.mp4", "-c:v", "libx264", "/storage/emulated/0/Videos/dheere2.3gp"};
            execute(cmd);




  private void execute(String cmd[]) {


    try {
        // to execute "ffmpeg -version" command you just need to pass "-version"
        FFMpegApp.getFfmpeg().execute(cmd, new ExecuteBinaryResponseHandler() {

            @Override
            public void onStart() {
                Log.e("gc", "Command Started");
            }

            @Override
            public void onProgress(String message) {
                Log.e("gc", "onProgress" + message);
            }

            @Override
            public void onFailure(String message) {
                Log.e("gc", "onFailure command" + message);
            }

            @Override
            public void onSuccess(String message) {
                Log.e("gc", "onSuccess command" + message);
            }


            @Override
            public void onFinish() {
                Log.e("gc", "onFinish command");
            }
        });
    } catch (FFmpegCommandAlreadyRunningException e) {
        // Handle if FFmpeg is already running
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

請給我任何建議如何在android中使用命令? 提前致謝。

private void execute() {
String[] cmd = {"ffmpeg -i input_file_path.mp4 -ss 00:00:00.000 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000  output_file_path.gif"}

try {
    // to execute "ffmpeg -version" command you just need to pass "-version"
    FFMpegApp.getFfmpeg().execute(cmd, new ExecuteBinaryResponseHandler() {

        @Override
        public void onStart() {
            Log.e("gc", "Command Started");
        }

        @Override
        public void onProgress(String message) {
            Log.e("gc", "onProgress" + message);
        }

        @Override
        public void onFailure(String message) {
            Log.e("gc", "onFailure command" + message);
            // this will fail in case of wrong input or output path.
        }

        @Override
        public void onSuccess(String message) {
            Log.e("gc", "onSuccess command" + message);
        }


        @Override
        public void onFinish() {
            Log.e("gc", "onFinish command");
        }
    });
} catch (FFmpegCommandAlreadyRunningException e) {
    // Handle if FFmpeg is already running
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM