[FFmpeg-user] Mal-formed MP4s from Blue Iris won't play on Apple Silicon Macs. Diagnose ffprobe output?
Ferdi Scholten
ferdi at sttc-nlp.nl
Wed Feb 8 08:56:36 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]
>
>
Most likely the AS mac hardware does not support yuvj420p that has a
bigger color range than yuv420p
More information about the ffmpeg-user
mailing list