简述

NodePlayer.js设计之初只是为了播放http-flv协议,但经常有客户想要知道能否播放RTMP协议,甚至RTSP协议,以往我们的回答都是不能。web浏览器没有开放TCP/UDP协议,当然无法实现RTMP、RTSP播放了。

但从 NodePlayer.js-v0.7版本开始,我们已经实现RTMP协议的播放了!
当然,不是TCP协议的RTMP, 没有这个基础条件。我们实现的方式,是通过WebSocket协议来和一个 websocket 2 tcp 服务交换协议,最终和RTMP服务器建立连接。

本播放器无需flash插件,和video.js等播放RTMP的方式完全不同。

目的

如果您正在构建新的直播项目,其实无需使用本技术。如今的流媒体服务端或者云服务,基本上都支持HTTP-FLV甚至WebSocket-FLV。
本功能是为以往使用Flash-Media-Server, Adobe-Media-Server, Nginx-RTMP, Red5,Wowza等服务端构建项目的用户,在不改变现有架构的条件下,无痛迁移到HTML5播放器。

部署方法

实际上无需过多要求,只需要一个 websocket to tcp的桥接服务。
这里,我们以一个非常轻量级,且开放源代码的ws-tcp-relay项目为例。
项目地址:https://github.com/isobit/ws-tcp-relay

进入https://github.com/isobit/ws-tcp-relay/releases ,根据服务端系统选择并下载应用程序

下载后,linux系统下添加可执行权限,然后执行

参数说明:
-b 使用binary格式传输
-p 绑定本机8080端口监听websocket连接
192.168.0.3:1935 需要桥接的远端或者本地 rtmp服务,本机可以填 127.0.0.1:1935

播放方法

使用NodePlayer.js-v0.7版播放器,播放地址

即可

如果要去掉端口号, ws-tcp-relay改为监听80端口,但可能会和webserver冲突
这里不清楚nginx反向代理是否有能力转websocket to tcp,如果能的话那就更方便。

播放器演示地址

http://www.nodemedia.cn/uploads/nodeplayer_rtmp.html

使用前请先运行ws-tcp-relay服务

RTSP流?

理论上,也是可以的,敬请期待。

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

本文链接地址: 如何使用NodePlayer.js播放RTMP协议

这种情况不管是本地运行WordPress还是阿里云ecs上,安装更新、插件、主题,都会出现。估计是woredpress的cdn对国内ip做了限流。

我解决的办法是给添加一个http proxy来解决,注意一定要是http_proxy,socks5请加一层代理转换,比如privoxy。

非常简单,打开wp-config.php,在合适的位置添加:

首先我们知道,Rtmp是一种客户端到服务端的技术,Peer to Server。WebRTC是一种客户端到客户端的技术,Peer to Peer。

Rtmp通过一个TCP连接,向服务端发送或接收连接信息,媒体数据。

WebRTC先使用ICE技术连接STUN/TURN,得到自己的连接信息。再绑定音视频设备获取媒体信息,拼装为SDP信令。两个客户端通过任意方式交换信令,建立客户端直接的连接,再使用RTP发送和接收媒体数据。

如果一个服务端实现了WebRTC客户端的能力,那么它也可以被认为是一个Peer,与用户浏览器的WebRTC客户端创建连接,获得客户端推送过来的媒体数据,就完成了Peer to Server的转换。

继续阅读

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

本文链接地址: WebRTC 研究系列 二、打通webrtc与rtmp

xcode 11.3.1 已安装,执行

出现错误

执行下面的命令,安装后, 问题解决

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

本文链接地址: macOS 10.14.6 安装cocoapods出错

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

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

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

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

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

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

 

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

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

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