SMIL: 시간 기반 멀티미디어를 선언형으로 동기화하는 법

W3C SMIL의 타이밍 컨테이너·레이아웃·프로파일 구조를 정리하고, 디지털 사이니지·3GPP MMS·DAISY 접근성 같은 특화 런타임에서의 실무 적용법을 설명한다.

2026-08-13 · 최초 발행 2025-12-03

브라우저가 SMIL 네이티브 지원을 걷어낸 지는 오래됐지만, 디지털 사이니지 플레이어와 3GPP MMS 메시지, 오디오북 리더는 여전히 이 표준으로 돌아간다. SMIL(Synchronized Multimedia Integration Language)은 멀티미디어 오브젝트를 시간축 기반으로 정밀하게 동기화·배치·전환하는 W3C 표준 언어다. 웹 대안과의 트레이드오프를 이해하고 나면, 언제 SMIL을 고르고 언제 HTML5로 가야 하는지가 뚜렷해진다.

SMIL이 정의하는 것

SMIL은 XML 문법으로 오디오·비디오·이미지·텍스트를 시간축에 따라 재생·동기화·레이아웃하는 선언형 멀티미디어 통합 언어다. 타이밍 모델은 절대·상대 시간, 이벤트, 반복(repeat), 동기 기준(syncbase)을 조합하는 선언형 기술이고, 레이아웃·링킹 모델은 화면 영역(region) 배치와 전환 효과(transition), 하이퍼링크·파라미터 전달을 지원한다. SMIL 2.0/3.0 권고안이 존재하지만 브라우저 직접 지원은 축소되는 추세이며, 특정 플레이어·임베디드 장비·3GPP 프로파일에서 주로 쓰인다.

타이밍과 레이아웃을 기술하는 장치

타이밍 컨테이너는 seq(순차 재생), par(동시 재생), excl(상호배타적 재생 제어)로 나뉘고 begin/end/dur/repeatCount/repeatDur 속성으로 시간을 제어한다.

레이아웃과 지역(region) 모델은 root-layout에서 해상도·배경을 정의하고 region으로 화면을 분할·배치한다. 미디어별로 region을 매핑하고 z-index 유사 계층, fit/meet/slice 같은 배치 전략을 쓴다.

미디어 통합과 전환은 audio/video/img/text/animation 요소를 통합하고 transition으로 페이드·와이프 같은 효과를 낸다. switch/systemTest는 디바이스 기능에 따라 대체 자산을 고른다.

프로파일과 모듈성은 Full/Basic/3GPP MMS/DAISY 같은 프로파일로 상호운용성을 확보하며, XHTML+SMIL Timesheets는 HTML 문서의 타임라인을 외부화하는 모델을 제공한다.

이벤트·동기화 기반 재생은 DOM 이벤트와 미디어 이벤트(beginEvent/endEvent)로 동적 트리거를 만들고, syncBase·accessKey·repeat 이벤트로 시간과 이벤트를 융합해 제어한다.

동기화 엔진은 어떻게 동작하는가

SMIL XML, 미디어 자산, 기기·프로파일 능력 파라미터를 입력받아 파서→DOM 빌드→타이밍 해석→레이아웃 계산→미디어 디코딩·렌더 순으로 처리하고, 합성된 오디오·비디오·그래픽 프레임과 로그·상태 이벤트를 출력한다.

정상유효유효성 오류계산 완료타이밍 충돌영역 확정동기화 유지디코딩 실패복구 시도대체 성공대체 실패입력: SMIL XML, 미디어 자산,프로파일/환경 변수파싱: XML 파서, 밸리데이션타이밍 해석: seq/par/excl,begin/end/dur, repeat레이아웃 계산: root-layout,region, 배치 전략미디어 파이프라인: 디코더,동기화 믹서출력: 합성 프레임, 오디오,표시 장치오류 처리: 자산 누락, 디코딩실패, 시간 초과대체 경로:switch/systemTest,프리페치, 폴백 미디어

오류 처리도 절차의 일부다. 자산 가용성은 prefetch로 사전 로딩하고 switch+system-required로 기능 기반 대체를 정의한다. 시간 안정성은 dur 상한과 repeatCount 제한, 미디어 길이가 다를 때의 fill 모드로 관리하고, 네트워크 회복력은 원격 URL 다중 엔드포인트와 캐싱 정책, 타임아웃·재시도 파라미터화로 확보한다.

지금도 SMIL이 쓰이는 곳

디지털 사이니지에서는 플레이리스트·레이아웃·시간표 기반으로 운영하며, SMIL 스케줄 파일만 교체해도 콘텐츠 갱신이 자동화된다. 일부 SoC 사이니지 플레이어는 SMIL 호환 칩셋에서 네이티브로 실행한다.

3GPP MMS 메시지에서는 슬라이드 쇼를 구성해 각 슬라이드의 텍스트·이미지·오디오를 동기화하고, 저대역 환경에서 경량 메타 시퀀싱을 제공한다.

접근성(DAISY 오디오북)에서는 텍스트와 오디오를 동기화해 내비게이션·하이라이트를 제공하고, 독서 보조 기기와 전용 리더에서 안정적으로 재생된다.

교육·전시·연출에서는 강의 슬라이드-내레이션-캡션을 정밀하게 동기화하고, 키오스크·전시장의 멀티스크린 시퀀스를 제어한다.

SMIL 3.0 예시

Windows/macOS/Linux에서 Ambulant Player 2.x나 SMIL 호환 사이니지 플레이어가 필요하며(장비별 문서 확인), 같은 디렉터리에 audio.mp3, image.jpg가 있어야 한다.

<?xml version="1.0" encoding="UTF-8"?>
<smil xmlns="http://www.w3.org/2008/SMIL30/">
  <head>
    <layout>
      <root-layout width="1280" height="720" backgroundColor="black"/>
      <region id="main" left="0" top="0" width="1280" height="720" fit="meet"/>
      <region id="caption" left="50" top="620" width="1180" height="80" z-index="2"/>
    </layout>
    <meta name="title" content="Sample SMIL"/>
  </head>
  <body>
    <par dur="10s">
      <img src="image.jpg" region="main" dur="10s"/>
      <audio src="audio.mp3" />
      <seq>
        <text region="caption" src="caption1.txt" dur="5s"/>
        <text region="caption" src="caption2.txt" dur="5s"/>
      </seq>
    </par>

    <switch>
      <video src="fallback.mp4" system-bitrate="<=500000" dur="15s"/>
      <video src="hd.mp4" system-bitrate=">500000" dur="15s"/>
    </switch>
  </body>
</smil>

플레이어에서 sample.smil을 열어 재생 타임라인과 오류 메시지를 로그로 확인하고, system-bitrate 같은 시스템 테스트 변수를 장비 프로파일이 지원하는지 점검한다.

HTML5와 무엇이 다른가

항목 SMIL HTML5(+Web Animations/WebVTT)
호환성 브라우저 직접 지원 제한, 전용 플레이어·임베디드 장비 중심 현대 브라우저 표준 지원, 모바일 친화
성능 경량 파서·정확한 타이밍, 장비 최적화 용이 GPU 가속·미디어 파이프라인 우수, 정밀한 미디어-텍스트 동기화는 구현 필요
확장성 프로파일링으로 경량-임베디드 확장 용이 생태계·툴 풍부, 마이크로서비스·CDN과 결합 용이
일관성 동일 SMIL로 멀티디바이스 재현성 확보(지원 환경 한정) 브라우저별 차이 존재, 폴리필·테스트 필요
운영 편의 선언형 스케줄·레이아웃로 운영 자동화 용이 DevOps 및 CI/CD 파이프라인과 자연스러운 통합

폐쇄형 런타임·사이니지·3GPP·DAISY 등 규격이 고정된 환경이라면 SMIL이 적합하고, 범용 웹·앱이나 광범위한 브라우저를 타깃한다면 HTML5+WebVTT/WAAPI가 권장된다.

도입 절차와 운영 체크리스트

설계 단계에서는 대상 런타임과 프로파일(SMIL 3.0 Full/Basic/3GPP/DAISY)을 확정하고, 동기화 정밀도 요구사항(예: 자막-오디오 오프셋 50ms 이하)을 정의한다. 제작 단계에서는 자산 명명 규칙·디렉터리 구조를 표준화하고 region 설계서를 작성하며, 타이밍 컨테이너(seq/par/excl) 패턴을 재사용 템플릿으로 만든다. 검증 단계에서는 XML 스키마·DTD 밸리데이션, 자산 해시 검증, 미디어 길이 자동 추출 비교를 하고 네트워크 지연·손실 시뮬레이션 하에서 재생을 테스트한다. 배포 단계에서는 버전 태깅과 변경 이력, 캐시 무효화 정책(versioned URL)을 관리하고 장애 시 폴백(switch) 경로를 점검하며 재시도·타임아웃 파라미터를 조정한다. 모니터링 단계에서는 플레이백 이벤트(begin/end/pause)를 로깅하고 에러 코드를 표준화하며, 재생 성공률·동기화 오차·자산 적중률(Cache hit) 같은 SLA 지표를 관리한다.

이렇게 구축한 파이프라인은 템플릿 재사용 시 편집·검수 공수를 2040% 절감하는 것으로 추정되고, 스케줄 파일 교체만으로 대규모 플레이어를 동시 갱신할 수 있어 배포 트래픽을 50% 이상 절감할 수 있다(자산 재사용 전제). 동기화 정밀도는 서브초 단위 제어가 가능하며 장비를 최적화하면 ±1020ms 수준까지 구현할 수 있다. 선언형 모델이라 명세와 실행 간 괴리가 줄고 재현성이 올라가며, 멀티미디어 저작-운영 파이프라인이 단순해져 휴먼 에러도 줄어든다.

보안과 운영에서 놓치기 쉬운 것

SMIL 자체에는 DRM이 없다. 전송 구간 TLS와 서명된 매니페스트를 따로 적용해야 하며, 폐쇄 네트워크·장비 화이트리스트 운영에는 장점이 있지만 공개 웹 배포에서는 무결성 관리 부담이 커진다. 참조 무결성은 원격 자산 URL을 다중화하고 해시 기반 검증, 만료·교체 롤링 전략으로 확보한다. 업데이트는 중앙 스케줄 서버에서 장비로 Pull 방식 단방향 배포가 안정적이며, 실시간 상호작용이 필요하다면 WS·WebRTC 같은 웹 대안과 혼합 아키텍처를 고려해야 한다.

SMIL멀티미디어 동기화디지털 사이니지타이밍 모델3GPP MMS