RTMP流媒体服务端应用开发系列 – Nginx-Rtmp鉴权设置

鉴权验证在自建直播流媒体服务端应用中是非常重要的。用以防止非法推流,控制收费播放盗链等场景。
目前各大直播云平台都支持url参数形式的鉴权验证法,例如rtmp://serverhost/app-name/stream-name?key=md5(secret+expires_timestemp)&time=expires_timestemp 这种既有私密key,又有时间戳过期判断的最简单形式,当然还能根据使用场景增加其他判断条件。
Nginx-Rtmp模块作为rtmp直播流媒体服务端,本身没有这种鉴权验证法,但能通过Notify 转为本地的http请求,使用Nginx内置的ngx_http_secure_link_module即能达到同样效果。

首先利用Nginx-Rtmp的on_play通知,将rtmp的播放事件通知到本地的http处理上来 继续阅读“RTMP流媒体服务端应用开发系列 – Nginx-Rtmp鉴权设置”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: RTMP流媒体服务端应用开发系列 – Nginx-Rtmp鉴权设置

RTMP流媒体服务端应用开发系列 – Nginx-Rtmp分离音视频流

开一个RTMP 流媒体服务端开发系列的坑,主要用到Rtmp-Nginx, Linux平台。

需求:推流端发布后,播放端只希望拉取播放纯音频或视频流。

分析:这种需求可能是为了效仿映客直播分离音视频流来播放的方法。从抓包来看,映客使用http-flv的CDN加速直播流,形如
http://pull.a8.com/live/1458696839457751.flv?only-video=1
http://pull.a8.com/live/1458696839457751.flv?only-audio=1
有什么好处? 不确定,估计播放端网络卡时,可以断开视频流但保持码率不大的音频流,体验较好。 还有一种可能是方便做纯音频类应用,播放端只想听到音频,虽然可以不解码视频,但是视频的数据也不想拉下来,节省移动数据流量。

思路:使用Nginx-Rtmp的exec来调用ffmpeg,在服务端分离rtmp流。

实现: 继续阅读“RTMP流媒体服务端应用开发系列 – Nginx-Rtmp分离音视频流”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: RTMP流媒体服务端应用开发系列 – Nginx-Rtmp分离音视频流

在DD-WRT路由器上设置VPN服务为3G/4G网络提供google服务

目前Google系列服务使用hosts的方式访问仍然是比较方便的,在DD-WRT路由器上设置DNSMas来通配google.com 来为本局域网内所有设备提供简单的访问方式。

但有时候外出使用3/4G时也想使用,又不想花钱,在自家DD-WRT路由器上开启VPN服务就行!

首先需要满足如下条件:

  1. 一台DD-WRT路由器
  2. 家里的宽带有公网IP,并能从外部链入。

步骤:

  1. 先注册花生壳动态域名解析,网上教程颇多这里就不重复了。
  2. DDWRT-> 设置->动态DNS
    QQ20160316-1
  3. DDWRT->服务->VPN
    QQ20160316-2
    服务器IP就填路由器IP,客服端IP是一个范围,CHAP-Secrets 就是账户区,格式是
    用户名+ 空格 + * + 空格 + 密码 + 空格 + *
  4. DDWRT->NAT/QoS ->端口转发
    QQ20160316-3
    添加一条VPN的1723端口转发。
  5. DDWRT->服务->服务
    QQ20160316-4
    开启DNSMasq,添加规则。至于hosts我就不公布我用的了,网上也挺多。

手机切到3G/4G,添加VPN,地址填花生壳注册下来的动态域名,用户名密码就是CHAP-Secrets里添加的,连接成功,试试看google.com是否就能打开了。

当然,也不只是3,4G网络环境,你在其它WIFI环境下也能用。也不只google服务可以用hosts+https来访问,facebook,twitter也是可以的,浏览器、APP都可以。

关键是一分钱都不用花,博主路由器是TP-LINK WR841N-V7刷的。

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 在DD-WRT路由器上设置VPN服务为3G/4G网络提供google服务

博客迁移完成SAE ==> aliyun

本博早先挂在新浪SAE,早期用户送豆1w多个,自己充值了100,挺过了4年多。最近又提醒豆不够用了,心一横,直接迁移到阿里云了。
目前用的是阿里云送的免费2年的万网云主机,33元/年的CDN。wordpress自然就可以用最新版了,不像SAE需要专版。
导出原博客的xml直接导入,媒体文件也能直接迁移过来,挺方便。
最总要的一点是需要将原sinaapp.com下的域名301跳转到新域名来。
直接在sae后台创建一个新版本,修改config.yaml
插入

 

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 博客迁移完成SAE ==> aliyun

2016年NodeMediaClient 展望

2016年1月4日,NodeMedia发布了Android端0.9.3,iOS端0.5.2版.现在的SDK已经具备了以下功能:

发布推流端:

  1. H.264/AAC组合的RTMP协议推流发布
  2. 适合手机全屏(16:9 || 9:16)发布,自动横竖屏旋转,分辨率切换的视频采集器.
  3. 支持HE-AAC,高效能AAC的编码,音质不变,流量省一半.
  4. 支持背景噪音抑制,不会有沙沙的环境噪音.
  5. 发布中途可切换前后摄像头
  6. 发布中途来电,自动暂停音视频录制,挂断电话后恢复继续推流(来电没有中断网络的前提下)
  7. 全时自动对焦
  8. 单音频流发布
  9. 视频预览开启后,任意时间截图

直播播放端:

  1. 为RTMP协议专门优化的解析器,极短的分析时间,最快毫秒级视频打开速度
  2. 也支持HLS,HTTP-FLV,RTMPT直播协议
  3. 支持H.264,VP6视频解码
  4. 支持AAC,speex,nellymoser音频解码
  5. 全自动异常重连
  6. 精准缓冲区控制
  7. 播放中途任意时刻截图
  8. 后台播放

当然,我们还会继续前进,更丰富的功能将会继续加入.

推流发布端:

  1. 麦克风自动增益.
  2. speex编码
  3. 回音消除
  4. 实时特效,自动美颜
  5. 硬件编码
  6. 4:3分辨率

直播播放端:

  1. 多路流同时播放
  2. 硬件解码

将会增加专门用于点播类型的播放器,进度条,拖动等.
可能会推出适用于嵌入式平台的推流库,应用场景为类似”女神的房间”用的直播摄像头.
可能会完善海康大华等IPC,DVR,NVR的取流转RTMP协议的转发器.
可能会推出Windows/Linux/Mac平台的SDK.

转自:http://www.nodemedia.cn/zh/blog/17-2016-NodeMediaClient.html

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 2016年NodeMediaClient 展望

图示:如何选择开源许可证

如何为代码选择开源许可证,这是一个问题。世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种—-GPLBSDMITMozillaApacheLGPL—-之中做选择,也很复杂。

乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。只用两分钟,你就能搞清楚这六种许可证之间的最大区别。下面是阮一峰先生制作的中文版。 继续阅读“图示:如何选择开源许可证”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 图示:如何选择开源许可证

蓝色Eclipse PTD配色

参照Cobalt配色修改的,看起来不错,很养眼!

eclipse-pdt-Cobalt

要求PDT Helios

导入方法:

菜单栏->File->Import->General->preferences =>Next

选择 eclipse-pdt-Cobalt.epf 文件

选中Import ALL =>Finish

注意这样会覆盖所有的配置,请做好备份 = =

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 蓝色Eclipse PTD配色

Kohana v3 captcha module 简单用法

git地址

git://github.com/kolanos/kohana-captcha.git

在 bootstrap.php 中开启

view中的写法

controller中的写法

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Kohana v3 captcha module 简单用法