记一次FMS对接Node-Media-Server转码服务

今天接到一个客户的需求,在不改变原有fms服务架构的条件下,对接到Node-Media-Server,提供HLS,RTMP,Http-FLV音频转码服务。

客户以往的架构是Flash在web推流,h.264+Nellymoser编码格式,这个用flash播放是没有问题的

但flash基本上已经被各大浏览器列为默认关闭了,Android,iOS等更是不会支持的。

现在的解决方案,基本上是往HLS,http-flv上靠。HLS提供了最好的兼容性,http-flv提供了最低的延迟性,各有优劣吧。

关键的问题在于,Nellymoser编码并非互联网上广泛支持的格式,就算服务端支持,客户端也基本(有h5客户端支持,后话)上无法实现。

因此,还需要使用ffmpeg进行音频转码。

架构如下:
fms端使用服务端编程,监听 onPublish 和 onUnpublish事件,将参数通过http传参调用。

nms增加api接口收到开始和结束的事件,调起ffmpeg从fms拉流,copy视频,aac编码音频后推到Node-Media-Server。

Node-Media-Server则提供出hls,rtmp,http-flv流。

注:NodePlayer.js 支持web浏览器解码播放Nellymoser,并且兼容各大pc,安卓,iPhone。
需要了解方案详情欢迎与我联系

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

本文链接地址: 记一次FMS对接Node-Media-Server转码服务

[转] GStreamer has grown a WebRTC implementation

In other news, GStreamer is now almost buzzword-compliant! The next blog post on our list: blockchains and smart contracts in GStreamer.

Late last year, we at Centricular announced a new implementation of WebRTC in GStreamer.  Today we’re happy to announce that after community review, that work has been merged into GStreamer itself! The plugin is called webrtcbin, and the library is, naturally, called gstwebrtc.

The implementation has all the basic features, is transparently compatible with other WebRTC stacks (particularly in browsers), and has been well-tested with both Firefox and Chrome.

Some of the more advanced features such as FEC are already a work in progress, and others will be too—if you want them to be! Hop onto IRC on #gstreamer @ Freenode.net or join the mailing list.

How do I use it?

Currently, the easiest way to use webrtcbin is to build GStreamer using either gst-uninstalled(Linux and macOS) or Cerbero (Windows, iOS, Android). If you’re a patient person, you can follow @gstreamer and wait for GStreamer 1.14 to be released which will include Windows, macOS, iOS, and Android binaries.

The API currently lacks documentation, so the best way to learn it is to dive into the source-tree examples. Help on this will be most appreciated! To see how to use GStreamer to do WebRTC with a browser, checkout the bidirectional audio-video demos that I wrote.

Show me the code! [skip]

继续阅读“[转] GStreamer has grown a WebRTC implementation”

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

本文链接地址: [转] GStreamer has grown a WebRTC implementation

微信小程序蓝牙BLE发送数据包大于20字节的写法

  • 小程序不会对写入数据包大小做限制,但系统与蓝牙设备会限制蓝牙4.0单次传输的数据大小,超过最大字节数后会发生写入错误,建议每次写入不超过20字节。

可能你已经在用小程序开发BLE应用了,也遇上了这个问题,我这儿是一种写法,并不限于这一种,仅供参考

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

本文链接地址: 微信小程序蓝牙BLE发送数据包大于20字节的写法

在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 展望