

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 타임코드 및 타임스탬프 작업
<a name="timecode"></a>

MediaLive에는 입력 파이프라인용 타임코드와 출력 파이프라인용 타임코드가 있습니다. 두 타임코드는 서로 분리되어 있습니다. 입력 타임코드는 구성할 수 없습니다. 출력 타임코드의 동작은 구성할 수 있습니다. 출력 타임코드를 메타데이터로 포함하고/하거나 출력 타임코드를 비디오 프레임에 굽도록 출력을 구성할 수도 있습니다.

**Topics**
+ [타임코드 및 타임스탬프 정보](timecodes-about.md)
+ [출력 타임코드의 시작 시간 구성](timecode-configure-source.md)
+ [타임코드 메타데이터를 출력에 포함시키려면](timecode-configure-metadata.md)
+ [타임코드를 출력에 굽기](timecode-configure-burnin.md)

# 타임코드 및 타임스탬프 정보
<a name="timecodes-about"></a>

MediaLive에는 입력 파이프라인용 타임코드와 출력 파이프라인용 타임코드가 있습니다. 두 타임코드는 서로 분리되어 있습니다.

**입력 타임코드**

MediaLive에는 수신 프레임에 임베딩된 타임코드가 포함된 경우에만 작동하는 기능이 있습니다. 파이프라인 잠금 및 워터마킹이 이러한 기능에 포함됩니다. 입력에 임베딩된 타임코드가 없는 경우 MediaLive는 해당 기능을 구현하지 않습니다. 예를 들어, 파이프라인 잠금을 사용하는 상태라면 파이프라인이 프레임에 정확하게 잠기지 않습니다. (타임코드가 파이프라인 잠금에 미치는 영향에 대한 자세한 내용은 [파이프라인 잠금 구현](pipeline-lock.md)에서 확인하세요.

입력 타임코드 소스는 구성할 수 없습니다.

**출력 타임코드**

MediaLive는 SMPTE 타임코드를 구현하며, 이는 MediaLive에서 각각의 발신 프레임에 `HH:MM:SS:FF` 형식의 타임코드를 할당한다는 뜻입니다. 타임코드는 자정에 롤오버됩니다.

채널에서 출력 타임코드를 초기화하는 방법은 다음과 같이 세 가지가 있습니다.
+ 임베딩됨(기본값): 임베딩된 타임코드를 사용하여 출력 타임코드를 초기화합니다. MediaLive는 입력에서 수집하는 첫 번째 프레임의 타임코드를 사용합니다. 해당 입력에 타임코드가 없다면, MediaLive는 UTC를 사용합니다.
+ UTC: 첫 번째 프레임이 파이프라인의 출력 측에 들어가는 순간의 출력 타임코드를 UTC 시간으로 초기화합니다.
+ 0부터 시작: 출력 타임코드를 00:00:00:00으로 초기화합니다.

출력 타임코드는 HLS 출력용 PDT 및 선택적으로 포함할 수 있는 ID3 메타데이터의 타임코드와 같은 기능에 사용됩니다. 출력 타임코드를 메타데이터로 포함하고/하거나 출력 타임코드를 비디오 프레임에 굽도록 출력을 구성할 수도 있습니다.

[출력 타임코드를 메타데이터](timecode-configure-metadata.md)로 포함하고/하거나 비디오 프레임에 [출력 타임코드를 굽도록](timecode-configure-burnin.md) 출력 비디오를 구성할 수도 있습니다.

**타임스탬프**

MediaLive는 타임스탬프를 모든 출력 콘텐츠에 연결합니다. 다운스트림 시스템은 동기화에 타임스탬프를 사용합니다. 타임스탬프는 90KHz 시계 주기 숫자값와 같은 값입니다.

타임스탬프와 타임코드를 같은 것으로 생각하지 않도록 합니다. 두 개념에는 차이가 있습니다.

# 출력 타임코드의 시작 시간 구성
<a name="timecode-configure-source"></a>

MediaLive가 출력 인코딩에 포함하는 출력 타임코드의 시작 시간을 구성할 수 있습니다.

**참고**  
이 절차에서는 사용자가 [채널 처음부터 새로 생성](creating-channel-scratch.md)에서 설명한 대로 채널을 생성하거나 편집하는 데 익숙하다고 가정합니다.

1. **채널 생성** 페이지의 **일반 설정** 섹션에서 **타임코드 구성**을 선택합니다.

1. **소스**에서 출력의 타임코드를 초기화하는 옵션을 다음과 같이 선택합니다.
   + **EMBEDDED** – 소스 비디오에 임베딩된 타임코드를 사용합니다.

     MediaLive가 소스 비디오의 타임코드를 찾는 방식은 다음과 같습니다.
     + AV1 - AOM AV1 사양(https://aomediacodec.github.io/av1-spec/)의 섹션 5.8.3에 따라 형식 타임코드(METADATA\$1TYPE\$1TIMECODE)의 메타데이터 OBU에 삽입된 타임코드
     + H.264 - ISO/IEC 14496-10-2005의 섹션 D.1.2에 따라 pic\$1timing 유형의 SEI 메시지에 삽입된 타임코드
     + H.265 - ITU-T H.265의 섹션 D.2.26에 따라 타임코드 유형의 SEI 메시지에 삽입된 타임코드
     + MPEG-2 - ISO/IEC 13818-2-2000(R2006)의 섹션 6.2.2.6에 따라 각 GOP 헤더에 삽입된 타임코드
   + **SYSTEMCLOCK** - UTC 시간을 사용합니다.
   + **ZEROBASED** – 00:00:00:00을 사용합니다.

1. (선택 사항) **동기화 임계값**에 출력 타임코드를 입력 타임코드와 동기화하기 위한 임계값을 프레임 단위로 입력합니다. 이 필드에 대한 자세한 내용은 [동기화 임계값 정보](#timecode-sync) 단원을 참조하십시오.

## 런타임 동안 출력 타임코드 작동 방식
<a name="timecode-runtime"></a>

**초기 채널 시작 또는 재시작**

채널을 시작하면 해당 채널에서 출력 파이프라인의 시작 타임코드를 다음과 같이 설정합니다.
+ 시작 시간이 임베딩된 타임코드를 참조하도록 설정한 경우 해당 채널은 입력 타임코드를 샘플링합니다. MediaLive는 소스에서 임베딩된 타임코드를 찾지 못하면 UTC로 돌아갑니다.
+ 또는 타임코드를 현재 UTC 시간으로 설정합니다.
+ 또는 타임코드를 00:00:00:00으로 설정합니다.

채널은 MediaLive에서 생성하는 각각의 출력 프레임을 위한 타임코드를 새로 생성합니다.

**입력 전환**

채널이 다른 입력으로 전환되면 MediaLive는 타임코드를 다시 초기화하지 않습니다. 따라서, 출력 타임코드는 [입력 전환](scheduled-input-switching.md)으로 인해 중단되지 않습니다.

**일시 중지 및 일시 중지 취소**

채널을 일시 중지하면 MediaLive는 프레임을 계속 인코딩하고 즉시 폐기합니다. 그러나 MediaLive에서 인코딩이 계속되기 때문에 타임코드는 계속 증가합니다. 따라서 일시 중지를 취소하면 출력에서 타임코드 불연속성이 발생합니다.

## 동기화 임계값 정보
<a name="timecode-sync"></a>

타임코드 **동기화 임계값** 필드는 출력 타임코드를 입력 타임코드와 동기화합니다. 드리프트는 여러 가지 방식으로 발생할 수 있습니다. 예를 들어, MediaLive에서 보정을 위한 프레임의 삭제나 반복을 일으키는 처리 문제가 발생할 수 있습니다. 또는 입력 타임코드 스트림에 불연속성이 있을 수 있습니다.

**동기화의 목적**

동기화는 워크플로에서 (MediaLive에서 생성된) 출력 타임코드가 원래 입력 타임코드와 일치하는 것이 중요한 경우에 사용하면 좋습니다.
+ 다운스트림 시스템이 특정 프레임을 식별해야 한다는 것을 아는 경우 일치가 중요할 수 있습니다.

  일반적으로 다운스트림 시스템은 원래 입력 타임코드를 기반으로 이러한 프레임을 이미 식별했습니다. 따라서 다운스트림 시스템에서 원하는 프레임을 찾으려면 출력 타임코드가 원래 입력 타임코드와 일치해야 합니다.
+ 단순히 각 출력 프레임을 고유하게 식별하는 것이 출력 타임코드의 주요 목적인 경우 일치는 중요하지 않습니다.

**동기화 작동 방식**

입력 타임코드와 출력 타임코드가 지정된 프레임 수만큼 떨어진 거리에서 드리프트된 후 MediaLive는 출력 타임코드 시퀀스에 불연속성을 삽입하고 출력 타임코드가 현재 입력 타임코드와 일치하도록 설정합니다.

동기화의 주요 단점은 메타데이터에 타임코드 불연속성을 도입하고 각 출력 타임 코드가 고유한지를 보장할 수 없다는 것입니다.

# 타임코드 메타데이터를 출력에 포함시키려면
<a name="timecode-configure-metadata"></a>

개별 출력 인코딩에 타임코드 메타데이터를 포함하도록 MediaLive 채널을 설정할 수 있습니다. 타임코드 메타데이터는 Frame Capture를 제외한 모든 유형의 출력 그룹에서 지원됩니다.

타임코드는 출력 인코딩 표준에 따라 다음과 같이 삽입됩니다.
+ AV1 - 타임코드는 AOM AV1 사양(https://aomediacodec.github.io/av1-spec/)의 섹션 5.8.3에 따라 타임코드 유형(METADATA\$1TYPE\$1TIMECODE)의 메타데이터 OBU에 삽입됩니다.
+ H.264 -타임코드가 ISO/IEC 14496-10-2005의 섹션 D.1.2에 따라 pic\$1timing 유형의 SEI 메시지에 삽입됩니다.
+ H.265 - 타임코드가 ITU-T H.265의 섹션 D.2.26에 따라 타임코드 유형의 SEI 메시지에 삽입됩니다.
+ MPEG - 타임코드가 ISO/IEC 13818-2-2000(R2006)의 섹션 6.2.2.6에 따라 각각의 GOP 헤더에 삽입됩니다.

**타임코드 메타데이터를 출력에 포함시키려면**

출력 측에서는 각 비디오 인코딩에 타임코드를 포함할지 여부를 지정합니다. 기본적으로 타임코드는 비디오 인코딩에 포함되지 않습니다.

1. **채널 생성** 페이지의 **출력 그룹** 섹션에서 출력 그룹을 선택한 다음 출력을 선택합니다.

1. **스트림 설정** 섹션을 표시한 다음 **비디오** 섹션을 선택합니다. **코덱 설정**에서 이 비디오 인코딩의 코덱을 선택합니다. 추가 필드가 나타납니다.

1. **타임코드**를 선택한 다음 **타임코드 삽입**에서 다음과 같이 옵션을 선택합니다.
   + **비활성화됨** – 해당 인코딩이 타임코드 메타데이터를 포함하지 않습니다.
   + **METADATA\$1OBU**(AV1용) 또는 **PIC\$1TIMING\$1SEI**(H.264 또는 H.265용) 또는 **GOP\$1timecode**(MPEG) -이 인코딩에는 타임코드 메타데이터가 포함됩니다.

# 타임코드를 출력에 굽기
<a name="timecode-configure-burnin"></a>

출력 타임코드에 MediaLive 채널의 모든 비디오 인코딩을 구울 수 있도록 설정할 수 있습니다. 타임코드가 해당 비디오의 일부가 됩니다.

타임코드 번인 기능은 타임코드 메타데이터 기능과는 독립적으로 작동합니다. 타임코드를 굽기 위해 타임코드 메타데이터를 활성화할 필요는 없습니다.

**타임코드를 비디오 출력에 구우려면**

1. **채널 생성** 페이지의 **출력 그룹** 섹션에서 출력 그룹을 선택한 다음 출력을 선택합니다.

1. **스트림 설정** 섹션을 표시한 다음 **비디오** 섹션을 선택합니다. **코덱 설정**에서 이 비디오 인코딩의 코덱을 선택합니다. 추가 필드가 나타납니다.

1. **타임코드**를 선택한 다음 **타임코드 번인 설정**에서 **타임코드 번인**을 선택합니다. 추가 필드가 나타납니다.

1. 비디오 프레임에서 사용할 타임코드의 스타일과 위치를 설정합니다. 선택적 **접두사** 필드에 설명자를 아무거나 입력합니다. 예를 들어 **UTC-1**입니다.