Brajesh
Brajesh

Reputation: 351

Quicktime not playing a h264 aac encoded file - why?

Quicktime says "This file isn't compatible with quicktime player" when I try to play an mp4 file.

The info shows the encoding as : H.264, AAC, QuickTime Text

The file plays fine with VLC. I need this file in my iTunes library so that I can stream it, hence the importance of this question.

Strange thing is I have other files with similar codes that QT can play fine. How can I check why this file is incompatible?

Here is the log from ffprobe:

ffprobe test4.mp4

ffprobe version 4.2.1 Copyright (c) 2007-2019 the FFmpeg developers
  built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.1_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test4.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : Joker
    encoder         : Lavf58.29.100
  Duration: 00:34:49.05, start: 0.000000, bitrate: 78 kb/s
    Chapter #0:0: start 0.000000, end 602.942000
    Metadata:
      title           : Chapter 10
    Chapter #0:1: start 602.942000, end 1130.427000
    Metadata:
      title           : Chapter 11
    Chapter #0:2: start 1130.427000, end 1725.063000
    Metadata:
      title           : Chapter 12
    Chapter #0:3: start 1725.063000, end 2089.052000
    Metadata:
      title           : Chapter 13
    Stream #0:0(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le, 1920x1080 [SAR 180:173 DAR 320:173], 2295 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 6 channels, fltp, 394 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Stream #0:2(eng): Data: bin_data (text / 0x74786574)
    Metadata:
      handler_name    : SubtitleHandler
Unsupported codec with id 100359 for input stream 2

Upvotes: 1

Views: 3249

Answers (2)

BollMose
BollMose

Reputation: 3498

Please try to add "-vf format=yuv420p".

I have the same issue, I have a video of

Stream #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p10le(tv, bt709/unknown/unknown), 1170x2532, 2534 kb/s, 42.16 fps, 600 tbr, 600 tbn, 600 tbc (default)

And then I do:

ffmpeg -i in.mp4 -r 25 -vf scale=300x500 o.mp4

I got the o.mp4 as

Stream #0:0(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le(tv, bt709/unknown/unknown), 300x500, 53 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)

I can't play it with QT. Then I changed to

ffmpeg -i in.mp4 -c:v libx264 -profile:v high10 -level:v 4.0 -vf scale=300:-1 -vf format=yuv420p  o.mp4

The video is good now. I supposed "-vf format=yuv420p" is the crucial, and szatmary might be right, "QT can't play 10bits with High 10".

The final video is

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/unknown), 1170x2532, 415 kb/s, 42.16 fps, 42.16 tbr, 2380950.00 tbn, 84.32 tbc (default)

Upvotes: 2

szatmary
szatmary

Reputation: 31100

Stream #0:0(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le, 1920x1080 [SAR 180:173 DAR 320:173], 2295 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)

Quicktime can not play 10 bit h.264, hence:

This file isn't compatible with quicktime player

Upvotes: 0

Related Questions