用 Nginx 作为 RTMP 服务器并提供直播服务

Nginx 除了可以做 HTTP 服务器以外,还可以做 RTMP 服务器,同时转成 HLS 再提供给用户,这样可以实现一个直播的服务器,用 OBS 推上来即可。 首先要安装 nginx-rtmp-server 模块,很多的发行版都已经包含了,它的主页是 https://github.com/arut/nginx-rtmp-module ,下面很多内容也是来自于它的教程中。 接着,配置 Nginx ,在 nginx.conf 的顶层中添加如下的配置: rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; hls on; hls_path /path/to/save/hls; hls_fragment 1s; hls_playlist_length 10s; } } } 这里表示 Nginx 要在 1935 监听一个 RTMP 服务器,然后把 live 下的视频切成片然后存在目录下,提供一个 m3u8 文件以供播放器使用。这里的参数都可以按照实际需求进行调整。这时候应该可以看到 nginx 正确监听1935 端口,这是 rtmp 的默认端口。 接着,需要在一个 HTTP server 路径下把 HLS serve 出去:

Read More

每周分享第 43 期

Async in C https://github.com/naasking/async.h Mozilla 的 QUIC 实现 https://github.com/mozilla/neqo/ 在PCI上做的攻击 https://github.com/ufrisk/pcileech 对 X 的原理介绍 https://magcius.github.io/xplain/article/index.html Ethernet 物理层的介绍 https://www.analog.com/media/en/technical-documentation/application-notes/EE-269.pdf Overleaf 更新了 TeX Live 版本 https://www.overleaf.com/blog/tex-live-upgrade-september-2019 下一代 proc macro ? https://github.com/alexcrichton/proc-macro2 iOS 13 API 变化 https://nshipster.com/ios-13/ iOS 13.1.1 发布 Rust 编译期 HashMap https://github.com/sfackler/rust-phf V8 加入顶层 Await 支持 https://chromium.googlesource.com/v8/v8.git/+/0ceee9ad28c21bc4971fb237cf87eb742fc787b8%5E%21/ ASCII 码表的一种理解 https://garbagecollected.org/2017/01/31/four-column-ascii/ Cloudflare 启用 HTTP/3 https://blog.cloudflare.com/http3-the-past-present-and-future/ ZFS 发布 0.8.2 https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.2

Read More

每周分享第 42 期

Dart 2.5 发布 Rust USB device 库 https://github.com/mvirkkunen/usb-device 同步视频的 timecode https://github.com/cnbeining/autotimecode xv6 今年换到了 riscv https://github.com/mit-pdos/xv6-riscv-fall19 pdf 文本搜索 https://pdfgrep.org/ iOS 13 正式版发布 exFAT 驱动进入 Linux 5.4 Microsoft exFAT File-System Mailed In For Linux 5.4 Along With Promoted EROFS & Greybus Bash 详细教程 https://github.com/dylanaraps/pure-bash-bible Rust 编译到 iOS bitcode https://github.com/getditto/rust-bitcode JS 运行时间 in V8 https://v8.dev/blog/cost-of-javascript-2019#json USB3.0 PIPE 接口实现 https://github.com/enjoy-digital/usb3_pipe LLVM 9.0 发布 https://lists.llvm.org/pipermail/llvm-dev/2019-September/135304.html Safari 13.0 发布 Rust 模板引擎 https://github.com/botika/yarte systemd 开始掌握 home 目录 https://www.

Read More

在 macOS 上创建 ESP 镜像文件

最近 rCore 添加了 UEFI 支持,在 QEMU 里跑自然是没有问题,然后尝试放到 VMWare 虚拟机里跑,这时候问题就来了:需要一个带有 ESP 盘的 vmdk 虚拟盘。搜索了一下网络,找到了解决方案: hdiutil create -fs fat32 -ov -size 60m -volname ESP -format UDTO -srcfolder esp uefi.cdr 其中 60m esp 和 uefi.cdr 都可以按照实际情况修改。它会把 esp 目录下的文件放到 ESP 分区中,然后得到一个镜像文件: uefi.cdr: DOS/MBR boot sector; partition 1 : ID=0xb, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 1, 122879 sectors, extended partition table (last) 接着转换为 vmdk : qemu-img convert -O vmdk uefi.cdr uefi.vmdk 这样就可以了。

Read More

每周分享第 41 期

Wget2 1.99.2 beta 发布 https://lists.gnu.org/archive/html/info-gnu/2019-09/msg00001.html 独立的 printf 实现 https://github.com/mpaland/printf Unicode 字符串长度统计 https://hsivonen.fi/string-length/ C 类型推断 https://github.com/ltcmelo/psychec#generic-programming Clang 9.0 支持 Linux 内核编译 The New Features Of LLVM 9.0 & Clang 9.0 - Includes Building The Linux x86_64 Kernel 可控制的 USB 设备 https://github.com/usb-tools/Facedancer USB 监听器 https://github.com/openvizsla/ov_ftdi 修复一个截断的视频 https://github.com/ponchio/untrunc

Read More

每周分享第 40 期

TeX Typesetting Game https://texnique.xyz/ Writing Linux Kernel Module in Rust https://github.com/fishinabarrel/linux-kernel-module-rust Sipeed Longan Nano RISC-V 开发板 https://readhacker.news/s/48EBG Systemd 加载 BPF 防火墙 https://kailueke.gitlab.io/systemd-bpf-firewall-loader/ 方舟编译器 https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler.git XLOOKUP 函数 https://techcommunity.microsoft.com/t5/Excel-Blog/Announcing-XLOOKUP/ba-p/811376 SystemVerilog to Verilog 转译 https://github.com/zachjs/sv2v USB 4.0 发布 http://www.phoronix.com/scan.php?page=news_item&px=USB-4.0-Specification-Published Android 10 发布 http://www.phoronix.com/scan.php?page=news_item&px=Android-10-Released iOS 13.1 beta 2 发布 对 iOS 设备抓包 http://blog.imaou.com/opensource/2014/12/14/pcapd_diagnostic_packet_capture.html Google 的差分隐私库 https://developers.googleblog.com/2019/09/enabling-developers-and-organizations.html Apple Music 第三方 App https://github.com/Musish/Musish

Read More

每周分享第 39 期

另一个 Pattern Matching in C++ 库 https://github.com/mpark/patterns Rust 编写的一个 shell http://www.jonathanturner.org/2019/08/introducing-nushell.html Vim 的游戏教程 https://readhacker.news/s/48nbJ 在 throw 的时候同时抓取 SO 信息 https://github.com/shobrook/rebound/ 颜色生成工具 https://github.com/sharkdp/pastel 转换 Escape Code 到 HTML https://github.com/theZiz/aha iOS 13.1 beta 发布 苹果特别活动定于 9.11 日 exFAT 规范发布 http://www.phoronix.com/scan.php?page=news_item&px=Microsoft-exFAT-Specification 可视化的 5 阶段流水线 RISC-V 模拟器 https://github.com/mortbopet/Ripes

Read More

每周分享第 38 期

针对部分 HTTP/2 实现的新漏洞 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md 只读 tmux 加魔改 https://brianmckenna.org/blog/guest_tmux Rust 编译期断言 https://github.com/nvzqz/static-assertions-rs Rust 运行时解压版的 include_bytes https://github.com/SOF3/include-flate 把 Rust 标准库进行 async 化的尝试 https://async.rs/blog/announcing-async-std/# git 添加 switch/restore 命令 https://github.blog/2019-08-16-highlights-from-git-2-23/ Flash Player in Rust https://github.com/ruffle-rs/ruffle Matplotlib Cheatsheet https://github.com/rougier/matplotlib-cheatsheet macOS Catalina 10.15 beta 6 发布 Flash Decompiler https://github.com/jindrapetrik/jpexs-decompiler Yubikey 发布 5Ci https://readhacker.news/s/489yu IBM 开放 Power 指令集 https://readhacker.news/s/48aiH iOS 13 beta 8 发布 GitHub 支持 WebAuthn https://readhacker.news/s/48dXM 编译器优化带来的安全漏洞 https://readhacker.news/s/48dke obscure C features https://multun.net/obscure-c-features.html

Read More

每周分享第 37 期

Rust netlink 库 https://github.com/jbaublitz/neli Rust 处理 signal 进行配置的 reload https://vorner.github.io/2019/08/11/runtime-configuration-reloading.html macOS 添加了 VirtIO 驱动支持 https://passthroughpo.st/mac-os-adds-early-support-for-virtio-qemu/ 一个 GNU readline 替代品 https://github.com/AmokHuginnsson/replxx Rust 1.37.0 发布 https://blog.rust-lang.org/2019/08/15/Rust-1.37.0.html iOS 13 DB7 (17A5565b) 发布

Read More

macOS 下读取并解析 EDID

之前听说了 EDID 的存在,但是一直没有细究里面的格式和内容。今天了解了一下,发现其实非常简单,下面是方法: 首先获取所有显示器输出的 EDID : ioreg -lw0 | grep IODisplayEDID 输出里会出现 “IODisplayEDID” = 的内容,尖括号内的就是 EDID 的内容。接着,我们采用 edid-decode 进行解析: git clone git://linuxtv.org/edid-decode.git cd edid-decode make ./edid-decode <Paste EDID here> 就可以看到很详细的 EDID 数据解析了。 ref: https://gist.github.com/OneSadCookie/641549 https://www.avsforum.com/forum/115-htpc-mac-chat/1466910-ability-dump-display-s-edid-mac.html

Read More