如何从视频中创建媒体播放



大多数mediastream示例是通过web摄像头 - 流的解释。但是我需要从本地视频(.webm或mp4)创建MediaStream。请告诉我。

在2017年5月4日更新captureStream API现在在Chrome和Firefox上都得到了支持。

var stream_from_WebM_or_Mp4_File = videoTag.captureStream();
var stream_from_Canvas2D         = canvasTag.captureStream(25);

参数" 25"是请求的帧速率。

现在,您可以使用RTCPeerConnection API共享结果流或使用Mediarecorder API记录。

请检查类似答案:https://stackoverflow.com/a/42929613/552182


有两个可能性:

1)cautrestreamuntilended /demo

仅在Firefox上支持" mozCaptureStreamUntilEnded "。

2)MediaSource API demo

MediaSource API在Chrome和Firefox上得到支持;但是,这不是实时媒体流。

您能做的就是阅读文件块;使用任何传输网关(例如Websockets,socket.io或WebRTC Datachannels)与其他用户共享它们;然后使用MediaSource API尽快播放这些块,而不是从整个文件中共享这些块。


请记住,WebRTC在Chromium和Gecko上的实现都支持单一但" Live"媒体来源。这意味着您无法使用从预录制的媒体捕获 - 作为实时媒体源。另外,您不能将伪造的Webaudio流作为实时媒体来源。

以下代码将在Firefox上不起作用:

preRecordedMediaStream = preRecordedMedia.mozCaptureStreamUntilEnded();
peer.addStream(preRecordedMediaStream);

您可以在这里测试演示。


更新于:1:06 pm- 2014年7月27日,星期日(UTC)

您可以使用filereader/webaudio api捕获预录制的mp3/ogg文件,并将作为webrtc peer Connections的实时音频源共享,与我在此演示/源代码中相同。

相关内容

  • 没有找到相关文章

最新更新