在M1/M2/M3的MacOS上运行amd64的容器,采用命令行

进入容器后可以看到所有命令都是通过/run/rosetta/rosetta转译运行

如果需要通过vscode直接远程到容器内进行开发,目前版本1.88.1在容器内安装开发插件会失败,一直卡在扩展签名处,解决办法是:

修改remote的settings.json, 添加

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

本文链接地址: 解决apple silicon vscode远程到一个amd64容器里无法安装扩展到问题

Supported

  • AudioDecoder can decode AAC, FLAC, MP3, Opus, and Vorbis.
  • VideoDecoder can decode VP8, VP9, H.264 and AV1 (AV1 not available on Android).
  • VideoEncoder can encode VP8 and VP9.
  • VideoTrackReader.
  • ImageDecoder can decode BMP, GIF, JPG, PNG, ICO, AVIF, and WebP.

Unsupported

  • AudioEncoder is not yet implemented.
  • VideoEncoder can encode H.264, but it is limited:
    • H.264 encoding is not available on all platforms.
    • The output format is Annex B. We expect the format to be AVC in the future.
  • new VideoFrame(pixelFormat, planes, frameInit) is not available.
  • ImageDecoder  can’t decode SVG. We don’t expect SVG to ever be supported.

Caveats

  • AudioDecoder and VideoDecoder call error(undefined) to report an error. We expect the value to be a DOMException in the future.
  • VideoDecoder, VideoEncoder, and EncodedVideoChunk are not available in Worker contexts. Worker support will be added in the future.
  • VideoEncoder does not emit VideoDecoderConfig objects to describe its output. We expect configs to be emitted in the future.
  • Constructing a VideoFrame from an ImageBitmap produces an I420 frame. We expect this to change to RGBA or an opaque format in the future.
  • In some cases a valid VideoFrame has format === null and planes === null. VideoFrame.createImageBitmap() is available. We expect to add explicit conversion APIs to address these cases in the future.
  • ImageFrame  does not provide YUV access. We expect that ImageDecoder will output VideoFrame objects in the future.
  • H.264 extradata and payload must be provided in AVC format.

Known Issues

AudioDecoder, VideoDecoder, and VideoEncoder may produce outputs or errors after calling reset().

有被爽到

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

本文链接地址: WebCodecs in Chrome M86: Limitations

简述

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服务