我正在使用以下命令在视频中添加复古效果。
String[] ffmpegCommand = {"/data/data/com.mobvcasting.mjpegffmpeg/ffmpeg", "-r", ""+p.getPreviewFrameRate(), "-b", "1000000", "-vcodec", "mjpeg", "-i", Environment.getExternalStorageDirectory().getPath() + "/com.mobvcasting.mjpegffmpeg/frame_%05d.jpg","-vcodec", "mjpeg", "-acodec","libfaac","-vf","curves=vintage", "-qscale", "3", "-async", "1", "-y",Environment.getExternalStorageDirectory().getPath() + "/com.mobvcasting.mjpegffmpeg/video.mp4"};
ffmpegProcess = new ProcessBuilder(ffmpegCommand).redirectErrorStream(true).start();
BufferedReader reader = new BufferedReader(new InputStreamReader(ffmpegProcess.getInputStream()));
但我收到以下错误:
09-02 13:42:57.343: V/MJPEG_FFMPEG(2346): Finished Writing Frame
09-02 13:42:57.351: V/MJPEG_FFMPEG(2346): Recording Stopped
09-02 13:42:57.414: V/MJPEG_FFMPEG(2346): ***Starting FFMPEG***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): ***FFmpeg version UNKNOWN, Copyright (c) 2000-2010 the FFmpeg developers***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** built on Jul 28 2011 16:47:07 with gcc 4.4.3***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** configuration: --target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm --sysroot=/Developer/android-ndk-r5b//platforms/android-3/arch-arm --soname-prefix=/data/data/com.mobvcasting.mjpegffmpeg/ --enable-shared --disable-symver --enable-small --optimization-flags=-O2 --enable-encoder=mpeg2video --enable-encoder=nellymoser --enable-protocol=file --prefix=../build/ffmpeg/armeabi --extra-cflags= --extra-ldflags=***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavutil 50.34. 0 / 50.34. 0***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavcore 0.16. 0 / 0.16. 0***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavcodec 52.99. 1 / 52.99. 1***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavformat 52.88. 0 / 52.88. 0***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavdevice 52. 2. 2 / 52. 2. 2***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libavfilter 1.69. 0 / 1.69. 0***
09-02 13:42:57.460: V/MJPEG_FFMPEG(2346): *** libswscale 0.12. 0 / 0.12. 0***
09-02 13:42:57.648: V/MJPEG_FFMPEG(2346): ***Input #0, image2, from '/mnt/sdcard/com.mobvcasting.mjpegffmpeg/frame_%05d.jpg':***
09-02 13:42:57.656: V/MJPEG_FFMPEG(2346): *** Duration: 00:00:01.83, start: 0.000000, bitrate: N/A***
09-02 13:42:57.656: V/MJPEG_FFMPEG(2346): *** Stream #0.0: Video: mjpeg, yuvj420p, 320x240 [PAR 1:1 DAR 4:3], 30 fps, 30 tbr, 30 tbn, 30 tbc***
09-02 13:42:57.695: V/MJPEG_FFMPEG(2346): ***[buffer @ 0x5d110] w:320 h:240 pixfmt:yuvj420p***
09-02 13:42:57.695: V/MJPEG_FFMPEG(2346): ***No such filter: 'curves'***
09-02 13:42:57.695: V/MJPEG_FFMPEG(2346): ***Error opening filters!***
09-02 13:42:57.695: V/MJPEG_FFMPEG(2346): ***Ending FFMPEG***
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
您的ffmpeg版本太旧,无法支持带有预设的curves
视频过滤器。 2013-03-25(lavfi/curves: add presets support)将libavfilter添加到版本3.48.103中添加了预设。
您需要更新ffmpeg。