Chrome 70의 오디오/동영상 업데이트

프랑수아 보포르
프랑수아 보포르

PIP 모드를 사용하여 동영상 보기

PIP 모드를 사용하면 사용자가 플로팅 창(항상 다른 창 위에 위치함)에서 동영상을 시청할 수 있으므로 다른 사이트 또는 애플리케이션과 상호작용하는 동안 보고 있는 내용을 지켜볼 수 있습니다. 새로운 PIP 모드 웹 API를 사용하여 웹사이트에 있는 동영상의 PIP 모드를 시작하고 제어할 수 있습니다.

자세한 내용은 도움말을 읽어보세요.

AV1 디코더

AV1은 Alliance for Open Media에서 개발한 차세대 코덱입니다. AV1은 현재 최첨단 동영상 코덱인 VP9에 비해 압축 효율성을 30%이상 개선합니다. Chrome 70은 공식 비트스트림 사양을 기반으로 Chrome 데스크톱 x86-64에 AV1 디코더를 추가합니다. 현재 지원은 '기본' 프로필 0으로 제한되며 인코딩 기능을 포함하지 않습니다. 지원되는 컨테이너는 MP4 (ISO-BMFF)입니다(컨테이너에 관한 간략한 설명은 원본 동영상에서 웹 지원 참고).

AV1을 사용해 보려면 다음 단계를 따르세요.

  • YouTube TestTube 페이지로 이동합니다.
  • 'SD용 AV1 사용' 또는 '항상 AV1 사용'을 선택하여 원하는 AV1 해상도를 가져옵니다. 높은 해상도에서는 AV1이 일부 기기에서 재생 성능 문제를 겪을 가능성이 더 큽니다.
  • AV1 베타 실행 재생목록에서 YouTube 클립을 재생해 보세요.
  • '전문 통계'에서 코덱 av01을 확인합니다.
YouTube의 AV1 전문 통계
그림 1. YouTube의 AV1 전문 통계

MSE에서 코덱 및 컨테이너 전환 지원

Chrome은 SourceBuffer에서 새로운 changeType() 메서드를 사용하여 미디어 소스 확장 프로그램 재생에서 개선된 크로스 코덱 또는 크로스 바이트 스트림 전환을 위한 지원을 추가합니다. 이후에 SourceBuffer에 추가되는 미디어 바이트 유형을 변경할 수 있습니다.

최신 버전의 MSE는 미디어의 적응형 재생을 지원합니다. 하지만 적응을 위해서는 SourceBuffer에 추가된 모든 미디어가 MediaSource.addSourceBuffer(type)를 통해 SourceBuffer를 처음 만들 때 제공된 MIME 유형을 준수해야 합니다. 이 유형의 코덱과 이전에 파싱된 초기화 세그먼트가 전체적으로 동일하게 유지되어야 합니다. 즉, 웹사이트에서 여러 미디어 요소 또는 SourceBuffer 트랙을 사용하고 이들 간에 전환하여 코덱 또는 바이트 스트림 전환을 완료하기 위한 명시적인 조치를 취해야 애플리케이션 복잡성이 증가하고 사용자에게 표시되는 지연 시간이 증가합니다. 이러한 전환을 수행하려면 웹 앱이 렌더기 기본 스레드에서 동기 작업을 실행해야 합니다. 이러한 전환 지연 시간은 전환 시 미디어 재생의 매끄러움을 저하시킵니다.

새로운 changeType() 메서드를 사용하여 SourceBuffer는 다양한 바이트 스트림 형식과 코덱에서 재생을 버퍼링하고 지원할 수 있습니다. 이 새로운 메서드는 이전에 버퍼링된 미디어와 모듈로 향후 MSE 코딩된 프레임 제거 또는 제거를 유지하며, 기존 MSE 코딩된 프레임 처리 알고리즘의 스플라이싱 및 버퍼링 로직을 활용합니다.

changeType() 메서드를 사용하는 방법은 다음과 같습니다.

    const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
    sourceBuffer.appendBuffer(someWebmOpusVP9Data);

    // Later on...
    if ('changeType' in sourceBuffer) {
      // Change source buffer type and append new data.
      sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
      sourceBuffer.appendBuffer(someMp4AacAvcData);
    }

예상대로 전달된 유형이 브라우저에서 지원되지 않으면 이 메서드는 NotSupportedError 예외를 발생시킵니다.

크로스 코덱 및 크로스 바이트 스트림 버퍼링과 오디오 요소의 재생으로 재생하려면 샘플을 확인하세요.

배송 예정 | Chromestatus Tracker | Chromium 버그

MSE용 MP4 형식의 Opus

다목적 개방형 오디오 코덱 Opus는 Chrome 33부터 <audio><video> 요소에서 지원되었습니다. 이후 ISO-BMFF의 Opus 지원(MP4의 Opus라고도 함)이 추가되었습니다. 이제 MP4 형식의 Opus를 Chrome 70에서 미디어 소스 확장 프로그램에 사용할 수 있습니다.

MP4의 Opus가 MSE에서 지원되는지 감지하는 방법은 다음과 같습니다.

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

전체 예를 보려면 공식 샘플을 확인하세요.

MP4의 Opus를 올바른 끝 자르기 및 건너뛰기 전 값으로 다중화할 도구가 없기 때문에 이러한 정밀도가 중요한 경우 Chrome에서 SourceBuffer.appendWindow{Start,End}SourceBuffer.timestampOffset를 사용하여 샘플 정확한 재생을 얻어야 합니다.

배송 예정 | Chromestatus Tracker | Chromium 버그

Android에서 기본적으로 보호된 콘텐츠 재생 허용

Android용 Chrome 70에서는 '보호된 콘텐츠' 사이트 설정의 기본값이 '우선 확인'에서 '허용됨'으로 변경되어 이러한 미디어 재생과 관련된 마찰이 줄었습니다. 이러한 변경이 가능한 이유는 쿠키 및 사이트 데이터와 함께 미디어 라이선스를 삭제하는 추가 단계를 수행하여 사이트에서 인터넷 사용 기록을 삭제한 사용자를 추적하는 데 미디어 라이선스를 사용하지 않도록 하기 때문입니다.

Android의 보호된 콘텐츠 설정
그림 2. Android의 보호된 콘텐츠 설정