首页 > 解决方案 > 如何转换视频并以合理的处理时间导出新文件

问题描述

在我的 Android 应用程序中,我需要对 mp4 视频应用一些转换(缩放/裁剪)。我尝试使用 FFMPEG 库,但执行时间非常慢(平均速度 1 倍),因为它需要在使用过滤时重新编码视频。这是我使用的命令

-y -ss ${startTimeString} -i ${inputPath} -t ${durationTimeString} -vf "scale='min(720,iw)':'min(1280,ih)'" -preset ultrafast ${outPath}

处理一个 15 分钟的视频大约需要 15 分钟。这对我的用户来说是无法忍受的。

我需要一个解决方案来应用我的转换,而无需重新编码视频。还有哪些其他解决方案可以达到我的期望?

请注意,在 iOS 上,我仅通过对视频层应用转换(因此无需任何重新编码)就设法使用本机 AVFoundation 库来做到这一点,在 Android 上是否有任何等价物?

仅供参考,这是 FFMPEG 堆栈跟踪

    I/mobile-ffmpeg: Loading mobile-ffmpeg.
I/Choreographer: Skipped 264 frames!  The application may be doing too much work on its main thread.
I/OpenGLRenderer: Davey! duration=4413ms; Flags=0, IntendedVsync=12249774698887, Vsync=12254174698711, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=12254182592086, AnimationStart=12254182609837, PerformTraversalsStart=12254183464633, DrawStart=12254183595751, SyncQueued=12254185475418, SyncStart=12254185925872, IssueDrawCommandsStart=12254185967779, SwapBuffers=12254187013958, FrameCompleted=12254188427920, DequeueBufferDuration=499000, QueueBufferDuration=378000, 
I/mobile-ffmpeg: Loaded mobile-ffmpeg-min-gpl-x86-4.4-lts-20210207.
D/mobile-ffmpeg: Callback thread started.
I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
     Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg:   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:   configuration: --cross-prefix=i686-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-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/storage/light/projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-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-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --disable-sdl2 --enable-zlib --enable-mediacodec
      libavutil      56. 55.100 / 56. 55.100
      libavcodec     58. 96.100 / 58. 96.100
I/mobile-ffmpeg:   libavformat    58. 48.100 / 58. 48.100
      libavdevice    58. 11.101 / 58. 11.101
      libavfilter     7. 87.100 /  7. 87.100
I/mobile-ffmpeg:   libswscale      5.  8.100 /  5.  8.100
      libswresample   3.  8.100 /  3.  8.100
I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
     Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg:   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:   configuration: --cross-prefix=i686-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-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/storage/light/projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-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-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --disable-sdl2 --enable-zlib --enable-mediacodec
      libavutil      56. 55.100 / 56. 55.100
      libavcodec     58. 96.100 / 58. 96.100
I/mobile-ffmpeg:   libavformat    58. 48.100 / 58. 48.100
      libavdevice    58. 11.101 / 58. 11.101
      libavfilter     7. 87.100 /  7. 87.100
      libswscale      5.  8.100 /  5.  8.100
      libswresample   3.  8.100 /  3.  8.100
I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:///data/user/0/com.myapp/cache/videos-clip/8ed5e6dd7f2191f219776916ee7f08e5':
      Metadata:
I/mobile-ffmpeg:     major_brand     : 
    isom
        minor_version   : 
    512
I/mobile-ffmpeg:     compatible_brands: 
    isomiso2avc1mp41
        encoder         : 
    Lavf58.20.100
      Duration: 
I/mobile-ffmpeg: 00:14:54.94
    , start: 
    0.000000
I/mobile-ffmpeg: , bitrate: 
    2817 kb/s
        Stream #0:0
    (und)
I/mobile-ffmpeg: : Video: h264 (avc1 / 0x31637661), yuv420p, 1080x1920, 2682 kb/s
    , 
    25 fps, 
    25 tbr, 
    12800 tbn, 
I/mobile-ffmpeg: 50 tbc
     (default)
I/mobile-ffmpeg:     Metadata:
          handler_name    : 
I/mobile-ffmpeg: Core Media Video
        Stream #0:1
    (und)
    : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s
     (default)
        Metadata:
I/mobile-ffmpeg:       handler_name    : 
    Core Media Audio
    Stream mapping:
      Stream #0:0 -> #0:0
     (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1
     (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:///data/user/0/com.myapp/cache/videos-clip/8ed5e6dd7f2191f219776916ee7f08e5':
      Metadata:
I/mobile-ffmpeg:     major_brand     : 
    isom
        minor_version   : 
    512
        compatible_brands: 
    isomiso2avc1mp41
I/mobile-ffmpeg:     encoder         : 
    Lavf58.20.100
      Duration: 
I/mobile-ffmpeg: 00:14:54.94
    , start: 
    0.000000
    , bitrate: 
    2817 kb/s
I/mobile-ffmpeg:     Stream #0:0
    (und)
    : Video: h264 (avc1 / 0x31637661), yuv420p, 1080x1920, 2682 kb/s
    , 
    25 fps, 
    25 tbr, 
    12800 tbn, 
    50 tbc
     (default)
I/mobile-ffmpeg:     Metadata:
          handler_name    : 
    Core Media Video
        Stream #0:1
    (und)
I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s
     (default)
        Metadata:
          handler_name    : 
    Core Media Audio
    Stream mapping:
      Stream #0:0 -> #0:0
     (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1
I/mobile-ffmpeg:  (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0xbe5ef7e0] sws_param option is deprecated and ignored
W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0xbfb47260] sws_param option is deprecated and ignored
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] using cpu capabilities: none!
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, mp4, to '/storage/emulated/0/Android/data/com.myapp/files/Movies/clipVideo42414368565467115200.mp4':
I/mobile-ffmpeg:   Metadata:
I/mobile-ffmpeg:     major_brand     : 
    isom
        minor_version   : 
    512
I/mobile-ffmpeg:     compatible_brands: 
    isomiso2avc1mp41
I/mobile-ffmpeg:     encoder         : 
    Lavf58.48.100
I/mobile-ffmpeg:     Stream #0:0
    (und)
    : Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x1280, q=-1--1
    , 
    25 fps, 
I/mobile-ffmpeg: 12800 tbn, 
    25 tbc
     (default)
        Metadata:
          handler_name    : 
    Core Media Video
          encoder         : 
    Lavc58.96.100 libx264
        Side data:
          
    cpb: 
I/mobile-ffmpeg: bitrate max/min/avg: 0/0/0 buffer size: 0 
    vbv_delay: N/A
I/mobile-ffmpeg:     Stream #0:1
I/mobile-ffmpeg: (und)
I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
     (default)
I/mobile-ffmpeg:     Metadata:
          handler_name    : 
I/mobile-ffmpeg: Core Media Audio
I/mobile-ffmpeg:       encoder         : 
    Lavc58.96.100 aac
    [libx264 @ 0xb9bde000] using cpu capabilities: none!
I/mobile-ffmpeg: [libx264 @ 0xb9bde000] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
I/mobile-ffmpeg: [libx264 @ 0xb9bde000] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
I/mobile-ffmpeg: Output #0, mp4, to '/storage/emulated/0/Android/data/com.myapp/files/Movies/clipVideo44177005536261563226.mp4':
      Metadata:
        major_brand     : 
    isom
        minor_version   : 
    512
        compatible_brands: 
    isomiso2avc1mp41
        encoder         : 
    Lavf58.48.100
        Stream #0:0
    (und)
    : Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x1280, q=-1--1
    , 
    25 fps, 
    12800 tbn, 
    25 tbc
     (default)
        Metadata:
          handler_name    : 
    Core Media Video
          encoder         : 
I/mobile-ffmpeg: Lavc58.96.100 libx264
        Side data:
          
    cpb: 
I/mobile-ffmpeg: bitrate max/min/avg: 0/0/0 buffer size: 0 
    vbv_delay: N/A
        Stream #0:1
    (und)
    : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
     (default)
        Metadata:
          handler_name    : 
    Core Media Audio
          encoder         : 
    Lavc58.96.100 aac
I/mobile-ffmpeg: frame=    6 fps=0.0 q=0.0 size=       0kB time=00:00:00.34 bitrate=   1.1kbits/s speed=0.628x    
I/mobile-ffmpeg: frame=   14 fps= 13 q=21.0 size=       0kB time=00:00:00.67 bitrate=   0.6kbits/s speed=0.641x    
I/mobile-ffmpeg: frame=   30 fps= 19 q=19.0 size=     256kB time=00:00:01.30 bitrate=1613.1kbits/s speed=0.82x    
I/mobile-ffmpeg: frame=   44 fps= 21 q=21.0 size=     512kB time=00:00:01.85 bitrate=2258.1kbits/s speed=0.89x    
I/mobile-ffmpeg: frame=   54 fps= 21 q=20.0 size=     768kB time=00:00:02.27 bitrate=2765.0kbits/s speed=0.88x    
I/mobile-ffmpeg: frame=   68 fps= 22 q=22.0 size=    1024kB time=00:00:02.83 bitrate=2961.3kbits/s speed=0.916x    
I/mobile-ffmpeg: frame=   88 fps= 24 q=22.0 size=    1536kB time=00:00:03.62 bitrate=3473.8kbits/s speed=   1x    
I/mobile-ffmpeg: frame=  103 fps= 25 q=22.0 size=    1792kB time=00:00:04.22 bitrate=3473.8kbits/s speed=1.02x    
I/mobile-ffmpeg: frame=  119 fps= 26 q=20.0 size=    2048kB time=00:00:04.87 bitrate=3440.7kbits/s speed=1.04x    
I/mobile-ffmpeg: frame=  127 fps= 25 q=19.0 size=    2304kB time=00:00:05.17 bitrate=3645.1kbits/s speed=   1x    
I/mobile-ffmpeg: frame=  142 fps= 25 q=21.0 size=    2560kB time=00:00:05.78 bitrate=3627.2kbits/s speed=1.02x    
I/mobile-ffmpeg: frame=  161 fps= 26 q=20.0 size=    2816kB time=00:00:06.54 bitrate=3523.1kbits/s speed=1.06x    
I/mobile-ffmpeg: frame=  177 fps= 26 q=22.0 size=    3072kB time=00:00:07.19 bitrate=3496.2kbits/s speed=1.07x    
I/mobile-ffmpeg: frame=  184 fps= 26 q=22.0 size=    3328kB time=00:00:07.47 bitrate=3646.4kbits/s speed=1.04x    
I/mobile-ffmpeg: frame=  196 fps= 25 q=22.0 size=    3584kB time=00:00:07.94 bitrate=3697.2kbits/s speed=1.03x    
I/mobile-ffmpeg: frame=  202 fps= 24 q=22.0 size=    3584kB time=00:00:08.19 bitrate=3582.0kbits/s speed=0.994x    
I/mobile-ffmpeg: frame=  209 fps= 24 q=20.0 size=    3840kB time=00:00:08.47 bitrate=3711.7kbits/s speed=0.968x    
I/mobile-ffmpeg: frame=  218 fps= 24 q=20.0 size=    3840kB time=00:00:08.82 bitrate=3565.2kbits/s speed=0.953x    
I/mobile-ffmpeg: frame=  219 fps= 22 q=20.0 size=    3840kB time=00:00:08.89 bitrate=3537.3kbits/s speed=0.912x    
I/mobile-ffmpeg: frame=  235 fps= 23 q=20.0 size=    4096kB time=00:00:09.49 bitrate=3533.2kbits/s speed=0.922x    
I/mobile-ffmpeg: frame=  236 fps= 22 q=21.0 size=    4096kB time=00:00:09.54 bitrate=3516.0kbits/s speed=0.884x    
I/mobile-ffmpeg: frame=  246 fps= 22 q=21.0 size=    4352kB time=00:00:09.93 bitrate=3587.4kbits/s speed=0.878x    
I/mobile-ffmpeg: frame=  255 fps= 21 q=23.0 size=    4352kB time=00:00:10.30 bitrate=3458.1kbits/s speed=0.869x    
I/mobile-ffmpeg: frame=  262 fps= 21 q=21.0 size=    4608kB time=00:00:10.58 bitrate=3565.2kbits/s speed=0.856x    
I/mobile-ffmpeg: frame=  268 fps= 21 q=21.0 size=    4608kB time=00:00:10.82 bitrate=3488.7kbits/s speed=0.839x    
I/mobile-ffmpeg: frame=  277 fps= 21 q=20.0 size=    4864kB time=00:00:11.19 bitrate=3560.2kbits/s speed=0.835x    
I/mobile-ffmpeg: frame=  285 fps= 20 q=22.0 size=    4864kB time=00:00:11.51 bitrate=3459.7kbits/s speed=0.828x    
I/mobile-ffmpeg: frame=  291 fps= 20 q=22.0 size=    5120kB time=00:00:11.74 bitrate=3569.9kbits/s speed=0.813x    
I/mobile-ffmpeg: frame=  311 fps= 21 q=20.0 size=    5376kB time=00:00:12.53 bitrate=3512.4kbits/s speed=0.839x    
I/mobile-ffmpeg: frame=  314 fps= 20 q=19.0 size=    5376kB time=00:00:12.67 bitrate=3473.8kbits/s speed=0.819x    
I/mobile-ffmpeg: frame=  328 fps= 21 q=21.0 size=    5632kB time=00:00:13.23 bitrate=3485.9kbits/s speed=0.828x    
I/mobile-ffmpeg: frame=  351 fps= 21 q=19.0 size=    6144kB time=00:00:14.14 bitrate=3559.3kbits/s speed=0.858x    
I/mobile-ffmpeg: frame=  363 fps= 21 q=20.0 size=    6144kB time=00:00:14.62 bitrate=3440.7kbits/s speed=0.861x    
I/mobile-ffmpeg: frame=  368 fps= 21 q=22.0 size=    6400kB time=00:00:14.83 bitrate=3533.5kbits/s speed=0.847x    
I/mobile-ffmpeg: frame=  383 fps= 21 q=20.0 size=    6656kB time=00:00:15.41 bitrate=3536.5kbits/s speed=0.856x    
I/mobile-ffmpeg: frame=  402 fps= 22 q=19.0 size=    6912kB time=00:00:16.18 bitrate=3498.7kbits/s speed=0.874x    
I/mobile-ffmpeg: frame=  410 fps= 22 q=18.0 size=    6912kB time=00:00:16.50 bitrate=3429.8kbits/s speed=0.866x    
I/mobile-ffmpeg: frame=  424 fps= 22 q=20.0 size=    7168kB time=00:00:17.06 bitrate=3440.7kbits/s speed=0.871x    
I/mobile-ffmpeg: frame=  436 fps= 22 q=20.0 size=    7424kB time=00:00:17.55 bitrate=3464.6kbits/s speed=0.873x    
I/mobile-ffmpeg: frame=  458 fps= 22 q=20.0 size=    7680kB time=00:00:18.43 bitrate=3412.5kbits/s speed=0.895x    
I/mobile-ffmpeg: frame=  461 fps= 22 q=21.0 size=    7680kB time=00:00:18.55 bitrate=3391.1kbits/s speed=0.878x    
I/mobile-ffmpeg: frame=  484 fps= 22 q=20.0 size=    8192kB time=00:00:19.45 bitrate=3448.9kbits/s speed= 0.9x    
I/mobile-ffmpeg: frame=  489 fps= 22 q=20.0 size=    8192kB time=00:00:19.66 bitrate=3412.2kbits/s speed=0.888x    
I/mobile-ffmpeg: frame=  503 fps= 22 q=17.0 size=    8448kB time=00:00:20.22 bitrate=3421.9kbits/s speed=0.893x    
I/mobile-ffmpeg: frame=  524 fps= 23 q=20.0 size=    8960kB time=00:00:21.06 bitrate=3485.2kbits/s speed=0.909x    
I/mobile-ffmpeg: frame=  537 fps= 23 q=19.0 size=    8960kB time=00:00:21.59 bitrate=3399.0kbits/s speed=0.912x    
I/mobile-ffmpeg: frame=  548 fps= 23 q=20.0 size=    9216kB time=00:00:22.03 bitrate=3426.2kbits/s speed=0.91x    
I/mobile-ffmpeg: frame=  554 fps= 22 q=20.0 size=    9216kB time=00:00:22.26 bitrate=3390.4kbits/s speed=0.901x    
I/mobile-ffmpeg: frame=  566 fps= 22 q=21.0 size=    9472kB time=00:00:22.75 bitrate=3409.9kbits/s speed=0.902x    
I/mobile-ffmpeg: frame=  585 fps= 23 q=19.0 size=    9728kB time=00:00:23.49 bitrate=3391.4kbits/s speed=0.913x    
I/mobile-ffmpeg: frame=  598 fps= 23 q=20.0 size=    9984kB time=00:00:24.03 bitrate=3403.3kbits/s speed=0.916x    
I/mobile-ffmpeg: frame=  606 fps= 23 q=20.0 size=    9984kB time=00:00:24.35 bitrate=3357.8kbits/s speed=0.91x    
I/mobile-ffmpeg: frame=  624 fps= 23 q=20.0 size=   10496kB time=00:00:25.07 bitrate=3428.7kbits/s speed=0.92x    
I/mobile-ffmpeg: frame=  631 fps= 23 q=20.0 size=   10496kB time=00:00:25.35 bitrate=3391.0kbits/s speed=0.912x    
I/mobile-ffmpeg: frame=  649 fps= 23 q=20.0 size=   10752kB time=00:00:26.07 bitrate=3377.8kbits/s speed=0.922x    
I/mobile-ffmpeg: frame=  654 fps= 23 q=21.0 size=   10752kB time=00:00:26.26 bitrate=3354.0kbits/s speed=0.912x    
I/mobile-ffmpeg: frame=  674 fps= 23 q=20.0 size=   11264kB time=00:00:27.07 bitrate=3408.2kbits/s speed=0.924x    
I/mobile-ffmpeg: frame=  688 fps= 23 q=22.0 size=   11520kB time=00:00:27.63   

标签: androidvideoffmpeg

解决方案


我发现的唯一替代方法是使用 MediaCoder 库,但使用起来相当粗糙。我发现为我们处理所有繁重工作的伟大存储库:https ://github.com/MasayukiSuda/Mp4Composer-android 它允许完美缩放 mp4 并测试 1 分钟视频的 7 秒执行时间。所以比 FFMPEG 更好,更接近我的预期。


推荐阅读