WebAssembly로 카메라를 실시간으로 WebM 동영상으로 변환
5593 단어 WebM자바스크립트WebAssembly
데모
Go 버튼을 클릭하면 카메라를 실시간으로 WebM 동영상으로 변환하여 WebM 동영상을 video 요소로 표시합니다.
chrome://flags/ 에서 Experimental Web Platform features를 활성화하지 않으면 작동하지 않습니다. Chrome Canary를 사용하세요.
데모
소스 코드
1. 근로자 준비
// ワーカーで`webm-wasm.js`ファイルをロードする
const worker = new Worker("../dist/webm-transformstreamworker.umd.js");
// `.wasm`ファイルのパスをワーカーに送る
worker.postMessage("../dist/webm-wasm.wasm");
// ワーカーの準備が出来るまで待つ
await nextEvent(worker, "message");
2. 프레임 레이트나 화질 등의 정보를 송신한다
worker.postMessage({
timebaseDen: framerate,
width: value.width,
height: value.height,
bitrate,
// リアルタイムの場合はtrue
realtime: true
});
3. 스트림에서 RGBA 버퍼를 WebM 청크로 변환하는 함수 정의
const webmTransform = (await nextEvent(worker, "message")).data;
4. 스트림에 3. 설정
const webmStream = stream
.pipeThrough(map(imageData => imageData.data.buffer))
.pipeThrough(webmTransform);
5. 동영상 보기
const webmMediaStream = mediaSourceStream(webmStream, {
mimeType: `video/webm; codecs="vp8"`
});
const video = document.createElement("video");
video.src = webmMediaStream;
document.body.append(video);
video.play();
Reference
이 문제에 관하여(WebAssembly로 카메라를 실시간으로 WebM 동영상으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/relu/items/37ceb9c630f8eb101f67
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// ワーカーで`webm-wasm.js`ファイルをロードする
const worker = new Worker("../dist/webm-transformstreamworker.umd.js");
// `.wasm`ファイルのパスをワーカーに送る
worker.postMessage("../dist/webm-wasm.wasm");
// ワーカーの準備が出来るまで待つ
await nextEvent(worker, "message");
worker.postMessage({
timebaseDen: framerate,
width: value.width,
height: value.height,
bitrate,
// リアルタイムの場合はtrue
realtime: true
});
const webmTransform = (await nextEvent(worker, "message")).data;
const webmStream = stream
.pipeThrough(map(imageData => imageData.data.buffer))
.pipeThrough(webmTransform);
const webmMediaStream = mediaSourceStream(webmStream, {
mimeType: `video/webm; codecs="vp8"`
});
const video = document.createElement("video");
video.src = webmMediaStream;
document.body.append(video);
video.play();
Reference
이 문제에 관하여(WebAssembly로 카메라를 실시간으로 WebM 동영상으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/relu/items/37ceb9c630f8eb101f67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)