【问题标题】:ffmpeg-Error splitting the argument list: Option not foundffmpeg-拆分参数列表时出错:找不到选项
【发布时间】:2017-07-20 19:15:48
【问题描述】:

我正在尝试使用 ffmpeg-android-java 执行以下命令

-i /storage/sdcard0/WhatsApp/Media/WhatsApp 视频/VID-20170228-WA0000.mp4 -ss 180 -t 292 -strict -2 -async 1 /storage/sdcard0/Movies/cropper_video_1.mp4

我收到失败消息-

输出失败:ffmpeg 版本 n3.0.1 版权所有 (c) 2000-2016 FFmpeg 开发人员 使用 gcc 4.8 (GCC) 构建 配置:--target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg -config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home /vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags= libavutil 55. 17.103 / 55. 17.103 libavcodec 57. 24.102 / 57. 24.102 libavformat 57. 25.100 / 57. 25.100 libav 设备 57. 0.101 / 57. 0.101 libavfilter 6. 31.100 / 6. 31.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 无法识别的选项 'i /storage/sdcard0/WhatsApp/Media/WhatsApp 视频/VID-20170228-WA0000.mp4 -ss 180 -t 292 -strict -2 -async 1 /storage/sdcard0/Movies/cropper_video_1.mp4'。 拆分参数列表时出错:找不到选项

为什么会出现这个错误,我该如何解决?

【问题讨论】:

  • 在 i 之前好像少了一个破折号:-i /storage....
  • @Mulvya 我正在添加破折号..忘记放在那里..不工作..同样的错误
  • 您的错误日志显示其他情况:Unrecognized option 'i /storage/sdcard0... 也许您的引号和字符串格式不正确。
  • 你能把你的安卓字符串数组放在这里

标签: android video ffmpeg


【解决方案1】:

问题是这里需要的shell命令需要你在空格处分割你的字符串,这样就没有了。

最简单的方法是:-

String ffmpegCmdString = "-y -i /sdcard/Movies/test_video.3gp /sdcard/Movies/test_video.mp4"

String[] splitCmd = ffmpegCmdString.split(" ");

你现在可以传递这个 splitCmd 变量来运行你的命令,它会像一个魅力一样工作。

【讨论】:

    【解决方案2】:

    我遇到了一个非常相似的问题。我给的命令是

    "-y -i /sdcard/Movies/test_video.3gp /sdcard/Movies/test_video.mp4"
    

    我收到以下错误

    无法识别的选项'y -i /sdcard/Movies/test_video.3gp /sdcard/电影/test_video.mp4'。拆分参数列表时出错: 未找到选项

    原因是,我在一个字符串中给出了我的命令。相反,您必须将每个命令分解为自己的字符串并提供一个字符串数组

    val command: List<String> = listOf("-y", "-i", "/sdcard/Movies/test_video.3gp", "/sdcard/Movies/test_video.mp4")
    

    【讨论】:

      【解决方案3】:

      这意味着 ffmpeg 的某些功能在此构建中没有完全实现。 解决方案: 1. 为 Android 的 ffmpeg 创建自定义构建。 2.删除-strict -2 -async 1标志

      【讨论】:

      • 是否有一些教程可以为 ffmpeg 创建自定义构建?删除 e -strict -2 -async 1 not working..same error
      • @Stranger ,我在两年前为 ffmpeg 创建了自定义构建。我使用了这个主题:stackoverflow.com/a/22259969/1979882。我使用 NDK 进行自定义构建。这很困难,恕我直言。但是,现在的 android studio 可以帮助到你。
      • @Stranger,更好的问题stackoverflow.com/questions/36277628/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2021-03-23
      • 2022-12-04
      • 2019-06-12
      • 2015-11-30
      • 2023-01-18
      相关资源
      最近更新 更多