HTML 미디어 캡처

W3C 권고안

이 버전:
https://www.w3.org/TR/2018/REC-html-media-capture-20180201/
최신 공개 버전:
https://www.w3.org/TR/html-media-capture/
최신 편집자 초안:
https://w3c.github.io/html-media-capture/
테스트 모음:
https://w3c-test.org/html-media-capture/
구현 보고서:
https://www.w3.org/2009/dap/wiki/ImplementationStatus
이전 버전:
https://www.w3.org/TR/2017/PR-html-media-capture-20171128/
편집자:
Anssi Kostiainen, Intel
Ilkka Oksanen, Nokia (2012년 5월 10일까지)
Dominique Hazaël-Massieux, W3C (2012년 5월 10일까지)
번역:
ру́сский язы́к
한국어
日本語
참여:
public-device-apis@w3.org
GitHub w3c/html-media-capture
GitHub w3c/html-media-capture/issues
GitHub w3c/html-media-capture/commits

발행 이후 보고된 오류나 문제는 정오표를 확인하십시오.

이 명세의 영어 버전만이 유일한 규범 버전이다. 비규범적 번역도 제공될 수 있다.


초록

HTML 미디어 캡처 명세는 파일 업로드 컨트롤 내에서 카메라 또는 마이크와 같은 기기의 미디어 캡처 메커니즘에 대한 사용자 접근을 용이하게 하는 HTML 폼 확장을 정의한다.

이 문서의 상태

상태 업데이트(2018년 4월): 이 단락은 정보 제공용이다. 이 명세는 번역에 대한 링크를 포함하고, 비규범적 변경만 포함하는 기존 정오표를 반영하기 위해 제자리에서 갱신되었다.

이 절은 이 문서가 발행된 시점의 상태를 설명한다. 다른 문서가 이 문서를 대체할 수 있다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정판은 https://www.w3.org/TR/의 W3C 기술 보고서 색인에서 찾을 수 있다.

HTML 미디어 캡처 제안 권고안은 2017년 11월 28일에 발행되었으며, 그 이후 더 이상의 규범적 변경은 이루어지지 않았다. 이 문서의 정오표는 이슈로 기록된다. 이 버전을 위해 작성된 구현 보고서는 독립적이고 상호운용 가능한 두 구현이 있음을 보여준다.

이 문서는 Device and Sensors Working Group에 의해 권고안으로 발행되었다. 이 문서에 관한 의견을 환영한다. 의견은 public-device-apis@w3.org (구독, 아카이브)로 보내거나 GitHub에서 이슈를 제출하십시오.

워킹 그룹의 구현 보고서를 참조하십시오.

이 문서는 W3C 회원, 소프트웨어 개발자, 기타 W3C 그룹 및 이해관계자에 의해 검토되었으며, Director가 W3C 권고안으로 승인했다. 이는 안정적인 문서이며, 참고 자료로 사용하거나 다른 문서에서 인용할 수 있다. 권고안을 만드는 데 있어 W3C의 역할은 명세에 대한 주의를 환기하고 그 광범위한 배포를 촉진하는 것이다. 이는 웹의 기능성과 상호운용성을 향상시킨다.

이 문서는 W3C Patent Policy에 따라 운영되는 그룹에 의해 작성되었다. W3C는 해당 그룹의 산출물과 관련하여 이루어진 모든 특허 공개의 공개 목록을 유지하며, 그 페이지에는 특허 공개를 위한 지침도 포함되어 있다. 개인이 자신이 실제로 알고 있는 특허가 Essential Claim(s)을 포함한다고 믿는 경우, W3C Patent Policy 6절에 따라 그 정보를 공개해야 한다.

이 문서는 2017년 3월 1일 W3C Process Document의 적용을 받는다.

1. 소개

이 절은 비규범적이다.

HTML 미디어 캡처 명세는 HTMLInputElement 인터페이스를 capture 속성으로 확장한다. capture 속성은 작성자가 파일 업로드 컨트롤 내에서 즉석으로 미디어를 캡처하기 위해 카메라나 마이크와 같은 미디어 캡처 메커니즘의 사용을 선언적으로 요청할 수 있게 한다.

이 확장은 단순하고 선언적이도록 특별히 설계되었으며, 웹 플랫폼의 미디어 캡처 기능 중 일부를 다룬다. 특히 이 확장은 캡처에 대한 자세한 작성자 제어를 제공하지 않는다. 더 세밀한 작성자 제어가 필요한 사용 사례는 다른 명세인 Media Capture and Streams [MEDIACAPTURE-STREAMS]를 사용하여 충족할 수 있다. 예를 들어, 호스팅 장치의 실시간 미디어 스트림에 대한 접근은 이 명세의 범위 밖이다.

2. 적합성

비규범적이라고 표시된 절뿐만 아니라, 이 명세의 모든 작성 지침, 다이어그램, 예제, 및 참고는 비규범적이다. 이 명세의 그 밖의 모든 것은 규범적이다.

키워드 MUST, MUST NOT, 및 SHOULD는 [RFC2119]에 설명된 대로 해석된다.

이 명세는 단일 제품, 즉 여기에 포함된 인터페이스를 구현하는 사용자 에이전트에 적용되는 적합성 기준을 정의한다.

ECMAScript를 사용하여 이 명세에 정의된 API를 구현하는 구현은, 이 명세가 Web IDL 명세 [WEBIDL-1]와 그 용어를 사용하므로, Web IDL 명세에 정의된 ECMAScript 바인딩과 일관된 방식으로 이를 구현해야 한다.

3. 용어

input 요소, 그 type 속성, HTMLInputElement 인터페이스, accept 속성, File Upload 상태, 열거형 속성, 누락 값 기본값, 잘못된 값 기본값, 및 반영 은 [HTML51]에 정의되어 있다.

[CEReactions] WebIDL 확장 속성은 [custom-elements]에 정의되어 있다.

VideoFacingModeEnum 열거형은 [MEDIACAPTURE-STREAMS]에 정의되어 있다.

FileList 인터페이스는 [FILE-API]에 정의되어 있다.

이 명세에서 캡처 컨트롤 타입이라는 용어는 accept 속성으로 지정된 MIME 타입의 미디어를 선호하는 방향 모드에서 미디어 캡처 메커니즘을 사용하여 직접 캡처하도록 사용자를 위해 최적화된 파일 선택기 컨트롤의 특수한 타입을 가리킨다.

미디어 캡처 메커니즘이라는 용어는 카메라나 마이크와 같은 장치의 로컬 미디어 캡처 장치를 가리킨다.

선호하는 방향 모드는 사용할 장치의 미디어 캡처 메커니즘 방향에 대한 힌트이다.

4. 보안 및 프라이버시 고려사항

이 절은 비규범적이다.

이 명세의 사용자 에이전트 구현은 마이크나 카메라에 의한 콘텐츠 캡처를 시작하기 전에 사용자 동의를 구하는 것이 권장된다. 이는 사용자 데이터의 프라이버시와 관련된 규제, 법적 및 모범 사례 요구사항을 충족하기 위해 필요할 수 있다. 또한 사용자 에이전트 구현은 입력 장치가 활성화되었을 때 사용자에게 표시를 제공하고, 사용자가 그러한 캡처를 종료할 수 있게 하는 것이 권장된다. 마찬가지로 사용자 에이전트는 사용자가 다음을 할 수 있도록 하는 등의 사용자 제어를 제공하는 것이 권장된다:

이 명세는 <input type="file"> [HTML51] 및 [FILE-API] 명세가 제공하는 보안 및 프라이버시 보호를 기반으로 한다. 특히 사용자의 장치에서 콘텐츠 캡처를 시작하라는 모든 제안은 사용자 에이전트가 완전히 제어하는 HTML 요소에 대한 특정 사용자 상호작용을 요구할 것으로 기대된다.

구현자는 캡처된 미디어에서 프라이버시에 민감한 데이터가 추가로 유출되는 것을 방지하도록 주의해야 한다. 예를 들어, 캡처된 미디어의 메타데이터(예: EXIF)에 사용자의 위치를 포함하면 사용자가 예상하는 것보다 더 많은 사적 데이터가 전송될 수 있다.

5. capture 속성

input 요소의 type 속성이 File Upload 상태이고, 그 accept 속성이 지정된 경우, 이 절의 규칙이 적용된다.

partial interface HTMLInputElement {
    [CEReactions]
    attribute DOMString capture;
};

capture 속성은 상태가 미디어 캡처 메커니즘선호하는 방향 모드를 지정하는 열거형 속성이다.

이 속성의 키워드는 userenvironment이며, 각각 userenvironment 상태에 매핑된다. userenvironment 상태의 의미는 VideoFacingModeEnum에 정의된 같은 이름의 열거형 값과 대응한다.

또한 세 번째 상태인 implementation-specific 상태가 있다.

누락 값 기본값implementation-specific 상태이다. 잘못된 값 기본값implementation-specific 상태이다.

참고

사용자 에이전트가 선호하는 방향 모드를 지원할 수 없는 경우, 구현이 기본 동작에 따라 동작해야 함을 나타내는 implementation-specific 상태에 매핑되는 구현별 기본 방향 모드로 폴백할 수 있다.

capture IDL 속성은 같은 이름의 해당 콘텐츠 속성을 MUST 반영해야 한다.

capture 속성이 지정된 경우, 사용자 에이전트는 특정 캡처 컨트롤 타입의 파일 선택기를 호출하는 것이 좋다(SHOULD).

capture 속성이 지정된 경우, 사용자 에이전트는 캡처된 미디어를 로컬 또는 원격의 어떤 데이터 저장소에도 저장해서는 안 된다(MUST NOT).

참고
스크립트가 파일 선택기에서 선택된 파일 (FileList 객체로 표현됨)에 접근할 수 있게 되면, 캡처된 미디어를 저장하기 위해 다양한 메커니즘을 사용할 수 있다. 이러한 메커니즘은 이 명세의 범위 밖이다.

accept 속성의 값이 관련 캡처 컨트롤 타입을 가지지 않는 MIME 타입으로 설정된 경우, 사용자 에이전트capture 속성이 없는 것처럼 동작해야 한다(MUST).

A. 예제

이 절은 비규범적이다.

다음 예제는 호스팅 장치의 미디어 캡처 기능을 사용하여 특정 MIME 타입의 미디어를 사용자가 캡처하는 것이 선호됨을 나타내는 힌트를 제공하는 방법을 보여준다. HTML 폼을 사용하는 단순한 선언적 예제와 스크립팅을 포함하는 더 고급 예제가 모두 제시된다.

input 요소의 accept 속성이 image/*로 설정되고 capture 속성이 예제 1 또는 예제 4와 같이 지정된 경우, 파일 선택기는 아래에 제시된 것처럼 렌더링될 수 있다:

이미지 캡처 상태의 파일 선택기 컨트롤.

속성이 지정되지 않은 경우, 파일 선택기는 아래에 나타난 것처럼 렌더링될 수 있다:

파일 업로드 상태의 파일 선택기 컨트롤.

B. 참고 문헌

B.1 규범 참고 문헌

[custom-elements]
Custom Elements. Domenic Denicola. W3C. 2016년 10월 13일. W3C 워킹 드래프트. URL: https://www.w3.org/TR/custom-elements/
[HTML51]
HTML 5.1 2nd Edition. Steve Faulkner; Arron Eicholz; Travis Leithead; Alex Danilo. W3C. 2017년 10월 3일. W3C 권고안. URL: https://www.w3.org/TR/html51/
[MEDIACAPTURE-STREAMS]
Media Capture and Streams. Daniel Burnett; Adam Bergkvist; Cullen Jennings; Anant Narayanan; Bernard Aboba. W3C. 2017년 10월 3일. W3C 후보 권고안. URL: https://www.w3.org/TR/mediacapture-streams/
[RFC2119]
RFC에서 요구 수준을 나타내기 위해 사용하는 키워드. S. Bradner. IETF. 1997년 3월. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[WEBIDL-1]
WebIDL Level 1. Cameron McCormack. W3C. 2016년 12월 15일. W3C 권고안. URL: https://www.w3.org/TR/2016/REC-WebIDL-1-20161215/

B.2 정보 참고 문헌

[FILE-API]
File API. Marijn Kruisselbrink. W3C. 2017년 10월 26일. W3C 워킹 드래프트. URL: https://www.w3.org/TR/FileAPI/
[HTML]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. 살아있는 표준. URL: https://html.spec.whatwg.org/multipage/
[WEBIDL]
Web IDL. Cameron McCormack; Boris Zbarsky; Tobie Langel. W3C. 2016년 12월 15일. W3C 편집자 초안. URL: https://heycam.github.io/webidl/