[FFmpeg-user] Mal-formed MP4s from Blue Iris won't play on Apple Silicon Macs. Diagnose ffprobe output?

Steven Kan steven at kan.org
Wed Feb 8 01:36:12 EET 2023


I have a Windows PC running Blue Iris security camera software, and it has a “Direct-to-disc” option whereby it records video straight from each camera’s h.264 RTSP stream without transcoding, to reduce CPU and HDD utilization. There is some re-packaging involved, and I think that’s where the problem may lie.

When I browse through recorded footage, either on the BI PC or on another device (e.g. my Mac), I have the option to download clips either with or without re-encoding to h.264. I obviously prefer to download without re-encoding. I’ll call these the “original” downloads. Once downloaded they behaved like normal MP4s on my Intel-based Mac. I could read them in QuickTime Player or in any other app that uses the QuickTime libraries, like DaVinci Resolve.

But last week I replaced my Intel Mac with an Apple Silicon Mac, and now these MP4 files are broken. They will not play back in QuickTime player, nor in the apps that are based on QuickTime. Curiously, VLC Player on my AS Mac will play the “bad” files back, but only after a few frames of what looks like gray snow. If I turn off the Hardware acceleration in VLC Player, then it will play back the bad files correctly from frame 1. 

If I choose the option in Blue Iris or in the client viewer to re-encode the video to H.264 before download, then the resulting files behave properly on any computer I’ve tried, but I don’t want to have to wait for a re-encode every time I download a clip, and the file bloat is 10x.

I ran the original file and the re-encoded file through ffprobe. Can anyone decode what the error is, and what the Blue Iris developer can do to fix it?

Bad (original) file:

https://www.kan.org/download/BlueIris/TrailDown.20230203_042912-042924.495.mp4

Good (re-encoded) file:

https://www.kan.org/download/BlueIris/TrailDown.20230203_042912-042924.494.mp4

Console output from Bad (original) file:

ffprobe /Users/steven/Downloads/TrailDown.20230203_042912-042924.495.mp4 
ffprobe version N-109745-g7d49fef8b4-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57. 44.100 / 57. 44.100
  libavcodec     59. 61.100 / 59. 61.100
  libavformat    59. 37.100 / 59. 37.100
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 56.100 /  8. 56.100
  libswscale      6.  8.112 /  6.  8.112
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    56.  7.100 / 56.  7.100
[h264 @ 0x7fd082805200] error while decoding MB 161 121, bytestream -5
[h264 @ 0x7fd082805200] concealing 50 DC, 50 AC, 50 MV errors in I frame
[h264 @ 0x7fd082805200] error while decoding MB 161 121, bytestream -6
[h264 @ 0x7fd082805200] concealing 50 DC, 50 AC, 50 MV errors in P frame
[h264 @ 0x7fd082805200] error while decoding MB 161 121, bytestream -5
[h264 @ 0x7fd082805200] concealing 50 DC, 50 AC, 50 MV errors in P frame
[h264 @ 0x7fd082805200] error while decoding MB 161 121, bytestream -5
[h264 @ 0x7fd082805200] concealing 50 DC, 50 AC, 50 MV errors in P frame
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/steven/Downloads/TrailDown.20230203_042912-042924.495.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:11.30, start: 0.000000, bitrate: 6417 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive), 2592x1944, 6388 kb/s, 19.91 fps, 20.67 tbr, 90k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 26 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

Console output from Good (re-encoded) file:

/Applications/ffmpeg/ffprobe /Users/steven/Downloads/TrailDown.20230203_042912-042924.494.mp4 
ffprobe version N-109745-g7d49fef8b4-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57. 44.100 / 57. 44.100
  libavcodec     59. 61.100 / 59. 61.100
  libavformat    59. 37.100 / 59. 37.100
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 56.100 /  8. 56.100
  libswscale      6.  8.112 /  6.  8.112
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    56.  7.100 / 56.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/steven/Downloads/TrailDown.20230203_042912-042924.494.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:12.09, start: 0.000000, bitrate: 37956 kb/s
  Stream #0:0[0x1](und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 2592x1952, 37926 kb/s, 19.94 fps, 20.42 tbr, 90k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 27 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]




More information about the ffmpeg-user mailing list