【问题标题】:unable to find a suitable output format for 'ffmpeg'无法为“ffmpeg”找到合适的输出格式
【发布时间】:2015-12-19 12:27:44
【问题描述】:

我正在使用ffmpeg android 库。

我正在传递一个ffmpeg 命令,用于将视频格式从.mp4 转换为.avi

ffmpeg -r 20 -i /storage/emulated/0/WisperMedia/WisperVideos/sample.mp4 -b:v 20M /storage/emulated/0/WisperMedia/WisperVideos/output.avi

但是我遇到了类似的错误

    09-23 09:29:41.525: E/Home(31343): FAILED with output : ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
09-23 09:29:41.525: E/Home(31343):   built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
09-23 09:29:41.525: E/Home(31343):   configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --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/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
09-23 09:29:41.525: E/Home(31343):   libavutil      54.  7.100 / 54.  7.100
09-23 09:29:41.525: E/Home(31343):   libavcodec     56.  1.100 / 56.  1.100
09-23 09:29:41.525: E/Home(31343):   libavformat    56.  4.101 / 56.  4.101
09-23 09:29:41.525: E/Home(31343):   libavdevice    56.  0.100 / 56.  0.100
09-23 09:29:41.525: E/Home(31343):   libavfilter     5.  1.100 /  5.  1.100
09-23 09:29:41.525: E/Home(31343):   libswscale      3.  0.100 /  3.  0.100
09-23 09:29:41.525: E/Home(31343):   libswresample   1.  1.100 /  1.  1.100
09-23 09:29:41.525: E/Home(31343):   libpostproc    53.  0.100 / 53.  0.100
09-23 09:29:41.525: E/Home(31343): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/WisperMedia/WisperVideos/sample.mp4':
09-23 09:29:41.525: E/Home(31343):   Metadata:
09-23 09:29:41.525: E/Home(31343):     major_brand     : isom
09-23 09:29:41.525: E/Home(31343):     minor_version   : 0
09-23 09:29:41.525: E/Home(31343):     compatible_brands: isom3gp4
09-23 09:29:41.525: E/Home(31343):     creation_time   : 2015-09-23 03:50:16
09-23 09:29:41.525: E/Home(31343):   Duration: 00:00:01.56, start: 0.000000, bitrate: 14737 kb/s
09-23 09:29:41.525: E/Home(31343):     Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 11819 kb/s, SAR 65536:65536 DAR 16:9, 29.79 fps, 29.92 tbr, 90k tbn, 180k tbc (default)
09-23 09:29:41.525: E/Home(31343):     Metadata:
09-23 09:29:41.525: E/Home(31343):       rotate          : 90
09-23 09:29:41.525: E/Home(31343):       creation_time   : 2015-09-23 03:50:16
09-23 09:29:41.525: E/Home(31343):       handler_name    : VideoHandle
09-23 09:29:41.525: E/Home(31343):     Side data:
09-23 09:29:41.525: E/Home(31343):       displaymatrix: rotation of -90.00 degrees
09-23 09:29:41.525: E/Home(31343):     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
09-23 09:29:41.525: E/Home(31343):     Metadata:
09-23 09:29:41.525: E/Home(31343):       creation_time   : 2015-09-23 03:50:16
09-23 09:29:41.525: E/Home(31343):       handler_name    : SoundHandle
09-23 09:29:41.525: E/Home(31343): [NULL @ 0x41f7f420] Unable to find a suitable output format for 'ffmpeg'
09-23 09:29:41.525: E/Home(31343): ffmpeg: Invalid argument

【问题讨论】:

  • 您确定输出与发布的命令相对应吗?因为日志说它试图读取 PNG 文件:/storage/emulated/0/WisperMedia/WisperImages/Zq3vbi3ZY3ML.png
  • 您是否有机会同时传递多个ffmpeg 命令?仅当您在初始命令上有一个尾随 ffmpeg 时才会发生这种情况,即:ffmpeg -i something -o something ffmpeg ...
  • 没有@aergistal。我没有传递多个 ffmpeg 命令。虽然我会检查
  • 你救了我的命,非常感谢@aergistal。你的提示很有用。实际上,在这个 ffmpeg 库中,我们不必在命令中添加 ffmpeg。它会自动在命令中添加 ffmpeg,所以我必须在没有 ffmpeg 的情况下传递命令。谢谢 。 :)
  • 非常感谢@aergistal,我也不知道不需要ffmpeg!

标签: android video ffmpeg


【解决方案1】:

这类错误通常是由ffmpeg 命令中的意外前导或尾随参数引起的。如果您使用第三方库作为 ffmpeg 的包装器,则必须检查其文档和输出,因为它可能会自动添加参数(例如 ffmpeg 二进制文件的路径)。

在这种特殊情况下,ffmpeg 被视为未知输出。一些可能引发此错误的错误命令包括:​​

  • ffmpeg -i [input] -o [output] ffmpeg ...
  • ffmpeg ffmpeg ...

【讨论】:

  • 对我来说就是这种情况。我正在使用nl.bravobit:android-ffmpeg:1.1.5 库,它会自动附加 ffmpeg。
【解决方案2】:

同样的错误可能表明 ffmpeg 只需要用 -f 标志告诉输出什么格式,因为它无法从输出文件扩展名中推断出来。

ffmpeg -i audio.xxx -f flac audio.flac

【讨论】:

    【解决方案3】:

    就我而言,命令是通过电子邮件发送给我的。

    在下面的参数“-c:a”中,没有破折号,而是一个windows字符!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 2014-07-04
      • 2019-03-24
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多