【问题标题】:How to use ffmpeg commands on Android如何在 Android 上使用 ffmpeg 命令
【发布时间】:2013-09-24 22:33:57
【问题描述】:

我和here 有同样的疑问。我想在 Android 上执行这个命令:

ffmpeg -i input.mp4 -s 480x320 output.mp4

所以我在this tutorial 之后使用 NDK 编译了所有库,我只需要添加这段代码(我想在我创建的 .c 文件中)但我不知道如何......我会如果可能的话,感谢任何帮助和任何例子!

【问题讨论】:

    标签: android video android-ndk ffmpeg native


    【解决方案1】:

    您可能正在寻找systempopen。关于这个主题有很多现有的问题。

    【讨论】:

    • 感谢您的回答。我正在尝试在 Android 上执行此命令,所以我认为这些链接对我没有帮助。我有一个 C 文件代码,我知道我必须在那里编写 ffmpeg 操作,但我不知道如何(我有点菜鸟,我认为我有很多空白......)请阅读要点“2 " 的链接 (roman10.net/…) 并告诉我该怎么做...
    • 当您为 Android 编写本机 C 代码时,您可以访问我提到的函数。如果您按照链接到的教程的建议链接 libffmpeg 库,那么您应该能够调用该库中的函数,而不是将 ffmpeg 作为 shell 命令执行。在这种情况下,我建议发布一个单独的(并重新措辞)问题。祝你好运!
    • 好吧...我想我开始明白了...谢谢!!
    • 你好@GonzaloSolera 自从过去两天以来,我一直被困在同一点上。我使用本教程 link 为 NDK 和 FFmpeg 编译了所有库。我什至测试了一些运行良好的 JNI 小代码。现在我必须运行像你这样的命令 ffmpeg -i input.mp4 -s 480x320 output.mp4 我能想到的是,如果我创建一个 .c 类并在其中做一些事情,我可以获得一些结果。但是我无法弄清楚如何执行每个人都在谈论的单行命令。你能建议我采取什么方法吗?谢谢
    • 嗨@aNoviceGuy,我知道这很困惑,我花了很多时间才找到解决方案。在 Android 上使用 FFmpeg 有两种方法。第一个是您尝试的方式:使用 ndk 编译 DINAMICALLY ffmpeg。问题是如果你使用这种方式你不能使用命令行,你需要使用JNI等。但是第二种方式(我现在使用的是因为很容易)是静态编译FFmpeg .这意味着您将只获得一个可执行文件,并从您的 java 文件(而不是从 .c 文件)中调用它。这很容易,我建议你这样做。我可以链接我的 ffmpeg 文件。
    【解决方案2】:

    您正在将此命令用于 FFmpeg4 库,以在 android 中获得更好的视频质量和最小的视频压缩。我已经在我的项目中使用它工作成功。

    --> ffmpeg -i 你的输入视频路径.mp4 -s 480x320 -acodec mp2 -strict -2 -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 你的输出视频路径.mp4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 2012-09-08
      相关资源
      最近更新 更多