【发布时间】: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!