【问题标题】:How to use FFMPEG commands如何使用 FFMPEG 命令
【发布时间】:2013-09-26 06:15:50
【问题描述】:

在 android 中,我正在制作一个应用程序,它将在其中录制视频并从中心裁剪视频,因此我在 google 上找到了 FFMPEG。我关注了http://dmitrydzz-hobby.blogspot.in/2012/04/how-to-build-ffmpeg-and-use-it-in.html

它工作正常,但我想知道如何使用这个`ffmpeg -y -i /sdcard/videokit/short.mp4 -vf crop=100:100:0:0 -s 320x240 -r 15 -aspect 3: 4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/videokit/out.mp4

` 视频裁剪命令以及该命令的编写位置。

我已经尝试过了(用于连接只是为了检查如何使用 ffmpeg 命令)

public class MainActivity extends Activity {
private static native int logFileInfo(String[] args);
String pathOut = "/storage/sdcard/12.mp3";
String pathInM = "/storage/sdcard/23.mp3";
String pathIn = "/storage/sdcard/out.mp3";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String[] args = {"ffmpeg",  "-i", "concat:", pathOut, "|",pathInM ,pathIn};
    logFileInfo(args);
    //logFileInfo("/storage/sdcard/12.mp3");
}

static
{
    System.loadLibrary("mylib");
}

但我不知道在 mylib.c 中写什么来执行 this.somebody 请帮助

【问题讨论】:

    标签: android ffmpeg


    【解决方案1】:

    您应该能够使用 ProcessBuilder 生成一个运行 ffmpeg 的进程:

    Process ffmpeg = new ProcessBuilder().command(args).start()
    if (ffmpeg.waitFor() != 0) {
        // handle failure case
    }
    

    (上面的代码阻塞当前线程,直到 ffmpeg 完成。)

    但是,我认为您的更大问题是必须为您所针对的每个设备交叉编译和分发 ffmpeg 版本。

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2020-04-26
      • 2017-11-14
      相关资源
      最近更新 更多