PPROLint
Built-in rules

Out-of-sync audio and video

Reports audio clips offset from the video clip of the same source they play under.

PropertyValue
Idno-out-of-sync-av
CategoryStatic
Default severitywarning
Scopeav-sync-pairs (computed scope)

Options

OptionTypeDefaultDescription
minDriftFramesnumber1Drift below this many frames is tolerated.
kindsstring[]["media","multicam","merged","sequence"]Source kinds compared.

Customize it

Turn the rule on or off in the panel's Rules settings. To change its options, severity or wording, open it with its cogwheel in the rule editor and save: your copy replaces the built-in rule until you revert it. You can also copy the file below into your rules folder as no-out-of-sync-av.rule.json and edit it. See Change a built-in rule.

Rule file

no-out-of-sync-av.rule.json
{
  "formatVersion": 1,
  "id": "no-out-of-sync-av",
  "name": {
    "en_US": "Out-of-sync audio and video",
    "de_DE": "Asynchrones Audio und Video",
    "es_ES": "Audio y vídeo desincronizados",
    "fr_FR": "Audio et vidéo désynchronisés",
    "it_IT": "Audio e video non sincronizzati",
    "ja_JP": "オーディオとビデオの同期ずれ",
    "ko_KR": "동기화되지 않은 오디오 및 비디오",
    "pt_BR": "Áudio e vídeo fora de sincronia",
    "ru_RU": "Рассинхронизация аудио и видео",
    "zh_CN": "音视频不同步"
  },
  "description": {
    "en_US": "Reports audio clips offset from the video clip of the same source they play under.",
    "de_DE": "Meldet Audioclips, die gegenüber dem darüberliegenden Videoclip derselben Quelle versetzt sind.",
    "es_ES": "Detecta clips de audio desplazados respecto al clip de vídeo del mismo origen con el que se reproducen.",
    "fr_FR": "Signale les éléments audio décalés par rapport à l'élément vidéo de la même source sous lequel ils sont lus.",
    "it_IT": "Segnala le clip audio sfasate rispetto alla clip video della stessa sorgente sotto cui vengono riprodotte.",
    "ja_JP": "重なっている同じソースのビデオクリップに対してずれているオーディオクリップを報告します。",
    "ko_KR": "함께 재생되는 같은 소스의 비디오 클립과 어긋난 오디오 클립을 보고합니다.",
    "pt_BR": "Relata clipes de áudio deslocados em relação ao clipe de vídeo da mesma origem sob o qual são reproduzidos.",
    "ru_RU": "Сообщает об аудиоклипах, смещенных относительно видеоклипа из того же источника, под которым они воспроизводятся.",
    "zh_CN": "报告与其下方播放的同一源视频剪辑存在偏移的音频剪辑。"
  },
  "category": "static",
  "scope": "av-sync-pairs",
  "severity": "warning",
  "options": {
    "minDriftFrames": {
      "type": "number",
      "default": 1,
      "description": "Drift below this many frames is tolerated."
    },
    "kinds": {
      "type": "string[]",
      "default": [
        "media",
        "multicam",
        "merged",
        "sequence"
      ],
      "description": "Source kinds compared."
    }
  },
  "checks": [
    {
      "condition": {
        "all": [
          {
            "field": "pair.absDriftFrames",
            "operator": "greaterThanOrEqual",
            "value": {
              "field": "options.minDriftFrames"
            }
          },
          {
            "field": "pair.driftTicks",
            "operator": "greaterThan",
            "value": 0
          }
        ]
      },
      "message": {
        "en_US": {
          "count": "pair.absDriftFramesRounded",
          "one": "Audio \"{clip.name}\" on {clip.track} is {pair.absDriftFramesRounded} frame late compared with video \"{pair.videoName}\" on {pair.videoTrack} from the same source.",
          "other": "Audio \"{clip.name}\" on {clip.track} is {pair.absDriftFramesRounded} frames late compared with video \"{pair.videoName}\" on {pair.videoTrack} from the same source."
        },
        "de_DE": {
          "count": "pair.absDriftFramesRounded",
          "one": "Audio „{clip.name}“ auf {clip.track} liegt {pair.absDriftFramesRounded} Frame hinter Video „{pair.videoName}“ auf {pair.videoTrack} aus derselben Quelle.",
          "other": "Audio „{clip.name}“ auf {clip.track} liegt {pair.absDriftFramesRounded} Frames hinter Video „{pair.videoName}“ auf {pair.videoTrack} aus derselben Quelle."
        },
        "es_ES": {
          "count": "pair.absDriftFramesRounded",
          "one": "El audio \"{clip.name}\" en {clip.track} está retrasado {pair.absDriftFramesRounded} fotograma respecto al vídeo \"{pair.videoName}\" en {pair.videoTrack} del mismo origen.",
          "other": "El audio \"{clip.name}\" en {clip.track} está retrasado {pair.absDriftFramesRounded} fotogramas respecto al vídeo \"{pair.videoName}\" en {pair.videoTrack} del mismo origen."
        },
        "fr_FR": {
          "count": "pair.absDriftFramesRounded",
          "one": "L'audio « {clip.name} » sur {clip.track} est en retard de {pair.absDriftFramesRounded} image par rapport à la vidéo « {pair.videoName} » sur {pair.videoTrack} issue de la même source.",
          "other": "L'audio « {clip.name} » sur {clip.track} est en retard de {pair.absDriftFramesRounded} images par rapport à la vidéo « {pair.videoName} » sur {pair.videoTrack} issue de la même source."
        },
        "it_IT": {
          "count": "pair.absDriftFramesRounded",
          "one": "L'audio \"{clip.name}\" su {clip.track} è in ritardo di {pair.absDriftFramesRounded} fotogramma rispetto al video \"{pair.videoName}\" su {pair.videoTrack} della stessa sorgente.",
          "other": "L'audio \"{clip.name}\" su {clip.track} è in ritardo di {pair.absDriftFramesRounded} fotogrammi rispetto al video \"{pair.videoName}\" su {pair.videoTrack} della stessa sorgente."
        },
        "ja_JP": "オーディオ「{clip.name}」({clip.track})は、同じソースのビデオ「{pair.videoName}」({pair.videoTrack})より{pair.absDriftFramesRounded}フレーム遅れています。",
        "ko_KR": "오디오 {clip.track}의 \"{clip.name}\"이(가) 같은 소스의 비디오 {pair.videoTrack}의 \"{pair.videoName}\"보다 {pair.absDriftFramesRounded}프레임 늦습니다.",
        "pt_BR": {
          "count": "pair.absDriftFramesRounded",
          "one": "O áudio \"{clip.name}\" em {clip.track} está {pair.absDriftFramesRounded} quadro atrasado em relação ao vídeo \"{pair.videoName}\" em {pair.videoTrack} da mesma origem.",
          "other": "O áudio \"{clip.name}\" em {clip.track} está {pair.absDriftFramesRounded} quadros atrasado em relação ao vídeo \"{pair.videoName}\" em {pair.videoTrack} da mesma origem."
        },
        "ru_RU": {
          "count": "pair.absDriftFramesRounded",
          "one": "Аудио «{clip.name}» на {clip.track} отстает на {pair.absDriftFramesRounded} кадр от видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "few": "Аудио «{clip.name}» на {clip.track} отстает на {pair.absDriftFramesRounded} кадра от видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "many": "Аудио «{clip.name}» на {clip.track} отстает на {pair.absDriftFramesRounded} кадров от видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "other": "Аудио «{clip.name}» на {clip.track} отстает на {pair.absDriftFramesRounded} кадра от видео «{pair.videoName}» на {pair.videoTrack} из того же источника."
        },
        "zh_CN": "音频 {clip.track} 上的“{clip.name}” 比同一源的视频 {pair.videoTrack} 上的“{pair.videoName}” 晚 {pair.absDriftFramesRounded} 帧。"
      }
    },
    {
      "condition": {
        "all": [
          {
            "field": "pair.absDriftFrames",
            "operator": "greaterThanOrEqual",
            "value": {
              "field": "options.minDriftFrames"
            }
          },
          {
            "field": "pair.driftTicks",
            "operator": "lessThan",
            "value": 0
          }
        ]
      },
      "message": {
        "en_US": {
          "count": "pair.absDriftFramesRounded",
          "one": "Audio \"{clip.name}\" on {clip.track} is {pair.absDriftFramesRounded} frame early compared with video \"{pair.videoName}\" on {pair.videoTrack} from the same source.",
          "other": "Audio \"{clip.name}\" on {clip.track} is {pair.absDriftFramesRounded} frames early compared with video \"{pair.videoName}\" on {pair.videoTrack} from the same source."
        },
        "de_DE": {
          "count": "pair.absDriftFramesRounded",
          "one": "Audio „{clip.name}“ auf {clip.track} liegt {pair.absDriftFramesRounded} Frame vor Video „{pair.videoName}“ auf {pair.videoTrack} aus derselben Quelle.",
          "other": "Audio „{clip.name}“ auf {clip.track} liegt {pair.absDriftFramesRounded} Frames vor Video „{pair.videoName}“ auf {pair.videoTrack} aus derselben Quelle."
        },
        "es_ES": {
          "count": "pair.absDriftFramesRounded",
          "one": "El audio \"{clip.name}\" en {clip.track} está adelantado {pair.absDriftFramesRounded} fotograma respecto al vídeo \"{pair.videoName}\" en {pair.videoTrack} del mismo origen.",
          "other": "El audio \"{clip.name}\" en {clip.track} está adelantado {pair.absDriftFramesRounded} fotogramas respecto al vídeo \"{pair.videoName}\" en {pair.videoTrack} del mismo origen."
        },
        "fr_FR": {
          "count": "pair.absDriftFramesRounded",
          "one": "L'audio « {clip.name} » sur {clip.track} est en avance de {pair.absDriftFramesRounded} image par rapport à la vidéo « {pair.videoName} » sur {pair.videoTrack} issue de la même source.",
          "other": "L'audio « {clip.name} » sur {clip.track} est en avance de {pair.absDriftFramesRounded} images par rapport à la vidéo « {pair.videoName} » sur {pair.videoTrack} issue de la même source."
        },
        "it_IT": {
          "count": "pair.absDriftFramesRounded",
          "one": "L'audio \"{clip.name}\" su {clip.track} è in anticipo di {pair.absDriftFramesRounded} fotogramma rispetto al video \"{pair.videoName}\" su {pair.videoTrack} della stessa sorgente.",
          "other": "L'audio \"{clip.name}\" su {clip.track} è in anticipo di {pair.absDriftFramesRounded} fotogrammi rispetto al video \"{pair.videoName}\" su {pair.videoTrack} della stessa sorgente."
        },
        "ja_JP": "オーディオ「{clip.name}」({clip.track})は、同じソースのビデオ「{pair.videoName}」({pair.videoTrack})より{pair.absDriftFramesRounded}フレーム進んでいます。",
        "ko_KR": "오디오 {clip.track}의 \"{clip.name}\"이(가) 같은 소스의 비디오 {pair.videoTrack}의 \"{pair.videoName}\"보다 {pair.absDriftFramesRounded}프레임 빠릅니다.",
        "pt_BR": {
          "count": "pair.absDriftFramesRounded",
          "one": "O áudio \"{clip.name}\" em {clip.track} está {pair.absDriftFramesRounded} quadro adiantado em relação ao vídeo \"{pair.videoName}\" em {pair.videoTrack} da mesma origem.",
          "other": "O áudio \"{clip.name}\" em {clip.track} está {pair.absDriftFramesRounded} quadros adiantado em relação ao vídeo \"{pair.videoName}\" em {pair.videoTrack} da mesma origem."
        },
        "ru_RU": {
          "count": "pair.absDriftFramesRounded",
          "one": "Аудио «{clip.name}» на {clip.track} опережает на {pair.absDriftFramesRounded} кадр видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "few": "Аудио «{clip.name}» на {clip.track} опережает на {pair.absDriftFramesRounded} кадра видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "many": "Аудио «{clip.name}» на {clip.track} опережает на {pair.absDriftFramesRounded} кадров видео «{pair.videoName}» на {pair.videoTrack} из того же источника.",
          "other": "Аудио «{clip.name}» на {clip.track} опережает на {pair.absDriftFramesRounded} кадра видео «{pair.videoName}» на {pair.videoTrack} из того же источника."
        },
        "zh_CN": "音频 {clip.track} 上的“{clip.name}” 比同一源的视频 {pair.videoTrack} 上的“{pair.videoName}” 早 {pair.absDriftFramesRounded} 帧。"
      }
    }
  ],
  "data": {
    "driftTicks": "pair.driftTicks",
    "driftFrames": "pair.driftFrames",
    "minDriftFrames": "options.minDriftFrames",
    "projectItemId": "pair.projectItemId"
  }
}

On this page