HTML5 Video 與 WebRTC
HTML5 Video
1.有關canvas串流
2.從HTML5錄製影片並下載
const haveLoadedMetadata = stream => {
const video = document.querySelector("#localVideo");
video.srcObject = stream;
video.play();
return new Promise(resolve => video.onloadedmetadata = () => resolve(stream));
};
var constraints = { audio: true, video: { width: 400, height: 200 } };
navigator.mediaDevices
.getUserMedia(constraints)
.then(mediaStream => haveLoadedMetadata(mediaStream))
.then((mediaStream) => {
var options = { mimeType: "video/webm; codecs=vp9" };
const recorder = new MediaRecorder(mediaStream, options);
recorder.ondataavailable = (e) => {
console.log(e) //這裡記得要呼叫 recorder.stop() 才會有 ondataavailable
}
recorder.start();
setTimeout(() => {
recorder.stop()
}, 2000);
})
.catch(function (err) {
console.log(err.name + ": " + err.message);
});
//或是可以用第三方模組 msr
import MediaStreamRecorder from "msr";
var multiStreamRecorder = new MediaStreamRecorder.MultiStreamRecorder(
mediaStream // from getUserMedia
);
multiStreamRecorder.ondataavailable = function (blob) {
// POST/PUT "Blob" using FormData/XHR2
ws.send(blob.video);
};
multiStreamRecorder.start(3000);3. getUserMedia streaming with WebSocket
4. 之後有了mediaSource API
MediaSource 串流範例
WebRTC串流

WebRTC 可用範例:
Debug
名詞:
WebRTC 流程:
範例:
video.src vs srcObject
可能錯誤
Video 屬性
WebRTC 錄製
React Native WebRTC
Last updated