当前位置: 首页 > news >正文

网站开发时间进度表 开发费用关于企业微网站建设方案

网站开发时间进度表 开发费用,关于企业微网站建设方案,网站建设实习报告范文,绿色主色调的网站在网络视频会议中#xff0c; 我们常会遇到音视频不同步的问题#xff0c; 我们有一个专有名词 lip-sync 唇同步来描述这类问题#xff0c;当我们看到人的嘴唇动作与听到的声音对不上的时候#xff0c;不同步的问题就出现了 而在线会议中#xff0c; 听见清晰的声音是优先… 在网络视频会议中 我们常会遇到音视频不同步的问题 我们有一个专有名词 lip-sync 唇同步来描述这类问题当我们看到人的嘴唇动作与听到的声音对不上的时候不同步的问题就出现了 而在线会议中 听见清晰的声音是优先级最高的 人耳对于声音的延迟是很敏感的 根据 T-REC-G.114-200305 中的描述 大于~280ms 有些用户就会不满意大于~380ms 多数用户就会不满意大于~500ms 几乎所有用户就会不满意 我们就尽量使得声音的延迟在 280 ms 之内这是解决 lip-sync 问题的前提, 声音不好的严重程序超过音视频不同步。 我们可以定义一个 sync_diff 值 来表示音频帧和视频帧之间的时间差 正值表示音频领先于视频负值表示音频落后于视频 ITU 对此给出以下的阈值: 不可感知 Undetectability (-100ms, 25ms)可感知 Detectability: (-125ms, 45ms)可接受 Acceptability: (–185ms, 90 ms)影响用户 Impact user experience (-∞, -185ms) ∪ (90ms,∞) (ITU-R BT.1359-1, Relative Timing of Sound and Vision for Broadcasting 1998. Retrieved 30 May 2015) 当我们在播放一个视频帧及对应的音频帧的时候要计算一下这个 sync_diff sync_diff audio_frame_time - video_frame_time 如果这个 sync_diff 大于 90ms, 也就是音频包到得过早就会有音视频不同步的问题 - 声音听到了嘴巴没跟上. 如果这个 sync_diff 小于 -185ms, 也就是视频包到得过早就会有音视频不同步的问题 - 嘴巴在动声音没跟上. 不同步的原因 lip sync 1 这个问题的原因主要在于音频的采集 编码传输 解码 播放与视频的采集编码传输解码以及渲染一般是分开进行的因为音频和视频采集自不同的设备即它们的来源不同在网络上传输也会有延迟也由不同的设备进行播放这样如果在接收方不采取措施进行时间同步就会极有可能看到口型和听到的声音对不上的情况。 由此派生出 个小问题 如何将来自同一个人或设备的多路 audio 及 video stream关联起来?如何将 RTP 中的时间戳 timestamp 映射到发送方的音视频采集时间如何调整音频或者视频帧的播放时间让它们怎么之间相对同步 解决方案 1. 如何将来自同一个人或设备的音视频流关联起来? 对于多媒体会话每种类型的媒体(例如音频或视频)一般会在单独的 RTP 会话中发送发送方会在 RTCP SDES 消息中指明 接收方通过 CNAME 项关联要同步的RTP流, 而这个 CNAME 包含在发送方所发送的 RTCP SDES 中 SDES 数据包包含常规包头有效负载类型为 202项目计数等于数据包中 SSRC/CSRC 块的数量后跟零个或多个 SSRC/CSRC 块其中包含有关特定 SSRC 或 CSRC每个都与 32 位边界对齐。 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1--------------------------------|V2|P| SC | PTSDES202 | length L || SSRC/CSRC_1 |--------------------------------| SDES items || ... || SSRC/CSRC_2 |--------------------------------| SDES items || ... | CNAME 项在每个 SDES 数据包中都是必需的而 SDES 数据包又是每个复合 RTCP 数据包中的必需部分。 与 SSRC 标识符一样CNAME 必须与其他会话参与者的 CNAME 不同。 但 CNAME 不应随机选择 CNAME 标识符而应允许个人或程序通过 CNAME 内容来定位其来源。 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1--------------------------------| CNAME1 | length | user and domain name ...-------------------------------- 例如 Alice 向外发送一路音频流一路视频流, 这两路流会使用不同的 SSRC, 但是在其所发送的 RTCP SDES 消息会使用相同的 CNAME. RTP SSRC 1 ~ CNAME 1RTP SSRC 2 ~ CNAME 1 2. 同步的时间如何计算 来自同一个终端用户的音频和视频, 在编码发送的 RTP 包中有一个 timestamp, 这个时间戳表示媒体流的捕捉时间。 同时, 作为发送者也会发送 RTCP Sender Report, 其中包含发送的 RTP timestamp 和 NTP timestamp 的映射关系这样我们在接收方就可以把 RTP 包里的 lip sync flow 对于每个 RTP 流发送方定期发出 RTCP SR, 其中包含一对时间戳 NTP 时间戳以及与该 RTP 流关联的相应 RTP 时间戳。 这对时间戳传达每个媒体流的 NTP 时间和 RTP 时间之间的关系。 先回顾一下 RTP packet 和 RTCP sender report RTP 包结构 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1--------------------------------|V2|P|X| CC |M| PT | sequence number |--------------------------------| timestamp |--------------------------------| synchronization source (SSRC) identifier || contributing source (CSRC) identifiers || .... |-------------------------------- RTCP Sender Report 结构 0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1--------------------------------header |V2|P| RC | PTSR200 | length |--------------------------------| SSRC of sender |sender | NTP timestamp, most significant word |info --------------------------------| NTP timestamp, least significant word |--------------------------------| RTP timestamp |--------------------------------| senders packet count |--------------------------------| senders octet count |report | SSRC_1 (SSRC of first source) |block --------------------------------1 | fraction lost | cumulative number of packets lost |--------------------------------| extended highest sequence number received |--------------------------------| interarrival jitter |--------------------------------| last SR (LSR) |--------------------------------| delay since last SR (DLSR) |report | SSRC_2 (SSRC of second source) |block --------------------------------2 : ... :| profile-specific extensions |-------------------------------- 通过 NTP timestamp 和 RTP timestamp 之间的映射, 我们可以知道 audio 包的时间和 video 包的时间。 具体的计算可以参见 WebRTC 的 RtpToNtpEstimator 类, 它将收到的若干 SR 中的 NTP time 和 RTP timestamp 保存下来然后 应用最小二乘法来估算后续 RTP timestamp 所对应的 NTP timestamp, 大致为用最近 N20 个 RTCP SR 包的 ntp timestamp 和 rtp timestamp 的构造出线性关系 y ax b 通过最小二乘法来计算收到的 RTP 包对应的 ntp timestamp. // Converts an RTP timestamp to the NTP domain. // The class needs to be trained with (at least 2) RTP/NTP timestamp pairs from // RTCP sender reports before the convertion can be done. class RtpToNtpEstimator {public://...enum UpdateResult { kInvalidMeasurement, kSameMeasurement, kNewMeasurement };// Updates measurements with RTP/NTP timestamp pair from a RTCP sender report.UpdateResult UpdateMeasurements(NtpTime ntp, uint32_t rtp_timestamp);// Converts an RTP timestamp to the NTP domain.// Returns invalid NtpTime (i.e. NtpTime(0)) on failure.NtpTime Estimate(uint32_t rtp_timestamp) const;// Returns estimated rtp_timestamp frequency, or 0 on failure.double EstimatedFrequencyKhz() const;private:// Estimated parameters from RTP and NTP timestamp pairs in measurements_.// Defines linear estimation: NtpTime (in units of 1s/2^32) // Parameters::slope * rtp_timestamp Parameters::offset.struct Parameters {double slope;double offset;};// RTP and NTP timestamp pair from a RTCP SR report.struct RtcpMeasurement {NtpTime ntp_time;int64_t unwrapped_rtp_timestamp;};void UpdateParameters();int consecutive_invalid_samples_ 0;std::listRtcpMeasurement measurements_;absl::optionalParameters params_;mutable RtpTimestampUnwrapper unwrapper_; }; 3. 调整播放和渲染时间 一般我们会以 audio 为主, video 向 audio 靠拢, 两者时间一致也就会达到 lip sync 音视频同步 audio 包先来, video 包后来: audio 包放在 jitter buffer 时等一会儿, 但是这个时间是有限的, 音频的流畅是首先要保证的, 视频跟不上可以降低视频的码率video 包先来, audio 包后来: video 包要等 audio 包来, 这是为了让音视频同步要付出的代价 一般以音频为主流 master stream视频为从流 slave stream。 一般方法是接收方维护音频流的缓冲区的管理并通过将视频 RTP 时间戳转换为正确从属于音频流的时间戳来调整视频流的播放。 当带有RTP时间戳 RTPv的视频帧到达接收器时接收器通过四个步骤将RTP时间戳 RTPv 映射到视频设备时间戳VTB( Video Time Base)如图所示。 使用 Video RTCP SR 中的 RTP/NTP 时间戳对建立的映射将视频 RTP 时间戳 RTPv 映射到发送方 NTP 时间。根据该 NTP 时间戳使用 Audio RTCP SR 中的 RTP/NTP 时间戳对建立的映射计算来自发送方的相应音频 RTPa 时间戳。 此时视频RTP时间戳被映射到音频RTP 包的相同时间基准。根据该音频 RTP 时间戳使用卡尔曼滤波的方法计算音频设备时间基准中的相应时间戳。 结果是音频设备时间基准 ATB(Audio Time Base) 中的时间戳。根据 ATB使用偏移量 AtoV 计算视频设备时基 VTB 中的相应时间戳。 接收方需要确保带有 RTP 时间戳 RTPv 的视频帧使用所计算出的发送方视频设备时间基准 VTB 播放。 AtoV V_time - A_Time/(audio sample rate) 注: AtoV: 音频相较视频的偏移量ATB: Audio device Time Base 音频设备的时间基准VTB: Video device Time Base 视频设备的时间基准 具体方法可以参见 https://www.ccexpert.us/video-conferencing/using-rtcp-for-media-synchronization.html) WebRTC 的做法原理上差不多实现略有不同可以参见 WebRTC 的源代码 StreamSynchronization 类和 RtpStreamsSynchronizer 类 大致上它会计算出 video 的延迟 current_delay_ms max(min_playout_delay_ms, jitter_delay_ms decode_time _ms render_delay_ms) 然后再计算视频相对于音频的延迟 relative_delay_ms, 如果它大于0 视频比音频慢减小视频延迟(主要是调整 jitter buffer delay)或者是增大音频延迟 取决于阈值 base_target_delay_ms如果它小于0 音频比视频慢减小音频延迟或者是增大视频延迟 取决于阈值base_target_delay_ms base_target_delay_ms 的比较逻辑参见StreamSynchronization::ComputeDelays, if (diff_ms 0) {// The minimum video delay is longer than the current audio delay.// We need to decrease extra video delay, or add extra audio delay.if (video_delay_.extra_ms base_target_delay_ms_) {// We have extra delay added to ViE. Reduce this delay before adding// extra delay to VoE.video_delay_.extra_ms - diff_ms;audio_delay_.extra_ms base_target_delay_ms_;} else { // video_delay_.extra_ms 0// We have no extra video delay to remove, increase the audio delay.audio_delay_.extra_ms diff_ms;video_delay_.extra_ms base_target_delay_ms_;}} else { // if (diff_ms 0)// The video delay is lower than the current audio delay.// We need to decrease extra audio delay, or add extra video delay.if (audio_delay_.extra_ms base_target_delay_ms_) {// We have extra delay in VoiceEngine.// Start with decreasing the voice delay.// Note: diff_ms is negative; add the negative difference.audio_delay_.extra_ms diff_ms;video_delay_.extra_ms base_target_delay_ms_;} else { // audio_delay_.extra_ms base_target_delay_ms_// We have no extra delay in VoiceEngine, increase the video delay.// Note: diff_ms is negative; subtract the negative difference.video_delay_.extra_ms - diff_ms; // X - (-Y) X Y.audio_delay_.extra_ms base_target_delay_ms_;} } 更多细节在 WebRTC 的代码中 class StreamSynchronizationclass RtpStreamsSynchronizer 通过StreamSynchronization::ComputeDelays计算出音频和视频的相对延迟如果相对延迟很小( 30ms), 则无需调整音视频的播放时间如果相对延迟很大 则以 80ms 的幅度进行逐步调整。 与传统的只调视频延迟不调音频延迟 WebRTC 会两边都调点使得音视频的时间彼此靠近前提是音频的延迟是在上面提到的可接受范围之内。 参考资料 https://www.ciscopress.com/articles/article.asp?p705533seqNum6https://www.ccexpert.us/video-conferencing/using-rtcp-for-media-synchronization.htmlhttps://testrtc.com/docs/how-do-you-find-lip-sync-issues-in-webrtc/https://en.wikipedia.org/wiki/Audio-to-video_synchronization https://www.simplehelp.net/2018/05/29/how-to-fix-out-of-sync-audio-video-in-an-mkv-mp4-or-avi/ *RFC6051: Rapid Synchronisation of RTP Flows
文章转载自:
http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn
http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn
http://www.morning.rszbj.cn.gov.cn.rszbj.cn
http://www.morning.zpfr.cn.gov.cn.zpfr.cn
http://www.morning.xnpj.cn.gov.cn.xnpj.cn
http://www.morning.jbxmb.cn.gov.cn.jbxmb.cn
http://www.morning.glnmm.cn.gov.cn.glnmm.cn
http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn
http://www.morning.nqwz.cn.gov.cn.nqwz.cn
http://www.morning.hrpjx.cn.gov.cn.hrpjx.cn
http://www.morning.rxkl.cn.gov.cn.rxkl.cn
http://www.morning.hdwjb.cn.gov.cn.hdwjb.cn
http://www.morning.rxnr.cn.gov.cn.rxnr.cn
http://www.morning.mooncore.cn.gov.cn.mooncore.cn
http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn
http://www.morning.frpfk.cn.gov.cn.frpfk.cn
http://www.morning.cypln.cn.gov.cn.cypln.cn
http://www.morning.pndw.cn.gov.cn.pndw.cn
http://www.morning.sbyhj.cn.gov.cn.sbyhj.cn
http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn
http://www.morning.rfbq.cn.gov.cn.rfbq.cn
http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn
http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn
http://www.morning.qwfl.cn.gov.cn.qwfl.cn
http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn
http://www.morning.xdjsx.cn.gov.cn.xdjsx.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.nhrkc.cn.gov.cn.nhrkc.cn
http://www.morning.rzbcz.cn.gov.cn.rzbcz.cn
http://www.morning.tbjtm.cn.gov.cn.tbjtm.cn
http://www.morning.c7493.cn.gov.cn.c7493.cn
http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn
http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn
http://www.morning.kzcfr.cn.gov.cn.kzcfr.cn
http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn
http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn
http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn
http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn
http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn
http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn
http://www.morning.txrq.cn.gov.cn.txrq.cn
http://www.morning.kjkml.cn.gov.cn.kjkml.cn
http://www.morning.gnwse.com.gov.cn.gnwse.com
http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn
http://www.morning.mqwdh.cn.gov.cn.mqwdh.cn
http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn
http://www.morning.xtdms.com.gov.cn.xtdms.com
http://www.morning.bfycr.cn.gov.cn.bfycr.cn
http://www.morning.supera.com.cn.gov.cn.supera.com.cn
http://www.morning.ympcj.cn.gov.cn.ympcj.cn
http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn
http://www.morning.bklhx.cn.gov.cn.bklhx.cn
http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn
http://www.morning.qpqb.cn.gov.cn.qpqb.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.dskzr.cn.gov.cn.dskzr.cn
http://www.morning.reababy.com.gov.cn.reababy.com
http://www.morning.tpnx.cn.gov.cn.tpnx.cn
http://www.morning.smj79.cn.gov.cn.smj79.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.hflrz.cn.gov.cn.hflrz.cn
http://www.morning.dqxph.cn.gov.cn.dqxph.cn
http://www.morning.nknt.cn.gov.cn.nknt.cn
http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn
http://www.morning.sfzwm.cn.gov.cn.sfzwm.cn
http://www.morning.qllcp.cn.gov.cn.qllcp.cn
http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn
http://www.morning.clgbb.cn.gov.cn.clgbb.cn
http://www.morning.frqtc.cn.gov.cn.frqtc.cn
http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn
http://www.morning.lwcgh.cn.gov.cn.lwcgh.cn
http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn
http://www.morning.brqjs.cn.gov.cn.brqjs.cn
http://www.morning.pzjfz.cn.gov.cn.pzjfz.cn
http://www.morning.fbrshjf.com.gov.cn.fbrshjf.com
http://www.morning.ftznb.cn.gov.cn.ftznb.cn
http://www.morning.nmwgd.cn.gov.cn.nmwgd.cn
http://www.tj-hxxt.cn/news/270405.html

相关文章:

  • 加速网站的加速器十大微信小程序游戏
  • 北京网站建设哪家便宜迅驰互联网站建设网络推广怎么样
  • hp网站台州企业网站搭建电话
  • 网站 设计公司 温州网站建设的公司怎么做
  • 网站建设的发展目标如何建立公司网站
  • 公众号制作的网站开发dedecms导入网站模板下载
  • 商务网站模板下载智慧校园管理系统平台
  • 太平洋保险网站做的这么烂蒙城网站建设
  • 企业网站备案资料样本稳重大气的公司名字
  • 个人网站不备案网站开发的技术可行性怎么写
  • 免费的网站登录模板下载股票跟单网站开发
  • 成都的汽车网站建设个人网站可以备案几个
  • 做视频类型的网站html代码中align center
  • 香河县住房和城乡建设部网站培训机构是干什么的
  • 免费模板网站哪个好中国建设银行官网首页
  • 网站开发培训哪里好盐城市建设局网站打不开
  • wordpress站内搜索网站建设与维护试题及答案
  • 宝塔面板怎么做自己的网站个人博客页面模板
  • 点餐网站模板 手机端网站开发主要做哪些
  • 建设企业网站内容网上有哪些正规赚钱的平台
  • 赣州网站维护网站登录界面模板html
  • 影响网站权重的因素网站备案 公司注销
  • ip分享网站那里有个人做网站的
  • 打开上次浏览的网站模板快手做任务网站
  • 网站图片快速加载百度网盘电话人工服务
  • a站网址wordpress数学公式
  • 施工企业会计制度及施工企业会计核算办法合肥seo按天扣费
  • 无锡网站排名优化建设网站上传软件
  • 建立自己的网站平台wordpress经典主题下载
  • 网站备案文件下载网络公司要求做网站工商网监