总结部分 FFmpeg 常用命令行以备查询之用。
直推(H.264 + AAC) ffmpeg -re -i INPUT_FILE_NAME -c copy -f flv rtmp://localhost/live/STREAM_NAME
转码推 ffmpeg -re -i INPUT_FILE_NAME -c:v libx264 -preset superfast -tune zerolatency -c:a aac -f flv rtmp://localhost/live/STREAM_NAME
Laravel + Swoole 实现更快的请求处理速度、更高并发有扩展包可供选择,那么如何在 Laravel 框架内优雅地嵌入 Swoole 实现 TCP/UDP Socket 服务端呢?
0x00 Why 先说说为什么要嵌入 Laravel 吧。
就一个原因:
Eloquent ORM
使用 OpenSSL 命令行生成 HTTPS 自签证书。
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout cert.key -out cert.pem 生成过程中,请注意Common Name需要正确填入需要上 HTTPS 的域名,有二级域名也要带上。其它信息随意即可。
Laravel 集成众多开包即用的功能, 虽然它真的很"胖", 但这并不影响它是个好框架. 本篇文章将采用 Laravel 5.6 版本由浅入深为大家演示: 如何使用内置的 Broadcast(广播)功能实现与客户端实时通信.
Tips: 此仓库实现本文中的 0x02 广播 代码。
0x00 准备 广播系统 - Laravel 5.
树莓派默认情况下,虚拟内存只有区区 100 MB,这完全不能满足正常使用需求,本文将讲解如何修改为合理的值。
通常情况下,在 Linux 内,我们采用swapoff/mkswap/swapon等命令来格式化并挂载 Swap,但在树莓派内我们不推荐使用这种方式,树莓派本身提供了配置文件可以直接修改。
sudo nano /etc/dphys-swapfile
找到如下行:
CONF_SWAPSIZE=100
修改为:
CONF_SWAPSIZE=1024
然后重启,使用free -m查看,你就会发现:
total used free shared buff/cache available Mem: 875 103 492 19 279 702 Swap: 1023 0 1023 Swap 已经变为 1GB。
百度来的教程都是源码编译安装,对于我这种强迫症人群来说简直是不得已才会采用的方案,于是果断自己尝试使用 apt-get 安装 Nginx + PHP 运行环境。
0x00 Update apt.
sudo apt-get update sudo apt-get upgrade 0x01 Install Nginx, PHP7.
网络上有不少安装 Node.js 和编译源码升级的教程,但在我手上的树莓派(系统版本:November 2017)已经内置 Node.js 4.x 版本。为了保持系统干净整洁,不想使用源码编译来更新,本文将讲解如何操作。
0x00 卸载 卸载原有 node.js 以及 npm。
sudo apt-get remove nodejs npm sudo apt autoremove 0x01 安装 安装前,我们需要更新 apt 源为包含指定 node.
前几天妹子送了个生日礼物——树莓派,想到公司门禁还是指纹解锁,随即说干就干,开始折腾个人脸门禁顺便入门吧。
0x00 思路 最开始我的想法是由树莓派独立完成摄像头图像捕捉、人脸检测、比对;转念一想,后期这玩意可以迎合公司项目,放到政企专网内部运作,还是 C/S 比较合适(更新方便、统一管理、Client 端平台无限制);后来受到公司另一个小伙伴的启发,既然采用 C/S 架构,那服务器端肯定是 x64 的 CPU,可以调用虹软人脸 SDK,避免使用开源算法头疼优化问题,所以最终的结构基本是这样的:
(凑合看吧……毕竟是自己整理思路的时候随手画的)
0x01 准备 硬件 树莓派 3B 罗技 C170 摄像头(街边电脑店买的) Linux 服务器一台(with x64 CPU) 软件 C Node.
在前端开发过程中常见路径,在一般情况下,同站点强烈建议使用相对路径,这里简单总结一下相对路径的写法。
./***,「.」用来表示当前目录,此写法用于引用和本页面相同目录下的其他文件。
../***,「..」用来表示上级目录,即父目录。以此类推,可以使用../../来表示上级目录的上级目录。
/****,「/」表示同站点跟目录。无论本页面目录是在哪,此写法都能引用到根目录,常见用法例如 favicon。
//****,「//」表示相同协议。此写法与绝对路径的区别就在于不指定协议,具体协议将跟随当前页面,常见用法例如全站 HTTPS。
有过 Linux 功底的同学应该会发现,如上的路径写法都是标准的 URI,Linux 的文件路径也同样遵循了 URI 的标准。具体例子在这里不再详叙,随便开个百度、淘宝的页面一抓一大把,自己实践一下也是不错的学习方式。
前段时间谷歌把 .dev 买了,我有所耳闻,但这段时间一直没有做 Web 开发,今天忽然发现 ***.dev 打不开了,故排查原因。
0x01 最开始以为是 dnsmasq 挂了,经过一番谷歌和 ping 检查,发现能够正常解析到 127.0.0.1。
Valet (Laravel): DNS address can not be found