flutterffmpegflutter-video-playermobile-ffmpegflutter-ffmpeg

FFmpeg error while adding watermark: Not overwriting - exiting


I'm implementing a video editing feature on my Flutter App using the Flutter-FFmpeg package, [Adding watermarks on video] specifically, while executing the code I got this error:

E/mobile-ffmpeg( 5731): Not overwriting - exiting
D/flutter-ffmpeg( 5731): FFmpeg exited with rc: 1

Most importantly, the output file cannot be played by the VideoPlayer. And it just LOADS FOREVER, the VideoController Widget shows that the player is buffering. I've tested My VideoPlayer widget, and it works very well on the videos that were not processed.

Here's the code I'm using:

    await FlutterFFmpeg().execute(
        '-i video.mp4 -i logo.png -filter_complex [0:v][1:v]overlay=5:5 -c:a copy -movflags +faststart output.mp4'
    );

A full log of the executing process in case it helps:

D/flutter-ffmpeg( 5731): Running FFmpeg with arguments: [-i, /data/user/0/com.raheyo.cheese/cache/REC5995709221575585296.mp4, -i, /data/user/0/com.raheyo.cheese/cache/e0baa6a8-4d4c-407a-a73e-be4dcf4d08fd.mp4, -filter_complex, [0:v][1:v]overlay=5:5, -c:a, copy, -movflags, +faststart, /data/user/0/com.raheyo.cheese/cache/e0baa6a8-4d4c-407a-a73e-be4dcf4d08fd.mp4].
I/mobile-ffmpeg( 5731): Loading mobile-ffmpeg.
I/mobile-ffmpeg( 5731): Loaded mobile-ffmpeg-full-arm64-v8a-4.4-20200725.
D/mobile-ffmpeg( 5731): Callback thread started.
I/mobile-ffmpeg( 5731): ffmpeg version v4.4-dev-416
I/mobile-ffmpeg( 5731):  Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):   built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I/mobile-ffmpeg( 5731):   configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I/mobile-ffmpeg( 5731):   libavutil      56. 55.100 / 56. 55.100
I/mobile-ffmpeg( 5731):   libavcodec     58. 96.100 / 58. 96.100
I/mobile-ffmpeg( 5731):   libavformat    58. 48.100 / 58. 48.100
I/mobile-ffmpeg( 5731):   libavdevice    58. 11.101 / 58. 11.101
I/mobile-ffmpeg( 5731):   libavfilter     7. 87.100 /  7. 87.100
I/mobile-ffmpeg( 5731):   libswscale      5.  8.100 /  5.  8.100
I/mobile-ffmpeg( 5731):   libswresample   3.  8.100 /  3.  8.100
I/mobile-ffmpeg( 5731): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/com.raheyo.cheese/cache/REC5995709221575585296.mp4':
I/mobile-ffmpeg( 5731):   Metadata:
I/mobile-ffmpeg( 5731):     major_brand     :
I/mobile-ffmpeg( 5731): mp42
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     minor_version   :
I/mobile-ffmpeg( 5731): 0
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     compatible_brands:
I/mobile-ffmpeg( 5731): isommp42
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     creation_time   :
I/mobile-ffmpeg( 5731): 2021-08-06T19:50:53.000000Z
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     com.android.version:
I/mobile-ffmpeg( 5731): 9
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):   Duration:
I/mobile-ffmpeg( 5731): 00:00:01.69
I/mobile-ffmpeg( 5731): , start:
I/mobile-ffmpeg( 5731): 0.000000
I/mobile-ffmpeg( 5731): , bitrate:
I/mobile-ffmpeg( 5731): 12834 kb/s
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Stream #0:0
I/mobile-ffmpeg( 5731): (eng)
I/mobile-ffmpeg( 5731): : Video: h264 (avc1 / 0x31637661), yuvj420p(pc, bt470bg/bt470bg/smpte170m), 1920x1080, 12728 kb/s
I/mobile-ffmpeg( 5731): , SAR 1:1 DAR 16:9
I/mobile-ffmpeg( 5731): ,
I/mobile-ffmpeg( 5731): 20.09 fps,
I/mobile-ffmpeg( 5731): 30 tbr,
I/mobile-ffmpeg( 5731): 90k tbn,
I/mobile-ffmpeg( 5731): 180k tbc
I/mobile-ffmpeg( 5731):  (default)
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Metadata:
I/mobile-ffmpeg( 5731):       rotate          :
I/mobile-ffmpeg( 5731): 90
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):       creation_time   :
I/mobile-ffmpeg( 5731): 2021-08-06T19:50:53.000000Z
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):       handler_name    :
I/mobile-ffmpeg( 5731): VideoHandle
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Side data:
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731): displaymatrix: rotation of -90.00 degrees
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Stream #0:1
I/mobile-ffmpeg( 5731): (eng)
I/mobile-ffmpeg( 5731): : Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s
I/mobile-ffmpeg( 5731):  (default)
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Metadata:
I/mobile-ffmpeg( 5731):       creation_time   :
I/mobile-ffmpeg( 5731): 2021-08-06T19:50:53.000000Z
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):       handler_name    :
I/mobile-ffmpeg( 5731): SoundHandle
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731): Input #1, png_pipe, from '/data/user/0/com.raheyo.cheese/cache/e0baa6a8-4d4c-407a-a73e-be4dcf4d08fd.mp4':
I/mobile-ffmpeg( 5731):   Duration:
I/mobile-ffmpeg( 5731): N/A
I/mobile-ffmpeg( 5731): , bitrate:
I/mobile-ffmpeg( 5731): N/A
I/mobile-ffmpeg( 5731):
I/mobile-ffmpeg( 5731):     Stream #1:0
I/mobile-ffmpeg( 5731): : Video: png, rgba(pc), 393x822
I/mobile-ffmpeg( 5731): ,



 

Solution

  • This happens when target output file already exists. Make sure it is not the same file as the input. Then add -y to force overwrite output in case it already exists.