自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序人生

音视频、算法分享

  • 博客(48)
  • 资源 (7)
  • 收藏
  • 关注

原创 docker打包介绍

最近在做一个开源项目,遇到开发者问各种问题,发现都是系统和软件版本的差异引起的。于是了解了一下docker的使用,发现docker真是个好东东,基本解决了各种版本差异的问题,真正做到了一键部署使用。先熟悉一下docker里的概念,docker分为镜像和容器,镜像是一个静态的文件,用于分发部署。容器是镜像运行起来后的运行时对象,可以在容器里安装软件、添加文件等,修改后可以用docker commit将容器打成一个新的镜像。镜像有点类似软件开发中的类,容器类似对象。整体流程如下图所示。

2024-01-08 14:11:30 1157

原创 实时流式数字人,代码开源

实现实时流式数字人,可以实时对话,代码已经开源

2023-12-29 10:12:11 1424 1

原创 python实现rtmp推流

本文介绍了用python实现rtmp推流的几种方式,开源代码供参考

2023-12-28 17:14:21 1159

原创 ffmpeg音视频同步

在编码时,送入编码器的frame会置pts,视频frame的pts是当前的帧数、duration是1,音频frame的pts是当前总共发送的sample数、duration是一帧的sample数(aac是1024)还有一点要注意的是,在推送h264和aac的rtmp流时,需要将codec的extradata赋值给stream,代码如下。av_rescale_q函数的作用是将codec的时间单位换算成发送流stream的时间单位,公式为。stream的timebase都是1/1000,表示ms。

2023-12-28 15:18:42 378 1

原创 linux cuda环境搭建

在深度学习中经常要用到nvidia显卡,本文介绍linux平台下nvidia显卡驱动和深度学习配套库的安装及常见问题解决

2023-12-28 15:00:33 1182

原创 webgl跨域问题

跨域问题原因是前端代码放在A服务器上,其中的脚本需要访问B服务器的接口,此时在浏览器上因为安全问题限制访问因此需要在B服务器的配置白名单中加上A。服务器需要向发出的 http 响应中添加一些 Access-Control 标头,以指示哪些网页有权从 Web 浏览器读取该信息如果只是调试用,可以在A服务器上配置代理到B服务器,如nginx配置如下:proxy_pass B服务器地址;然后将代码中访问B服务接口的地址都改成A服务代理地址,这样浏览器认为只访问A一个域名,就不会引起跨域问题了。

2023-07-09 21:18:52 1083

原创 立方体贴图shade计算

立方体贴图的6个面分别为6张图片,我们怎么根据mesh面上的坐标值来计算对应平面上的uv坐标值。

2022-11-19 20:18:57 499 1

原创 从多样性谈起到dpp

在推荐算法中,除了要考虑个性化,还要兼顾多样性,不然用户很快就会觉得单调无趣。在衡量推荐结果的多样性时,自然而然能想到的是统计推荐结果中含有不同tag的个数,tag的个数越多,多样性越好。但是这种指标有个问题,它与用户看的内容条数正相关,用户看的内容条数越多,自然tag个数会越多。假设一条feed平均有3个tag,只看了1条feed用户的多样性指标是3;看了10条feed的用户,总共有30个 tag,假设有50%的重合度,有15个不同tag,大大高于看了1条feed的用户。为了抵消feed条数的影响,于

2021-04-10 16:54:49 1026 1

原创 推荐模型可解释性

推荐算法中各种深度学习模型层出不穷,但是万变不离其宗,我们从最原始的矩阵分解模型MF谈起MF模型是求解方程UIT=ZUI^T=ZUIT=Z,Z是label矩阵,格式如下:[10x⋯00x1⋯x⋮⋮⋮⋱⋮x01⋯1]\begin{bmatrix}1&0&\text{x}&\cdots&0\\0&\text{x}&1&\cdots&\text{x}\\\vdots&\vdots&\vdots&\ddots&amp

2021-03-28 15:39:48 316 1

原创 EE探索在推荐召回中应用

bandit EE的算法网上有很多文章介绍,这里就不再赘述了。本文主要介绍EE UCB算法在推荐召回中的实际应用。UCB的公式如下:C:topic点击次数; T:topic展示次数; t:该用户展现总次数 。该公式前半部分计算topic的实际点击率;后半部分计算探索概率。在topic展现次数较大时,主要依赖前半部分的值,即实际点击率的置信度较高。在topic展现次数较小时,点击率的置信度较低,此时对该topic主要靠探索值来排名。在推荐召回中,根据上述公式计算用户对每个topic的score,

2021-03-13 12:37:49 631 2

原创 tensorflow参数分割存储

在tensorflow的分布式训练中,默认将参数以变量名的维度分布式存储在不同ps上。如将item_embedding存储在ps0上,item_bias存储在ps1上。默认不会将同一个变量存储在不同的ps上。在实际情况中,有的变量行数很多,如item_embedding的行数一般有几百万量级,如果存储在同一个ps上,会导致该ps成为性能瓶颈。为了解决以上问题,在tensorflow中可以通过定义partitioner的方式将同一个变量分布式存储在不同ps上。具体使用方法如下:self.partition

2021-02-27 10:27:24 456

原创 batch内负采样

一般在计算softmax交叉熵时,需要用tf.nn.log_uniform_candidate_sampler多itemid做随机负采样。但是在类似dssm这种双塔模型中,item侧特征除了itemid外,还有其他meta特征,此时负样本对itemid做负采样后,还需要取相应负样本的meta特征。可是在tf训练数据中并不方便建立itemid与各类meta特征的映射表。为了解决dssm类模型的负采样问题,可以取一个batch内其他用户的正样本做为本用户的负样本,以解决负采样meta特征问题。好了,废话少说,

2021-02-17 09:18:56 2731 2

原创 推荐算法入门书籍

本文列出推荐算法入门基础知识。每个知识点都能在网上找到更详细的讲解,适合入门者使用。

2021-01-02 11:39:25 885

原创 licode服务架构及流程

1,licode模块licode服务端主要由nuve、erizoController、erizoAgent和erizoJS组成。模块之间的关系借用网络上图片如下所示详情可参阅文章https://zhuanlan.zhihu.com/p/40462946。简单点理解:nuve管理多个erizoControllererizoController管理多个会议室room,一个room有一个或多...

2020-02-01 22:00:18 2647

原创 webrtc video jitter详解(二)

1,kalman滤波原理https://www.zhihu.com/question/23971601假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?取平均。再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?加权平均。怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处...

2020-01-31 15:38:23 1317 1

原创 webrtc video jitter详解(一)

webrtc jitter中缓存最近一段时间内的视频数据包,供解码线程取出解码显示。本文以h264视频为例讲解缓存机制。webrtc先将接收到的rtp包组装成帧数据(vcmframe)1,h264 rtp传输格式h264在rtp包中的封装格式如下,以下为借用网络图片上图的左边的打包流程对应的场景是“NALU的长度 <= MTU”,直接将NALU的header拷贝到H264 RTP...

2020-01-30 21:28:34 2694

原创 scala中rdd与dataframe的各种创建方式

创建RDD1,从字符串创建rddsc.parallelize(xxx)如:val testrdd=sc.parallelize(Seq((1,Array("1.0"),3),(2,Array("2.0"),6),(3,Array("3.0"),7),(1,Array("3.0"),7)))2,从文件创建rdd读文本文件val citylevel = sc.textFile(...

2019-12-14 11:10:34 1343

原创 tensorflow维度理解

tensor维度本质就是逐层脱去括号。脱第一层括号后,紧挨着的一层整体只有一个元素,故为1脱掉第二层括号后,里面整体有三个元素,即三行脱掉第四层,里面整体依然有三个元素,比如[1],[2],[3]再往里面看,只有一个元素故最后得到的是1*3*3*1。越高层的维度在越里面,具体到深度学习里,如tf.nn.embedding_lookup(itememb, batchite...

2019-11-20 19:46:48 458

原创 录像存储mp4格式

视频录像为mp4格式,采用的libmp4v2库来实现。初始化文件mp4fileHandle_ = MP4Create(filename);//创建mp4文件 //MP4SetTimeScale(mp4fileHandle_, 90000);//添加h264 track mp4VideoTrack_ = MP4AddH264VideoTrack(mp4fileHa...

2019-04-27 08:30:59 1838

原创 vr h5播放器开发

不需要用户安装客户端,实现在pc和手机浏览器中浏览vr视频。基于videojs-panorama实现,该插件依赖videojs和threejs,通过videojs播放各种格式的视频文件,然后将解码后的视频用threejs来渲染实现浏览3d视频的效果。代码处理流程如下:在plugin.js中设置player回调onPlayerReady=》 (1)如果不支持webgl,显示“不支持webgl显示”...

2018-05-24 14:15:25 4167 1

原创 ios中使用webrtc流程

介绍在ios app中调用webrtc的流程

2017-12-28 18:49:47 3753 1

原创 licode发布订阅流程

licode提供的客户端例子是web的,如果需要开发移动端,需要弄清楚底层的信令协议。本文详细讲解licode与客户端之间的发布订阅协议。

2017-12-26 19:08:32 3793 3

原创 licode安装使用

licode实现了webrtc的转发服务,通过socketio与客户端进行信令通信,媒体层走webrtc。1,准备环境操作系统ubuntu16.04如果需要外网使用,最好准备一个域名和ssl证书,现在很多云服务申请域名都提供一个二级域名的免费证书。2,安装licode1, 下载licode代码git clone https://github.com/lynckia/l...

2017-12-25 18:41:33 5939 1

原创 BimServer安装使用

介绍bimserver的安装及安装中遇到的问题解决,讲解怎么导入工程文件到bimserver中并能在线浏览3d模型

2017-12-06 18:51:33 11059 16

原创 音频采样率转换

介绍使用ffmpeg libresample库转换pcm数据的采样率

2017-11-20 15:29:37 5423 2

原创 使用fdkaac编码

介绍使用fdk-aac库编码pcm数据流程

2017-11-17 19:21:31 7539 1

原创 将h264和aac码流合成flv文件

将实时接收到音视频流合成为flv文件

2017-11-10 19:27:22 1754 1

原创 鱼眼镜头的选型

介绍vr相机开发中鱼眼镜头的选型及各种参数指标的意义

2017-10-19 19:50:20 4893 1

原创 h264码流类型

h264码流分为rbsp和mp4两种格式,详细讲解这两种码流格式的区别及解码

2015-12-12 21:04:01 3034

原创 rtcp字段计算方法

详细讲解了rtcp中几个难懂字段的计算方法,以及怎么根据rtcp包计算出抖动、延迟值。

2015-12-05 07:10:54 3172

原创 用wireshark解析应用层存储包

利用wireshark解析应用层存储包,对数据包做分析统计

2015-07-04 11:42:31 3717

原创 sdp中aac config字段计算

在rtsp和sip协议中,生成sdp信息时经常要计算aac config字段。本文主要讲述aac config字段的计算方法。

2014-01-08 21:51:10 5201 2

原创 android linphone中opengl显示的实现

以linphone为例介绍了android中用opengl显示的实现方法,特别针对视频数据流来自ndk层,怎样与java层opengl交互实现显示。

2014-01-06 23:04:02 2086

原创 gsmmuxd实现原理

介绍了gsmmuxd实现原理,通过多路复用,可以控制at模块实现同时拨号上网和接打电话

2014-01-05 22:32:54 4709 1

原创 directshow filter的编写

介绍了directshow filter的编写方法。

2014-01-04 23:22:13 945

原创 rtsp时间戳计算方法

介绍了rtsp实现中时间戳的计算方法,这块对实现拖放、快放、慢放很有用。

2014-01-03 21:46:24 7982 1

原创 lvs安装配置

安装Tar xzvf ipvsadm-1.26.tar.gz 修改makefile,去掉LIBS           += -lnl修改libipvs/Makefile,去掉CFLAGS         +=-DLIBIPVS_USE_NL MakeMake  install  配置Director 配置: ipvsadm -A -t 218.2

2014-01-02 22:20:20 916

原创 ejabberd代码分析

ejabberd服务器代码分析,主要分析了presence消息流程;添加好友时的各种状态变化、消息发送。

2014-01-01 21:42:42 3084 1

原创 ejabberd服务器安装配置

介绍了ejabberd服务器的安装和配置,特别是集群的搭建

2014-01-01 21:31:29 2088

原创 vitamio开发者大会

vitamio开发者大会,主要介绍移动端(android和ios)多媒体开发,涵盖ffmpeg软件编解码、android omx硬件编解码、播放器实现、视频直播实现。

2013-12-29 20:52:27 2293

webrtc.licode.pub.har

licode客户端与服务端soketio信令交互格式,在chrome里用开发者模式,点击import按钮查看

2020-02-01

bimviews jar包

bimview插件,解决找不到js的问题,与bimserver war包配合使用

2017-12-06

bimserver war包

bimserver编译后生成的war包,不需要配置来安装plugin。

2017-12-06

实时流合成为flv文件

将实时接收的h264和aac码流数据合成为flv文件保存,具体使用http://blog.csdn.net/lipku/article/details/78502582

2017-11-16

flv合成实现

将实时接收的h264和aac码流数据合成为flv文件保存,具体使用http://blog.csdn.net/lipku/article/details/78502582

2017-11-10

jpeg压缩库(vc6)

能够压缩yuv(I420)数据到jpeg图片 调用代码参考博文:http://blog.csdn.net/lipku/article/details/5151119

2012-06-07

彩色YUV视频序列转成灰度Y序列

能将彩色YUV视频序列转成灰度Y序列,能够播放Y序列视频

2009-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除