Skip to content

Movflags and Faststart options produce unusable file #150

@aidik

Description

@aidik

Describe the bug

When running a command with -movflags +faststart there is a second pass after the encode and that ends with an error. FFshare does not register this error and everything seamingly passes successfully, but the output is obviously not working.

[mp4 @ 0xb400007de91c0580] Starting second pass: moving the moov atom to the beginning of the file
Error writing trailer of saf:3.mp4: Bad file descriptor

Settings applied
Settings fully customized.

App Logs
Command:

ffmpeg -y -i VID20250918110024.mp4 -c:a copy -c:v libx264 -crf 23 -preset slower -movflags +faststart FFshareExport.mp4
Output:
ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
  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 --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --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-libdav1d --enable-libkvazaar --enable-libx264 --enable-libxvid --enable-libx265 --enable-libvidstab --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-libzimg --disable-openssl --enable-zlib --enable-mediacodec --enable-gpl
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb400007de91c0300] st: 0 edit list: 1 Missing key frame while searching for timestamp: 2308
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb400007de91c0300] st: 0 edit list 1 Cannot find an index entry before timestamp: 2308.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'saf:2.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2025-09-18T09:00:35.000000Z
    com.android.version: 15
    com.android.capture.fps: 30.000000
    location        : +50.0185+014.4827/
    location-eng    : +50.0185+014.4827/
  Duration: 00:00:10.20, start: 0.000000, bitrate: 15813 kb/s
  Stream #0:0[0x1](eng): Video: hevc (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080, 14850 kb/s, 30.01 fps, 30 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2025-09-18T09:00:35.000000Z
      handler_name    : VideoHandle
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2025-09-18T09:00:35.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libx264 @ 0xb400007ddd9d8c00] using cpu capabilities: ARMv8 NEON
[libx264 @ 0xb400007ddd9d8c00] profile High, level 5.0, 4:2:0, 8-bit
[libx264 @ 0xb400007ddd9d8c00] 264 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=8 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=9 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'saf:3.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    location-eng    : +50.0185+014.4827/
    com.android.version: 15
    com.android.capture.fps: 30.000000
    location        : +50.0185+014.4827/
    encoder         : Lavf59.27.100
  Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, q=2-31, 30 fps, 15360 tbn (default)
    Metadata:
      creation_time   : 2025-09-18T09:00:35.000000Z
      handler_name    : VideoHandle
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2025-09-18T09:00:35.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:01.30 bitrate=   0.3kbits/s speed=8.16x    
frame=   21 fps=0.0 q=0.0 size=       0kB time=00:00:01.83 bitrate=   0.2kbits/s speed=2.69x    
frame=   47 fps= 39 q=0.0 size=       0kB time=00:00:02.66 bitrate=   0.1kbits/s speed=2.24x    
frame=   67 fps= 25 q=0.0 size=       0kB time=00:00:03.52 bitrate=   0.1kbits/s speed= 1.3x    
frame=   80 fps= 24 q=29.0 size=       0kB time=00:00:03.77 bitrate=   0.1kbits/s speed=1.15x    
frame=   87 fps= 23 q=29.0 size=     256kB time=00:00:04.05 bitrate= 517.5kbits/s speed=1.07x    
frame=   96 fps= 22 q=29.0 size=     512kB time=00:00:04.35 bitrate= 963.9kbits/s speed=0.982x    
frame=  105 fps= 21 q=29.0 size=     512kB time=00:00:04.62 bitrate= 906.1kbits/s speed=0.93x    
frame=  114 fps= 21 q=29.0 size=     768kB time=00:00:05.07 bitrate=1239.2kbits/s speed=0.92x    
frame=  126 fps= 20 q=29.0 size=    1024kB time=00:00:05.44 bitrate=1542.1kbits/s speed=0.87x    
frame=  138 fps= 20 q=29.0 size=    1280kB time=00:00:05.73 bitrate=1827.3kbits/s speed=0.834x    
frame=  147 fps= 19 q=29.0 size=    1536kB time=00:00:06.08 bitrate=2069.6kbits/s speed=0.801x    
frame=  155 fps= 19 q=29.0 size=    1792kB time=00:00:06.29 bitrate=2332.7kbits/s speed=0.767x    
frame=  167 fps= 19 q=29.0 size=    2048kB time=00:00:06.80 bitrate=2465.4kbits/s speed=0.768x    
frame=  175 fps= 19 q=29.0 size=    2048kB time=00:00:07.06 bitrate=2376.0kbits/s speed=0.748x    
frame=  187 fps= 18 q=29.0 size=    2304kB time=00:00:07.33 bitrate=2572.0kbits/s speed=0.716x    
frame=  196 fps= 18 q=29.0 size=    2560kB time=00:00:07.65 bitrate=2738.3kbits/s speed=0.712x    
frame=  206 fps= 18 q=29.0 size=    2816kB time=00:00:08.06 bitrate=2860.7kbits/s speed=0.715x    
frame=  213 fps= 18 q=29.0 size=    3072kB time=00:00:08.08 bitrate=3112.6kbits/s speed=0.685x    
frame=  221 fps= 18 q=29.0 size=    3328kB time=00:00:08.49 bitrate=3211.0kbits/s speed=0.682x    
frame=  234 fps= 18 q=29.0 size=    3584kB time=00:00:09.00 bitrate=3261.3kbits/s speed=0.684x    
frame=  246 fps= 18 q=29.0 size=    3840kB time=00:00:09.06 bitrate=3469.6kbits/s speed=0.659x    
frame=  254 fps= 18 q=29.0 size=    4096kB time=00:00:09.60 bitrate=3495.3kbits/s speed=0.668x    
frame=  264 fps= 18 q=29.0 size=    4352kB time=00:00:10.11 bitrate=3525.7kbits/s speed=0.679x    
frame=  275 fps= 18 q=29.0 size=    4608kB time=00:00:10.19 bitrate=3701.9kbits/s speed=0.652x    
frame=  288 fps= 18 q=29.0 size=    4864kB time=00:00:10.19 bitrate=3907.5kbits/s speed=0.621x    
frame=  298 fps= 18 q=29.0 size=    5120kB time=00:00:10.19 bitrate=4113.2kbits/s speed=0.602x    
[mp4 @ 0xb400007de91c0580] Starting second pass: moving the moov atom to the beginning of the file
Error writing trailer of saf:3.mp4: Bad file descriptor
frame=  298 fps= 14 q=-1.0 Lsize=    7715kB time=00:00:10.19 bitrate=6197.9kbits/s speed=0.488x    
video:7396kB audio:319kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000620%
frame=  298 fps= 14 q=-1.0 Lsize=N/A time=00:00:10.19 bitrate=N/A speed=0.488x    
video:7396kB audio:319kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0xb400007ddd9d8c00] frame I:2     Avg QP:22.45  size:228514
[libx264 @ 0xb400007ddd9d8c00] frame P:93    Avg QP:23.90  size: 59087
[libx264 @ 0xb400007ddd9d8c00] frame B:203   Avg QP:29.56  size:  7985
[libx264 @ 0xb400007ddd9d8c00] consecutive B-frames:  2.7% 14.1% 16.1% 67.1%
[libx264 @ 0xb400007ddd9d8c00] mb I  I16..4:  0.1% 91.7%  8.2%
[libx264 @ 0xb400007ddd9d8c00] mb P  I16..4:  0.0%  2.3%  0.2%  P16..4: 51.8% 15.9% 15.3%  0.1%  0.0%    skip:14.4%
[libx264 @ 0xb400007ddd9d8c00] mb B  I16..4:  0.0%  0.1%  0.0%  B16..8: 34.9%  2.1%  0.8%  direct: 2.0%  skip:60.2%  L0:31.4% L1:64.6% BI: 4.0%
[libx264 @ 0xb400007ddd9d8c00] 8x8 transform intra:90.8% inter:67.0%
[libx264 @ 0xb400007ddd9d8c00] direct mvs  spatial:97.0% temporal:3.0%
[libx264 @ 0xb400007ddd9d8c00] coded y,uvDC,uvAC intra: 98.6% 54.0% 10.1% inter: 19.6% 6.5% 0.0%
[libx264 @ 0xb400007ddd9d8c00] i16 v,h,dc,p:  6% 83%  7%  4%
[libx264 @ 0xb400007ddd9d8c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  5% 34%  4%  6%  8%  4% 15%  6% 17%
[libx264 @ 0xb400007ddd9d8c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  3% 26%  2%  6%  9%  6% 20%  6% 23%
[libx264 @ 0xb400007ddd9d8c00] i8c dc,h,v,p: 40% 45%  9%  6%
[libx264 @ 0xb400007ddd9d8c00] Weighted P-Frames: Y:10.8% UV:2.2%
[libx264 @ 0xb400007ddd9d8c00] ref P L0: 63.8% 25.8%  5.2%  1.2%  1.1%  0.9%  0.9%  0.8%  0.2%
[libx264 @ 0xb400007ddd9d8c00] ref B L0: 97.6%  1.1%  0.4%  0.2%  0.2%  0.2%  0.2%
[libx264 @ 0xb400007ddd9d8c00] ref B L1: 99.4%  0.6%
[libx264 @ 0xb400007ddd9d8c00] kb/s:6099.12

Result: SUCCESS
App Version: 1.3.3

File used
Video failed to upload, but the video itself is not important. Any video will produce the same error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions