skip to Main Content

I’m trying to capture Vido/Audio from my Android mobile using FFmpeg.
Tried the below commands and the recorded clip has nothing in it, it’s just a dark black screen with no audio/video.

Actually, I wanted to recode the audio from Android Mobile.
Any Idea what’s wrong with this command?

Given all Android permission for the microphone & camera.

Lib used : ffmpeg_kit_flutter

Command:

FFmpegKit.execute('-y -f android_camera -i 0:0 -r 30 -c:v mpeg4 -f mp4 "/storage/emulated/0/Download/androidvideo.mp4"');

FFmpegKit.execute('-y -f android_camera -i 0:0 -r 30 -pixel_format bgr0 "/storage/emulated/0/Download/androidvideo.mp4"');

This command records video but no audio in it

FFmpegKit.execute('-video_size hd720 -f android_camera -camera_index 1 -i anything -r 10 -t 00:00:15 "$dir/androidvideo.mp4”');

Response

I/flutter (22881): Loading ffmpeg-kit-flutter.
D/ffmpeg-kit-flutter(22881): FFmpegKitFlutterPlugin com.arthenica.ffmpegkit.flutter.FFmpegKitFlutterPlugin@7f3db78 started listening to events on io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler$EventSinkImplementation@518a6b1.
I/flutter (22881): Loaded ffmpeg-kit-flutter-android-https-arm64-v8a-5.1.0.
D/VendorTagDescriptor(22881): addVendorDescriptor: vendor tag id 3854507339 added
W/MapperHal(22881): buffer descriptor with invalid usage bits 0x202000
D/ViewRootImpl@53a7452[FlutterFragmentActivity](22881): ViewPostIme pointer 1
W/ACameraCaptureSession(22881): Device is closed but session 0 is not notified
I/flutter (22881): logs:ffmpeg version n5.1.2
I/flutter (22881): logs: Copyright (c) 2000-2022 the FFmpeg developers
I/flutter (22881): logs:
I/flutter (22881): logs:  built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
I/flutter (22881): logs:  configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --
I/flutter (22881): logs:  libavutil      57. 28.100 / 57. 28.100
I/flutter (22881): logs:  libavcodec     59. 37.100 / 59. 37.100
I/flutter (22881): logs:  libavformat    59. 27.100 / 59. 27.100
I/flutter (22881): logs:  libavdevice    59.  7.100 / 59.  7.100
I/flutter (22881): logs:  libavfilter     8. 44.100 /  8. 44.100
I/flutter (22881): logs:  libswscale      6.  7.100 /  6.  7.100
I/flutter (22881): logs:  libswresample   4.  7.100 /  4.  7.100
I/flutter (22881): logs:[android_camera @ 0x7450bb2f80] Requested video_size 0x0 not available, falling back to 4032x3024
I/flutter (22881): logs:Input #0, android_camera, from '0:0':
I/flutter (22881): logs:  Duration: 
I/flutter (22881): logs:N/A
I/flutter (22881): logs:, start: 
I/flutter (22881): logs:299109.760553
I/flutter (22881): logs:, bitrate: 
I/flutter (22881): logs:N/A
I/flutter (22881): logs:
I/flutter (22881): logs:  Stream #0:0
I/flutter (22881): logs:: Video: rawvideo (NV21 / 0x3132564E), nv21, 4032x3024
I/flutter (22881): logs:, 
I/flutter (22881): logs:30 fps, 
I/flutter (22881): logs:30 tbr, 
I/flutter (22881): logs:1000000000.00 tbn
I/flutter (22881): logs:
I/flutter (22881): logs:    Side data:
I/flutter (22881): logs:      
I/flutter (22881): logs:displaymatrix: rotation of -90.00 degrees
I/flutter (22881): logs:
I/flutter (22881): logs:Stream mapping:
I/flutter (22881): logs:  Stream #0:0 -> #0:0
I/flutter (22881): logs: (rawvideo (native) -> mpeg4 (native))
I/flutter (22881): logs:
I/flutter (22881): logs:Press [q] to stop, [?] for help
I/flutter (22881): logs:Output #0, mp4, to '/storage/emulated/0/Download/androidvideo.mp4':
I/flutter (22881): logs:  Metadata:
I/flutter (22881): logs:    encoder         : 
I/flutter (22881): logs:Lavf59.27.100
I/flutter (22881): logs:
I/flutter (22881): logs:  Stream #0:0
I/flutter (22881): logs:: Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, progressive), 3024x4032, q=2-31, 200 kb/s
I/flutter (22881): logs:, 
I/flutter (22881): logs:30 fps, 
I/flutter (22881): logs:15360 tbn
I/flutter (22881): logs:
I/flutter (22881): logs:    Metadata:
I/flutter (22881): logs:      encoder         : 
I/flutter (22881): logs:Lavc59.37.100 mpeg4
I/flutter (22881): logs:
I/flutter (22881): logs:    Side data:
I/flutter (22881): logs:      
I/flutter (22881): logs:cpb: 
I/flutter (22881): logs:bitrate max/min/avg: 0/0/200000 buffer size: 0 
I/flutter (22881): logs:vbv_delay: N/A
I/flutter (22881): logs:
I/flutter (22881): logs:      
I/flutter (22881): logs:displaymatrix: rotation of -0.00 degrees
I/flutter (22881): logs:
I/flutter (22881): logs:frame=    1 fps=0.0 q=3.4 size=       0kB time=00:00:00.00 bitrate=5415.4kbits/s speed=32.5x    
I/flutter (22881): logs:frame=    2 fps=0.0 q=2.0 size=       0kB time=00:00:00.03 bitrate=  10.5kbits/s speed=0.0475x    
I/flutter (22881): logs:frame=    9 fps=6.8 q=10.9 size=     256kB time=00:00:00.26 bitrate=7863.7kbits/s dup=5 drop=0 speed=0.202x    
I/flutter (22881): logs:frame=   13 fps=6.6 q=22.7 size=     512kB time=00:00:00.40 bitrate=10484.9kbits/s dup=7 drop=0 speed=0.203x    
I/flutter (22881): logs:frame=   28 fps=8.4 q=31.0 size=     512kB time=00:00:00.90 bitrate=4660.4kbits/s dup=20 drop=0 speed=0.269x    
I/flutter (22881): logs:frame=   55 fps= 11 q=31.0 size=    1024kB time=00:00:01.80 bitrate=4660.4kbits/s dup=45 drop=0 speed=0.368x    
I/flutter (22881): logs:frame=   60 fps=9.8 q=31.0 size=    1280kB time=00:00:01.96 bitrate=5331.7kbits/s dup=49 drop=0 speed=0.321x    
I/flutter (22881): logs:frame=   73 fps=9.4 q=31.0 Lsize=    1500kB time=00:00:02.40 bitrate=5121.4kbits/s dup=61 drop=0 speed=0.309x    
I/flutter (22881): logs:video:1499kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.079011%
I/flutter (22881): logs:frame=   73 fps=9.4 q=31.0 Lsize=N/A time=00:00:02.40 bitrate=N/A dup=61 drop=0 speed=0.309x    
I/flutter (22881): logs:video:1499kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
I/flutter (22881): logs:[android_camera @ 0x7450bb2f80] Android camera capture session was closed.
I/flutter (22881): logs:Exiting normally, received signal 2.
I/flutter (22881): output:ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
I/flutter (22881):   built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
I/flutter (22881):   configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-s
I/flutter (22881): failStackTrace:null
I/flutter (22881): result code:255

2

Answers


  1. The package has been updated so you must run the command asynchronously, using async you can find new examples in a new version of package docs ffmpeg_kit_flutter, like this snippet I found:

    import 'package:ffmpeg_kit_flutter/ffmpeg_kit.dart';
    
    FFmpegKit.execute('-i file1.mp4 -c:v mpeg4 file2.mp4').then((session) async {
      final returnCode = await session.getReturnCode();
    
      if (ReturnCode.isSuccess(returnCode)) {
    
        // SUCCESS
    
      } else if (ReturnCode.isCancel(returnCode)) {
    
        // CANCEL
    
      } else {
    
        // ERROR
    
      }
    });
    

    If my answer helps you don’t forget to vote 🙏️

    Login or Signup to reply.
  2. You can use this package to record audio and save it

    Audo waveforms

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search