剑痴乎

  • 首页
  • 文章分类
    • 音视频
    • WebRTC
    • 编程之美
    • Linux
    • Windows
    • 生活点滴
    • 校园生活
  • 参考
    • API参考
    • 实用工具
    • 测试音视频
    • 文档
  • 留言板
  • 关于
剑痴乎
代码为剑,如痴如醉
WebRTC

WebRTC研究:MediaStream概念以及定义

根据W3C的WebRTC 1.0: Real-time Communication Between Browsers规范,WebRTC的源码中定义了两套主要的C++接口,分别是MediaStream与PeerConnection相关的API。本篇文章主要介绍下MediaStream API中一些概念,方便理解内部代码如何处理。 MediaStream 相关API定义在源码api\media_stream_interface.h中。里面主要涉及这4个概念:source,sink,mediatrack,mediastr…

2019年10月22日 1条评论 1792点热度 9人点赞 Jeff 阅读全文
侃侃而谈

第一次回退手机系统

前段时间我的华为手机更新了系统,更新到安卓9.1,说增加方舟编译器等功能。可是问题也来了,续航尿崩,以前都是两天一充,现在一天一充也满足不了,一晚上待机都要耗百分十几的电。而且超级快充也变慢了。看了论坛,发现很多人有同样问题。无奈之下,只能退回到之前版本系统了。下了华为手机助手,USB连接手机,备份好后就开始回退之前版本了。回退后,手机被重新格式化了,所以还要恢复之前的备份。折腾了下,续航恢复之前的水平了,而且坏了好几个月的指纹解锁竟然也恢复了,之前我还以为坏了,期间也更新了几次系统。只能说华为软件水平真是一般,就…

2019年9月15日 0条评论 786点热度 0人点赞 Jeff 阅读全文
WebRTC

WebRTC研究:丢包判断

使用RTP协议封装数据时,我们可以通过RTP报头的序列号连续性判断是否丢包。但由于RTP报头序列号只有两字节表示,值范围[0,65535],存在回绕问题(参考之前文章:WebRTC研究:RTP中的序列号以及时间戳比较,建议先阅读一遍此文章)。所以判断序列号连续性时得考虑回绕问题。下面我们就结合WebRTC这相关源码,讲下如何有效地根据序列号进行丢包判断。 首先看下这块代码,代码位于jitter_buffer.cc中: [crayon-63e12bde11802918619846/] IsNewerSequenceN…

2019年9月2日 3条评论 1655点热度 7人点赞 Jeff 阅读全文
音视频

音视频开发入门:音频基础

什么是声音 介质振动在听觉系统中产生的反应。是一种波。因为是一种波,所以我们可以用频率、振幅等描述。 图1.蚊子翅膀振动产生声音传到人耳 频率与振幅 有两个基本的物理属性:频率与振幅。声音的振幅就是音量,也叫作响度,频率是单位时间振动次数,频率的高低就是指音调,频率用赫兹(Hz)作单位。 图2.声音波形 人耳只能听到20Hz到20kHz范围的声音。小于20HZ的叫次声波,大于20kHz的叫做超声波。超声波在现实中有很多应用,例如洗牙,测距,成像等。 图3.声音按频率分类 分贝 因为人耳的特性,我们对声音的大小感知呈…

2019年8月25日 8条评论 2270点热度 12人点赞 Jeff 阅读全文
WebRTC

WebRTC研究:RTP中的序列号以及时间戳比较

在使用RTP协议时,如果需要网络对抗,保障QoS(Quality of Service,服务质量),我们需要通过序列号以及时间戳的比较,进行丢包判断。但是有个问题,比如一个RTP包,序列号为number1:5000,另一个RTP包序列号为number2:60000,可以说60000一定比5000大,是个更新的RTP包吗? 当然不是了,首先我们先重温下RTP数据包的结构。 在RFC3550中RTP固定报头结构按如下定义: [crayon-63e12bde12f67641442254/] 可以看到,RTP序列号sequ…

2019年7月6日 3条评论 2265点热度 12人点赞 Jeff 阅读全文
Web

FireBreath插件IE浏览器中文字符乱码问题

去年写过FireBreath插件的文章,那时刚到新公司,独自开发一款传统的视频播放器插件。后面基于Firebreath框架开发,支持IE以及Firefox。转眼一年多了,播放器插件已经成功部署在公司多个项目中,无论特色功能点,性能,稳定性,都达到令人满意的程度。最近一个项目要在IE11浏览器上跑,由于之前都是在Firefox上跑,IE上没怎么测过,所以在IE上跑时出现了个问题:接口传入的中文字符乱码。 播放器插件多个接口需要传入带中文字符参数,比如视频OSD水印,抓图位置以及图片水印,下载录像保存位置,下载录像添加…

2019年6月3日 0条评论 781点热度 0人点赞 Jeff 阅读全文
WebRTC

WebRTC研究:关键帧请求

WebRTC采用UDP传输流媒体数据,不可避免存在丢包情况。WebRTC主要采用FEC(Forward Error Correction,前向纠错)以及NACK(negative-acknowledge character,否定应答)对抗网络丢包。对于NACK,遇到丢包了才通知发送端重传对应数据包,但不是所有情况下某个包丢了就一定重传该包,有些场景下,重传该包会带来其它问题,例如增大延时,缓存过大,同时也可能发送端没有该数据包缓存,导致无法重传,此时会放弃重传该包。由于关键帧可以单独解码出图像,不参考前后视频帧,所…

2019年5月28日 8条评论 2926点热度 13人点赞 Jeff 阅读全文
音视频

ffmpeg视频编码YUV与AVFrame对应关系

最近群里有人问:NV12格式,怎么对应AVFrame中的data[0],data[1],data[2]。其实ffmpeg视频编码,YUV与AVFrame对应关系很简单。 在视频编码时,我们需要把YUV数据拷贝到AVFrame.data中,视频编码有硬件加速以及非硬件加速两种,所以对应关系也有两种。 硬件加速编码 指通过显卡进行硬件加速编码,例如指定vaapi进行编码。使用硬件加速编码时,YUV输入格式一般都是NV12,我做过的Intel以及Nvidia编码都是这样。之所以使用NV12格式,在Intel开发文档有这样…

2019年3月24日 2条评论 1837点热度 2人点赞 Jeff 阅读全文
1…34567…24
版权声明

为支持原创,创作更好的文章,未经许可,禁止任何形式的转载与抄袭,如需转载请邮件私信!本人保留所有法定权利。违者必究!

近期评论
  • ouyang on WebRTC研究:RTP报头扩展假如放中间是否有歧义了,例如我中间说2个…
  • Artificial intelligence creates content for the site, no worse than a copywriter, you can also use it to write articles. 100% uniqueness :). Click Here: https://bit.ly/3iPPltW?h=70a8a6efa38594c078497e06bfe05726& on WebRTC研究:基于Transport Feedback的早期丢包检测upn6859h
  • yy on WebRTC研究:Trendline滤波器-TrendlineEstimator我也有这个问题,不理解。
  • Unreal on WebRTC研究:统计参数之往返时延非常不准
  • huowa222 on WebRTC研究:FEC之RED封装rtp header 有 pt 字段

COPYRIGHT © 2022 jianchihu.net. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang