end*_*shi 6 javascript video streaming mediastreamsource webrtc
大多数Mediastream示例都是webCam-stream的解释.但我需要从本地视频文件(.webm或mp4)创建MediaStream.请告诉我.
2017年5月4日更新:captureStreamChrome和Firefox现在都支持API.
var stream_from_WebM_or_Mp4_File = videoTag.captureStream();
var stream_from_Canvas2D = canvasTag.captureStream(25);
Run Code Online (Sandbox Code Playgroud)
参数"25"是请求的帧速率.
现在,您可以使用RTCPeerConnection API或使用MediaRecorder API记录来共享结果流.
请检查类似的答案:https://stackoverflow.com/a/42929613/552182
有两种可能性:
1)captureStreamUntilEnded/Demo
它仅在Firefox上支持为" mozCaptureStreamUntilEnded".
2)MediaSource API 演示
chrome和firefox都支持MediaSource API; 但是,它不是实时媒体流.
你可以做的是读取文件块; 使用任何传输网关(如WebSockets,socket.io或WebRTC数据通道)与其他用户共享; 然后使用MediaSource API尽快播放这些块,而不是等待整个文件共享.
请记住,WebRTC在chrome和gecko上的实现仅支持单个但"实时"的媒体源; 这意味着您无法将预先录制的媒体中的捕获流用作LIVE媒体源.此外,您不能使用假的WebAudio流作为LIVE媒体源.
以下代码不适用于Firefox:
preRecordedMediaStream = preRecordedMedia.mozCaptureStreamUntilEnded();
peer.addStream(preRecordedMediaStream);
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一个演示.
您可以使用FileReader/WebAudio API捕获预先录制的mp3/ogg文件,并将其作为LIVE音频源共享到WebRTC对等连接,就像我在此演示/源代码中所做的那样.
| 归档时间: |
|
| 查看次数: |
6500 次 |
| 最近记录: |