无法找到合适的输出格式“ffmpeg'

时间:2015-09-22 13:34:56

标签: android video ffmpeg

我正在使用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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

相同的错误可能表明ffmpeg只需使用-f标志来告知要输出哪种格式,因为它无法从输出文件扩展名中推导出来。

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

答案 2 :(得分:0)

对于我来说,命令是通过电子邮件发送给我的。

在以下参数“ -c:a”中,没有破折号,而是Windows字符!