본문 바로가기

Trivia

자막은 왜 프레임레이트(fps)에 따라 속도가 다를까?

늘 궁금해했던 질문이지만 누구도 언급하지 않던 사실이다.
다들 알고 있다고 생각한건지 중요하지 않다고 생각한건지...
"동영상과 자막의 fps가 다르면 싱크가 맞지 않습니다." 라고는 다들 이야기하지만..
"이러이러 저러저러하기 때문에 fps가 다르면 싱크는 맞지 않습니다."라는 사람은 없었다.
자막파일을 편집기로 열어서 키워드 하나하나 살펴봐도 fps와 관련되어 보이는 건 없었고..
하물며 싱크를 위한 숫자(?? ㅋ) 역시 프레임에 관련된 숫자가 아닌 단지
시간을 ms단위로 적어놓은 것일뿐...

그래서!!
이래저래 뒤적뒤적해봤다.
그랬더니 역시 우리의 위키백과!!
자막 - 목차 6 자막포멧 을 보면 SAMI(.smi)의 타이밍을 보면 프레임으로 되어있다.
그렇다. smi파일은 자막의 동작타이밍이 프레임에 맞춰져있는 것인다.
즉 fps가 다르면 타이밍이 달라질 수 있다는 뜻이다.
하지만 여전히 궁금증이 남는다.
자막에는 프레임에 대한 정보가 없는데 플레이어는 어떻게 알고 맞춰서 출력하는 것일까?
좀 더 구글링해보았다.

http://www.annodex.net/node/8에 들어가보면
위키에 나와있던 표와 함께 설명이 첨가되어 있다.
그 중에 timing 부분을 보면 된다.
편의상 일부를 발췌하자면..

  • Timings:
    • Timings are of particular importance to subtitles for the most obvious
      reason: to ensure the correct synchronisation of subtitles to the video and
      audio playback.
    • As CMML timings are based on an elapsed time format (Hours, Minutes,
      Seconds), the subtitles that employ the same timing method is the easiest to
      convert into CMML without problems.
    • Sequential timing formats (which is used by MPSub) is different in that
      the subtitles are timed depending on when the last subtitle was displayed.
      The addition of these times results converts these timings to an elapsed
      time format.
    • The older formats use the video/audio frame to synchronise the subtitles.
      The main issue that arises is that we need to know the frames per second
      (fps) value of the media before the timings can be converted into an elapsed
      time format.

    요약하자면...
    CMML(Continuous Media Markup Language, 대강 연속마크업언어??)은
    경과시간포멧(시분초)에 기반을 둔다.
    시퀀셜타이밍포멧은 직전 자막이 언제 출력되었는지에 의존한다.
    경과시간포멧으로 변환하려면 시간들을 다 더한다.
    예전포멧들은 비디오/오디오 프레임에 자막을 동기화한다.
    중요한 점은 경과시간포멧으로 변환되기 위해 미디어의 fps값을 알아야 한다.

     

    이때까지 나는 자막의 fps가 따로 있고... 미디어에 맞춰재생하는 줄 알았다.
    하지만 smi는 출력될 시간정보(경과시간포멧)만 가지고 있고...
    자막과 미디어의 경과시간을 비교하기 위해 미디어의 경과시간을 계산하는데
    (자막은 경과시간이 주어져 있으니..)
    이때 fps가 사용된다.
    보통은 프레임수/fps하면 시간이 나오기 때문에 fps가 달라도 정상동작하겠지만
    fps의 기준이 영상에도 음성에도 맞춰질 수 있기때문에 달라지는 경우가 발생한다.
    미디어 재생시 영상은 영상대로 음성은 음성대로 출력되므로
    재생자체는 문제없어보이지만 자막은 문제가 발생할 수도 있는 것.

    제한적인 정보안에서 최대한 합리적인 논리로 추론한 내용이므로
    혹.. 잘못된점을 발견하는 사람이 있으면 적극적으로 알려주길 바란다.

    'Trivia' 카테고리의 다른 글

    VMWARE의 easy install  (0) 2009.09.22