Recording

OvenMediaEngine은 라이브 스트림 녹화를 지원하며, REST API를 통해 시작 및 중지할 수 있습니다. 녹화가 완료되면 녹화된 미디어 파일과 해당 메타데이터 파일이 모두 생성되어, 후처리(post-processing) 워크플로우와 원활하게 연동할 수 있습니다.

Configuration

File Publisher

녹화를 활성화하려면 설정 파일에 <FILE> 퍼블리셔를 추가하십시오.

  • <FilePath><InfoPath>는 필수 항목이며 기본값으로 사용됩니다:

    • <FilePath>: 녹화된 미디어의 경로 및 파일 이름.

    • <InfoPath>: 녹화에 대한 XML 메타데이터의 경로 및 파일 이름.

API 요청에서 이 값들이 제공되지 않으면 설정의 기본값이 사용됩니다. 이 기능은 보안상의 이유로 내부 경로가 노출되는 것을 피하고자 할 때 유용합니다.

  • <RootPath>는 선택 항목이며 API 요청에서 상대 경로를 사용할 수 있게 합니다. 이는 <FilePath><InfoPath> 모두에 적용됩니다.

FilePath는 컨테이너 포맷을 지정하기 위해 반드시 .ts 또는 .mp4로 끝나야 합니다.

Server.xml
<Publishers>
   <FILE>  
      <!-- [Optional] -->
      <RootPath>/mnt/shared_volumes</RootPath>
           
      <!-- [Optional] Specify the path where the recording will be saved.
           If not specified here, it must be provided when calling the REST API -->
      <FilePath>/${VirtualHost}/${Application}/${Stream}/
         ${StartTime:YYYYMMDDhhmmss}_${EndTime:YYYYMMDDhhmmss}.ts</FilePath>

      <!-- [Optional] Specify the path for storing recording metadata -->
      <InfoPath>/${VirtualHost}/${Application}/${Stream}.xml</InfoPath>
   </FILE>
</Publishers>

* 지원되는 포맷 및 코덱

Format
Codec

TS

H.264, H.265, AAC

MP4

H.264, H.265, AAC

Recording via REST API

녹화 제어를 위해 REST API를 사용하십시오. 출력 스트림 이름(JSON 본문에 지정됨)을 기준으로 녹화를 요청할 수 있으며, 전체 또는 일부 트랙을 선택적으로 녹화할 수 있습니다. 또한, 동일한 스트림에 대해 여러 파일을 동시에 녹화하는 것이 가능합니다. 녹화가 완료되면 InfoPath에 지정된 경로에 XML 파일이 생성됩니다. 녹화된 파일 정보 XML 샘플은 부록 B를 참조해 주십시오.

API 사용 방법에 대해서는 아래 링크를 참조해 주십시오.

Recordchevron-right

Split Recording

분할 녹화 방식은 SegmentIntervalSegmentSchedule을 제공합니다. interval 방식은 누적된 녹화 시간을 기준으로 파일을 분할합니다. 반면 Schedule 방식은 시스템 시간을 기반으로 한 스케줄링 옵션에 따라 파일을 분할합니다. 스케줄링 옵션은 crontab에서 사용하는 패턴과 동일합니다. 단, 초/분/시의 세 가지 옵션만 사용됩니다.

SegmentRule 매개변수를 설정하여 분리된 녹화 파일의 시작 타임스탬프가 0부터 새로 시작할지(discontinuity), 아니면 이전 파일이 끝난 시점부터 이어갈지(continuity) 결정할 수 있습니다.

circle-info

SegmentInterval 방식과 SegmentSchedule 방식은 동시에 사용할 수 없습니다.

Automated Recording

파일 기반 설정과 일치하는 입력 스트림에 대해 자동으로 녹화를 시작하고 중지하는 방법을 제공합니다. 위 설정에서 XML 파일 경로는 StreamMap.Path에 지정되어 있습니다. 지정된 경로에 XML 파일을 생성하고 다음과 같이 자동 녹화를 구성할 수 있습니다.


Appendix A. Macro definition for the recording path

아래에 표시된 것처럼 파일 경로 및 이름에 대해 다양한 매크로 값을 지원합니다.

Macro
Description

${TransactionId}

녹화 트랜잭션의 고유 ID입니다. 녹화가 시작될 때 자동으로 생성되며, 녹화가 중지될 때 해제됩니다. 분할 녹화의 경우, 동일한 트랜잭션임을 식별하는 데 사용됩니다.

${Id}

사용자 정의 식별 ID

${StartTime:YYYYMMDDhhmmss}

녹화 시작 시간

YYYY - Year

MM - Month

DD - Days

hh : Hours (00~23)

mm : Minutes (00~59)

ss : Seconds (00~59)

${EndTime:YYYYMMDDhhmmss}

녹화 종료 시간

YYYY - Year

MM - Month

DD - Days

hh : Hours (00~23)

mm : Minutes (00~59)

ss : Seconds (00~59)

${VirtualHost}

가상 호스트(Virtual host) 이름

${Application}

애플리케이션 이름

${SourceStream}

소스 스트림 이름

${Stream}

출력 스트림 이름

${Sequence}

단일 트랜잭션에서 파일을 분할할 때 증가하는 시퀀스 값

Appendix B. Recorded File Information Specification

다음은 녹화된 파일에 대한 정보를 표현하는 XML 파일의 샘플입니다.

Last updated