摘要:sigaction函数解析 sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum设置新的信号处理函数act, 同时保留
阅读全文
03 2021 档案
摘要:当服务器close一个连接时,若client端接着发送数据,根据TCP的规定会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 又或者当一个进程向某个已经收到RST的socket执行写操作是,内核向该进程发送一
阅读全文
摘要:现象: linux下C++开发的网络服务器程序,在页面刷新时有时候会出现进程退出的情况。使用gdb调试,发现是系统发送了SIGPIPE信号,导致进程退出的。 规避或解决方法: 最根本的解决办法是提高socket编程recv或send函数的健壮性。对返回值做全面的稳妥的处理。 最有效的规避方法是在进程
阅读全文
摘要:本文主要描述音视频同步原理,及常见的音视频同步方案,并以代码示例,展示如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放。内容如下: 1.音视频同步简单介绍 2.DTS和PTS简介 2.1I/P/B帧 2.2时间戳DTS、PTS 3.常用同步策略 4.音视频同步简单示例代码 1.音
阅读全文
摘要:实时流媒体协议(RTMFP)是Adobe公司开发的一套新的通信协议,它可以使终端用户在构建于LCCS或基于Adobe AIR架构的多个Adobe Flash 播放器和应用程序之间进行直接通信。 通过RTMFP协议,社区网络和多人游戏等实时通信应用程序就能够提供高质量的实时通信解决方案。 同时,RTM
阅读全文
摘要:Command line Actionscript : http://www.redtamarin.com/about/description Desktop/Mobile : https://www.adobe.com/products/air.html Web browser without p
阅读全文
摘要:1概述 C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数
阅读全文
摘要:网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题,它对网络传输的质量有严重的影响,网络拥塞是导致网络吞吐降低,网络丢包等的主要原因之一,这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果。特别是在通信领域,网络拥塞导致的丢包,延迟,抖动等问题,严重的影响了通信质量,如果
阅读全文
摘要:参考链接: https://www.jianshu.com/p/ab32a8a3552f
阅读全文
摘要:1. Simulcast 客户端上传多分辨率,多码率,由SFU来决定数据类型下发。 2. ABR(Adaptive Bitrate Streaming) 直播上行自适应码率 当有超过1W的观众在直播时,WebRTC里simulcast支持的3种上行已经很难满足多样性要求。 3. SVC(Scalab
阅读全文
摘要:现有的前端视频帧提取主要是基于 canvas + video 标签的方式,在用户本地选取视频文件后,将本地文件转为 ObjectUrl 后设置到 video 标签的 src 属性中,再通过 canvas 的 drawImage 接口提取出当前时刻的视频帧。 受限于浏览器支持的视频编码格式,即使是支持
阅读全文
摘要:值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简
阅读全文
摘要:Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go于2009年正式推出,国内各大互联网公司都有使用,尤其是七牛云,基本都是golang写的, 传闻Go是为并发而生的语言,运行速度仅比c c++慢一点,内置协程(轻量级的线程),说白了协程还是
阅读全文