web-dev-qa-db-ja.com

QuickTimeがCRFが0のビデオを再生しないのに、10で満足しているのはなぜですか?

ffmpeg(バージョン4.2.2)を使用してビデオ圧縮を実験しており、次のコマンドを使用しました。

_ffmpeg -i old.mp4 -c:v libx264 -crf 0 -preset fast newCrf0.mp4
_

ただし、結果のビデオは、MacOS10.14のQuickTimeバージョン10.5では再生されません。やや役に立たないエラーメッセージは次のとおりです。「ファイルはQuickTime Playerと互換性がありません。

説明を見つけることができなかった後、私はこれを試しました:

_ffmpeg -i old.mp4 -c:v libx264 -crf 10 -preset fast newCrf10.mp4
_

そしてQuickTimeがそれを再生しました。何が起こっているのか知りたいです。

各ファイルのffprobeからの要約は次のとおりです。

_$ ffprobe -hide_banner newCrf0.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'newCrf0.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:02:34.54, start: 0.000000, bitrate: 4114 kb/s
    Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv420p, 1280x720, 3979 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler


$ ffprobe -hide_banner newCrf10.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'newCrf10.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:02:34.54, start: 0.000000, bitrate: 1146 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1010 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
_

明らかに、ビデオストリームには違いがあります:h264 (High 4:4:4 Predictive)h264 (High)

  • どういう意味ですか?
  • それが問題の根源ですか?
  • CRF = 0は他のプレイヤーに問題がありますか?

参照: FFmpeg H.264ビデオエンコーディングガイド

1
Matt Wallis

QuickTimeはYUV4:2:0クロマサブサンプリングでH.264のみをサポートしますが、-crf 0を使用すると4:4:4になります。

VLCやmpvなどのFFmpegベースのプレーヤーはこれらのファイルをサポートします。

2
llogan