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
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
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.
Settings applied
Settings fully customized.
App Logs
Command:
File used
Video failed to upload, but the video itself is not important. Any video will produce the same error.