Chrome 70의 미디어 업데이트

François Beaufort
François Beaufort

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

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

도움말을 읽고 자세히 알아보세요.

AV1 디코더

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

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

  1. YouTube TestTube 페이지로 이동합니다.
  2. 'SD에 AV1 사용' 또는 '항상 AV1 사용'을 선택하여 원하는 AV1 해상도를 가져옵니다. 해상도가 높을수록 일부 기기에서 AV1의 재생 성능 문제가 발생할 가능성이 높습니다.
  3. AV1 베타 출시 재생목록에서 YouTube 클립을 재생해 봅니다.
  4. '전문 통계'에서 코덱 av01을 확인합니다.
YouTube의 AV1을 사용한 전문 통계
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 추적기 | 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를 mux하는 도구가 없으므로 이러한 정밀도가 중요한 경우 Chrome에서 SourceBuffer.appendWindow{Start,End}SourceBuffer.timestampOffset를 사용하여 샘플 정확한 재생을 얻어야 합니다.

배송 예정 | Chromestatus Tracker | Chromium 버그

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

Android용 Chrome 70에서는 '보호된 콘텐츠' 사이트 설정의 기본값이 '우선 확인'에서 '허용됨'으로 변경되어 이러한 미디어의 재생과 관련된 문제가 줄어듭니다. 이 변경사항은 쿠키 및 사이트 데이터와 함께 미디어 라이선스를 삭제하기 위한 추가 단계가 취해져 사이트에서 미디어 라이선스를 사용하여 브라우징 데이터를 삭제한 사용자를 추적하지 못하도록 하기 때문에 가능했습니다.

ALT_TEXT_HERE
Android의 Protected Content 설정