Skip to content

MKVs failing BT.709 transfer characteristics #926

@bravoalphatango

Description

@bravoalphatango

Hi There,

I recently transferred a few NTSC VHS tapes with the previous version v2025-04-21 of vrecord and all of my files failed both BT.601 color primaries and BT.709 transfer characteristics in MediaConch.

Image

I have 2 questions:

When I look at the MediaInfo report, it shows that the file has a BT.601 matrix coefficient. I know that transfer characteristics, color primaries and matrix coefficients are all different but is it safe to assume that if the matrix coefficient is BT.601 then the color primaries are as well?

As far as the BT.709 transfer characteristics it looks like this metadata is simply missing from the files? If it is missing how do I check for it? If I am wrong then what is the issue?

All of the logs MediaInfo report and files created are in this Dropbox folder:

I am using this policy for in-house QC which is slightly different from the one vrecord uses:

<?xml version="1.0"?>
<policy type="and" name="AVMPI_VideoMaster_PCM_021925">
  <tag/>
  <rule name="Audio/BitDepth is 24" value="BitDepth" tracktype="Audio" occurrence="*" operator="=">24</rule>
  <rule name="Audio/Format is PCM" value="Format" tracktype="Audio" occurrence="*" operator="=">PCM</rule>
  <rule name="Audio/SamplingRate is 48000" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">48000</rule>
  <rule name="General/FileExtension is mkv" value="FileExtension" tracktype="General" occurrence="*" operator="=">mkv</rule>
  <rule name="General/Format is Matroska" value="Format" tracktype="General" occurrence="*" operator="=">Matroska</rule>
  <rule name="General/Format_Version is 4 or greater" value="Format_Version" tracktype="General" occurrence="*" operator="&gt;=">4</rule>
  <rule name="general unique id exists" value="UniqueID" tracktype="General" occurrence="*" operator="exists"/>
  <rule name="mmt: SegmentUID is present?" value="Segment/Info/SegmentUID/" occurrence="*" operator="exists" scope="mmt"/>
  <rule name="mmt: SeekHead is present?" value="Segment/SeekHead/" occurrence="*" operator="exists" scope="mmt"/>
  <rule name="mmt: Duration is greater than zero?" value="Segment/Info/Duration/Data" operator="&gt;" scope="mmt">0</rule>
  <rule name="Video/BitDepth is 10" value="BitDepth" tracktype="Video" occurrence="*" operator="=">10</rule>
  <rule name="Video/ChromaSubsampling is 4:2:2" value="ChromaSubsampling" tracktype="Video" occurrence="*" operator="=">4:2:2</rule>
  <rule name="Video/ColorSpace is YUV" value="ColorSpace" tracktype="Video" occurrence="*" operator="=">YUV</rule>
  <rule name="Video/colour_range is Limited" value="colour_range" tracktype="Video" occurrence="*" operator="=">Limited</rule>
  <rule name="Video/Compression_Mode is Lossless" value="Compression_Mode" tracktype="Video" occurrence="*" operator="=">Lossless</rule>
  <rule name="Video/extra/ErrorDetectionType is Per slice" value="extra/ErrorDetectionType" tracktype="Video" occurrence="*" operator="=">Per slice</rule>
  <rule name="Video/Format_Settings_SliceCount is 24" value="Format_Settings_SliceCount" tracktype="Video" occurrence="*" operator="=">24</rule>
  <rule name="Video/Format is FFV1" value="Format" tracktype="Video" occurrence="*" operator="=">FFV1</rule>
  <rule name="Video/Format_Settings_GOP is N=1" value="Format_Settings_GOP" tracktype="Video" occurrence="*" operator="=">N=1</rule>
  <rule name="Video/Format_Version is 3.4 or greater" value="Format_Version" tracktype="Video" occurrence="*" operator="&gt;=">3.4</rule>
  <rule name="Video/FrameRate_Mode is CFR" value="FrameRate_Mode" tracktype="Video" occurrence="*" operator="=">CFR</rule>
  <rule name="Video/ScanType is Interlaced" value="ScanType" tracktype="Video" occurrence="*" operator="=">Interlaced</rule>
  <rule name="Video/transfer_characteristics is BT.709" value="transfer_characteristics" tracktype="Video" occurrence="*" operator="=">BT.709</rule>
  <rule name="Video/Width is 720" value="Width" tracktype="Video" occurrence="*" operator="=">720</rule>
  <policy type="and" name="NTSC specs">
    <rule name="Video/colour_primaries is BT.601 NTSC" value="colour_primaries" tracktype="Video" occurrence="*" operator="=">BT.601 NTSC</rule>
    <rule name="Video/FrameRate is 29.970" value="FrameRate" tracktype="Video" occurrence="*" operator="=">29.970</rule>
    <rule name="Video/Height is 486" value="Height" tracktype="Video" occurrence="*" operator="=">486</rule>
    <rule name="Video/matrix_coefficients is BT.601" value="matrix_coefficients" tracktype="Video" occurrence="*" operator="=">BT.601</rule>
    <rule name="Video/ScanOrder is BFF" value="ScanOrder" tracktype="Video" occurrence="*" operator="=">BFF</rule>
    <rule name="Video/Standard is NTSC" value="Standard" tracktype="Video" occurrence="*" operator="=">NTSC</rule>
    <policy type="and" name="NTSC DAR + PAR: new 4:3 settings">
      <rule name="Video/DisplayAspectRatio is 1.347" value="DisplayAspectRatio" tracktype="Video" occurrence="*" operator="=">1.347</rule>
      <rule name="Video/PixelAspectRatio is 0.909" value="PixelAspectRatio" tracktype="Video" occurrence="*" operator="=">0.909</rule>
    </policy>
  </policy>
</policy>

I did update vrecord this morning to the v2025-07-25 version and now all my files are passing. This is good, but doesn't answer the question of if I should pass the files I made with the previous version. Obviously I would like to avoid transferring the tapes again if possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions