# Out-of-sync audio and video (/docs/rules/no-out-of-sync-av)

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



{/* Generated by scripts/generate-docs.ts. Do not edit. */}

| Property         | Value                                                                             |
| :--------------- | :-------------------------------------------------------------------------------- |
| Id               | `no-out-of-sync-av`                                                               |
| Category         | Static                                                                            |
| Default severity | warning                                                                           |
| Scope            | [`av-sync-pairs`](/docs/reference/computed-scopes#av-sync-pairs) (computed scope) |

## Options [#options]

| Option           | Type       | Default                                    | Description                                |
| :--------------- | :--------- | :----------------------------------------- | :----------------------------------------- |
| `minDriftFrames` | `number`   | `1`                                        | Drift below this many frames is tolerated. |
| `kinds`          | `string[]` | `["media","multicam","merged","sequence"]` | Source kinds compared.                     |

## Customize it [#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](/docs/editor/saving#change-a-built-in-rule).

## Rule file [#rule-file]

```json title="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"
  }
}
```
