
流媒体
NB_vol_1
这个作者很懒,什么都没留下…
展开
-
使用异或操作抵抗网络丢包
数据丢失常见的恢复方法假设有一个客户端和一个服务器,客户端和服务器通过网络连接,但是这个网络很不稳定,可能会出现丢包,那么怎么样才能在服务器端恢复那些丢失的数据呢。通常有两种做法:通知客户端重传丢失的数据。客户端根据原始数据生成一组冗余数据,然后把原始数据和冗余数据一起发送给服务器,只要丢失的数据量不超过阈值,服务器就可以根据未丢失的原始数据和冗余数据来恢复那些丢失的原始数据。本文介绍...原创 2019-12-03 16:52:03 · 588 阅读 · 0 评论 -
使用FFmpeg解码H264
接口定义使用FFmpeg解码之前,先定义一些接口:打开解码器:Open关闭解码器:Close解码:Decode根据上面的定义,可以使用C++来抽象出一个虚基类namespace toy { class VideoDecoder { public: struct Setting { // TODO }; virtual ~VideoDecoder() {};...原创 2019-12-03 22:16:04 · 710 阅读 · 0 评论 -
使用x264进行视频编码
定义接口在实现x264编码之前,我们先定义一些常用视频编码接口:打开编码器:Open关闭编码器:Close配置编码器:Configure或者ReConfigure获取编码器配置信息:GetConfig编码:Encode请求关键帧:ForceKeyframe根据上面的定义,可以使用C++来抽象出一个虚基类namespace toy { // 编码器基类 class Vide...原创 2019-12-03 21:53:45 · 1887 阅读 · 2 评论 -
使用openh264进行视频编码
先定义编码器类型 // 编码器类型 enum VideoCodecType { kVideoCodecGeneric = 0, kVideoCodecVP8, kVideoCodecVP9, kVideoCodecH264, kVideoCodecI420, kVideoCodecMultiplex, };定义编码器基类namespace toy { ...原创 2019-12-03 21:12:02 · 4397 阅读 · 1 评论