Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于WebRTC的视频数据同步

基于WebRTC的视频数据同步
EN

Stack Overflow用户
提问于 2015-05-22 00:32:25
回答 2查看 12K关注 0票数 22

我使用WebRTC将视频从服务器发送到客户端浏览器(使用本机WebRTC API和Kurento这样的MCU WebRTC服务器)。

在发送到客户端之前,视频的每一帧都包含元数据(比如字幕或任何其他应用内容)。我正在寻找一种将此元数据发送到客户端的方法,使其保持同步(直到它实际出现的时间)。此外,我希望能够从客户端(通过Javascript)访问这些数据。

我想过的一些选择:

  • 通过WebRTC DataChannel发送数据。但我不知道如何确保数据在每帧的基础上是同步的。但是我没有办法确保数据通道发送的数据和视频通道是同步的(同样,我希望获得单个帧的精度水平)。
  • 以某种方式(WebRTC DataChannel、websockets等)手动向客户端发送数据带有与视频时间戳相匹配的时间戳。然而,即使Kurento或其他中间服务器保留视频中的时间戳信息,根据以下答案,也没有从javascript获得视频时间戳的应用方法:How can use the webRTC Javascript API to access the outgoing audio RTP timestamp at the sender and the incoming audio RTP timestamp at the receiver?。我考虑过使用标准视频元素的timeupdate事件,但我不知道它是否适用于帧的精确级别,我不知道它在实时视频中的意义,就像在WebRTC中那样。
  • 手动发送数据,并将其作为另一个TextTrack应用于视频。然后使用onenteronexit同步读取它:http://www.html5rocks.com/en/tutorials/track/basics/。它仍然需要精确的时间戳,我不知道如何知道什么是时间戳,以及Kurento是否把它们按原样传递。
  • 使用WebRTC的统计API手动计数帧(使用getstats),并希望该API提供的信息是精确的。

做这件事的最好方法是什么,以及如何解决我提到的任何一种问题?

编辑:需要使用适当的框架对元数据进行精确同步(分辨率不超过一帧)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-23 00:17:20

我怀疑每帧的数据量是相当小的。我会把它编码成一个二维条形码图像,并将它以一种方式放置在每一个帧中,这样它就不会被压缩删除。或者,只需要像这样编码时间戳。

然后,在播放器方面,您可以查看特定帧中的图像,然后获取数据,或者如果是这样的话。

票数 4
EN

Stack Overflow用户

发布于 2015-12-02 05:21:30

好的,首先让我们使用getUserMedia获取视频和音频,然后使用

https://github.com/streamproc/MediaStreamRecorder

代码语言:javascript
运行
AI代码解释
复制
/*
 *
 *  Video Streamer
 *
 */


<script src="https://cdn.webrtc-experiment.com/MediaStreamRecorder.js"> </script>
<script>

// FIREFOX

var mediaConstraints = {
    audio: !!navigator.mozGetUserMedia, // don't forget audio!
    video: true                         // don't forget video!
};

navigator.getUserMedia(mediaConstraints, onMediaSuccess, onMediaError);

function onMediaSuccess(stream) {
    var mediaRecorder = new MediaStreamRecorder(stream);
    mediaRecorder.mimeType = 'video/webm';
    mediaRecorder.ondataavailable = function (blob) {
        // POST/PUT "Blob" using FormData/XHR2

    };
    mediaRecorder.start(3000);
}

function onMediaError(e) {
    console.error('media error', e);
}
</script>



// CHROME

var mediaConstraints = {
    audio: true,
    video: true
};

navigator.getUserMedia(mediaConstraints, onMediaSuccess, onMediaError);

function onMediaSuccess(stream) {
    var multiStreamRecorder = new MultiStreamRecorder(stream);
    multiStreamRecorder.video = yourVideoElement; // to get maximum accuracy
    multiStreamRecorder.audioChannels = 1;
    multiStreamRecorder.ondataavailable = function (blobs) {
        // blobs.audio
        // blobs.video
    };
    multiStreamRecorder.start(3000);
}

function onMediaError(e) {
    console.error('media error', e);
}

现在您可以通过DataChannels发送数据,并在接收端添加元数据:

代码语言:javascript
运行
AI代码解释
复制
/*
 *
 *  Video Receiver
 *
 */


 var ms = new MediaSource();

 var video = document.querySelector('video');
 video.src = window.URL.createObjectURL(ms);

 ms.addEventListener('sourceopen', function(e) {
   var sourceBuffer = ms.addSourceBuffer('video/webm; codecs="vorbis,vp8"');
   sourceBuffer.appendBuffer(/* Video chunks here */);
 }, false);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30391939

复制
相关文章
基于WebRTC的低延迟视频直播
融云是一家全球互联网通信云平台,主要提供即时通讯、实时音视频相关业务,今天主要向大家介绍一下我们基于WebRTC的直播解决方案。
LiveVideoStack
2021/09/01
3.5K0
基于WebRTC的低延迟视频直播
基于 WebRTC 的 RTSP 视频实时预览
由于项目需要,需要使用摄像头预览功能,设备型号为海康威视。目前已存在的基于 FFmpeg 的方案延迟都太高,所以项目最终选择基于此方案。
ruochen
2021/11/21
1.9K0
WebRTC 保存视频 YUV 数据的常用方法
WebRTC 中每个音视频处理环节都对应着很多的类和结构体,它们中的很多都与视频 YUV 数据打交道,当分析到某个位置时,很希望知道这里的音视频数据是否正常,最好的方式就在这里把音视频数据保存下来,然后使用相应的播放器或者分析工具进行分析验证。本文以视频为例介绍两个常见的类保存 YUV 数据的方法。
liuzhen007
2022/11/08
1.9K0
WebRTC视频数据流程分析
直播回放:https://www.livevideostack.cn/video/online-piasy/
LiveVideoStack
2020/09/14
3K0
webrtc视频通信总结
最近项目上有个优化需求,要求把原来利用声网sdk实现的视频通信需求改成利用webrtc来实现,主要目的还是减少成本。
蛋蛋编程手记
2023/02/25
4150
webrtc视频通信总结
MYSQL数据同步之基于GTID事务数据同步
本文通过Docker以及mysql5.7 镜像进行基于GTID数据复制的同步实践。
公众号: 云原生生态圈
2020/09/21
5K0
MYSQL数据同步之基于GTID事务数据同步
技术解码 | WebRTC音视频延时、同步分析以及超低延时优化
导语 | 在实时音视频中,我们关注的最主要的指标是低延时、高质量和高流畅,那么这篇文章就从延时和流畅方面来介绍一下WebRTC框架中的低延时、流畅以及对于它们的优化。 - 延时 - 由于音频和视频包大小的不同,在WebRTC中,音频和视频的jitterbuffer也就有各自的实现。其中音频延时为playout_delay_ms和jitter_delay(NetEq接收缓存延时)。视频延时则包含jitter_delay(jitterbuffer接收缓存延时),decode_delay和rend
腾讯云音视频
2021/10/12
5.2K1
WebRTC系列分享 | WebRTC视频QoS全局技术栈
导语 | WebRTC真是一套让人既爱又恨的开源代码。一方面,WebRTC里面有一套很完善很系统的QoS策略。但另一方面,WebRTC代码庞大且版本更新迭代特别快,代码的阅读和学习难度很大。为了方便大家学习了解,我们在这里对WebRTC的QoS思想及算法实现做了一些梳理总结,以系列分享的方式呈现给大家,供大家参考。 概述 目前总结出WebRTC用于提升QoS的方法有:NACK、FEC、SVC、JitterBuffer、IDR Request、Pacer、Sender Side BWE、Probe、VFR(
腾讯云音视频
2022/03/15
2.8K0
WebRTC 视频质量调校
WebRTC 视频质量需要一些调校来正确完成。让我们看看我们在比特率、分辨率和帧率方面有哪些可用的级别。
用户1324186
2021/08/25
2.4K0
webrtc笔记(5): 基于kurento media server的多人视频聊天示例
这是kurento tutorial中的一个例子(groupCall),用于多人音视频通话,效果如下:
菩提树下的杨过
2019/07/15
2.2K0
webrtc笔记(5): 基于kurento media server的多人视频聊天示例
iOS下 WebRTC 视频渲染
今天为大家介绍一下 iOS 下 WebRTC是如何渲染视频的。在iOS中有两种加速渲染视频的方法。一种是使用OpenGL;另一种是使用 Metal。
音视频_李超
2020/04/02
2.2K0
iOS下 WebRTC 视频渲染
iOS下WebRTC音视频通话(一)WebRTC介绍WebRTC 过程
在iOS下做IM功能时,难免都会涉及到音频通话和视频通话。QQ中的QQ电话和视频通话效果就非常好,但是如果你没有非常深厚的技术,也没有那么大的团队,很难做到QQ那么快速和稳定的通话效果。 但是利用WebRTC技术,即使一个人也能够实现效果不错的音视频通话。本篇介绍WebRTC的基础概念。
Haley_Wong
2018/08/22
3.9K0
浅析WebRtc中视频数据的收集和发送流程
本文是基于PineAppRtc开源项目https://github.com/thfhongfeng/PineAppRtc
BennuCTech
2021/12/10
1.1K0
浅析WebRtc中视频数据的收集和发送流程
浅析WebRtc中视频数据的接收和渲染流程
本文基于PineAppRtc开源项目https://github.com/thfhongfeng/PineAppRtc
BennuCTech
2021/12/10
1.8K0
浅析WebRtc中视频数据的接收和渲染流程
基于WebRTC的互动直播实践
大家好,我是叶峰峰,来自映客直播,从事实时音视频的开发工作大概有七八年时间了,在加入映客后,也参与了映客实时互动直播的开发过程。本次分享主要介绍映客互动直播开发过程中遇到的一些问题,以及对直播场景下互动直播的一些优化。
LiveVideoStack
2021/09/01
2.6K0
iOS下WebRTC视频编码
在 iOS下WebRTC视频采集 一文中,向大家介绍了 WebRTC 是如何在 iOS下进行视频采集的。本文则介绍一下 iOS 下 WebRTC 是如何进行视频编码的。
音视频_李超
2020/04/02
2.6K0
iOS下WebRTC视频编码
基于WebRTC企业视频通话会议系统EasyRTC开发REST Client的过程
青犀团队在进行EasyRTC企业视频通话会议的时候,为前后端分离的架构,前端和后端之间通过RESTful接口进行通信。RESTful接口由后端开发人员进行开发,在前后端联合调试前后端人员需要先进行自测,保证开发接口的可用性和正确性。
TSINGSEE青犀视频
2021/03/31
5970
iOS下WebRTC视频解码
今天介绍一下 iOS下WebRTC 是如何进行视频解码的。关于iOS下WebRTC视频采集与编码可以看下面的文章:
音视频_李超
2020/04/02
2.1K0
iOS下WebRTC视频解码
基于MySQL Binlog 的 Elasticsearch 数据同步实践
随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。
Spark学习技巧
2019/11/18
1.2K0
基于 MySQL Binlog 的 Elasticsearch 数据同步实践
随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。
马蜂窝技术
2019/09/18
1.2K0

相似问题

基于webrtc的双向视频流

13

基于WebRTC的视频流和广播

22

基于webrtc的透明像素流视频

128

基于简单对等的视频流(WebRTC)

113

通过sdp同步webrtc视频编码器

216
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档