gpt4 book ai didi

javascript - 如何生成 webm 视频的初始化片段以与媒体源 API 一起使用

转载 作者:太空狗 更新时间:2023-10-29 13:17:08 24 4
gpt4 key购买 nike

我正在构建一个小型应用程序,它使用 MediaRecoder API 从网络摄像头分离重新编码的视频并将所有部分上传到服务器。
我看到使用 Media Source API 时,我需要先播放第一部分,然后再播放任何其他部分。

根据 http://www.w3.org/TR/media-source/#examples我需要文件开头的“初始化段”。

如何在 JS 中生成 WebM 的“初始化段”,以便我可以播放我选择的任何部分。有什么库吗? (我对WebM字节流格式一无所知)

最佳答案

你需要使用媒体源扩展

请引用下面的例子

<script>
var appendID = "123";

function onOpen(e) {
var video = e.target;

var headers = GetStreamHeaders();

if (headers == null) {
// Error fetching headers. Signal end of stream with an error.
video.sourceEndOfStream(HTMLMediaElement.EOS_NETWORK_ERR);
}

video.sourceAddId(appendID, 'video/webm; codecs="vorbis,vp8"');

// Append the stream headers (i.e. WebM Header, Info, and Tracks elements)
video.sourceAppend(appendID, headers);

// Append some initial media data.
video.sourceAppend(appendID, GetNextCluster());
}

function onSeeking(e) {
var video = e.target;

// Abort current segment append.
video.sourceAbort(appendID);

// Notify the cluster loading code to start fetching data at the
// new playback position.
SeekToClusterAt(video.currentTime);

// Append clusters from the new playback position.
video.sourceAppend(appendID, GetNextCluster());
video.sourceAppend(appendID, GetNextCluster());
}

function onProgress(e) {
var video = e.target;

if (video.sourceState == video.SOURCE_ENDED)
return;

// If we have run out of stream data, then signal end of stream.
if (!HaveMoreClusters()) {
video.sourceEndOfStream(HTMLMediaElement.EOS_NO_ERROR);
return;
}

video.sourceAppend(appendID, GetNextCluster());
}

var video = document.getElementById('v');
video.addEventListener('sourceopen', onOpen);
video.addEventListener('seeking', onSeeking);
video.addEventListener('progress', onProgress);
</script>


<video id="v" autoplay> </video>

<script>
var video = document.getElementById('v');
video.src = video.mediaSourceURL;
</script>

关于javascript - 如何生成 webm 视频的初始化片段以与媒体源 API 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27957493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com