惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
有赞技术团队
有赞技术团队
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
The Cloudflare Blog
B
Blog
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
U
Unit 42
D
Docker
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
A
About on SuperTechFans

Lua

用 Lua 写 Android 应用? AutoLua 做到了 Android 上直接用 Lua 调 Java API 写脚本——AutoLua 技术分享 使用 Android Lua Helper 在 VSCODE 中调试安卓 Lua 应用 skynet 怎么给 mysql drive 增加对 caching_sha2_password 的支持 奇怪的小问题 Lua 代码上的优化,相互学习一下 openresty + lua 这个地方怎么写 求一份 lua 入门教程 有关 Lua 调用 C++ 编译动态库程序 飞书 + Lua 实现企业级组织架构登录认证 为什么游戏架构要用事件来驱动? vscode 上写 lua 有显示注释的插件吗? lua 为什么要使用~=当作不等于运算符? 请问现在 lua 混淆用什么工具,求常年 lua 的老哥指点 lua 的前景如何? core_framework - 基于 libev 的轻量级 lua 网络开发框架 TP-Link 官方使用的是开源固件? 表达过去、现在与将来:之将来(1) 有个问题, lua 平时能用来做做什么 ngx_lua 遇到的一个小坑 Lua IDE 各位 V 友,用 lua 作为开发语言用什么 IDE 可以方便代码提示以及调试呢 Lua 怎么实现 php strstr() 函数的功能 使用 Sol2 来进行 Lua 绑定 luarocks 使用上的一些小技巧 正在用 lua 写一个 nginx 防盗链的拓展,遇到了一个问题。 9k-18k 宁波 经验 3-5 年 本科及以上 全职 职位诱惑 : 年终奖 出国旅游 顶级办公设备及环境 关于 Lua 的标准库 Torch 一个在 MediaWiki 里面加入 Lua 脚本的插件 ngx_lua_reqstatus 实时监控 Nginx 域名 qps 的 lua 拓展
如何构建伪视频流服务? 低延时低采样, 基于 OpenResty , HTTP...
ZoomQuiet · 2019-01-31 · via Lua

背景

出于各种业务 /硬件 /软件博弈, 最终不得不面对...

  • 局网中一台 Linux mini 主机
  • 接入多路 web cam.
  • 由 FFmpeg 采集视频为帧图片编号输出到硬盘
    • -f image2 frames/%05d.jpg
    • 类似参数控制输出
  • 另外主机用 Electron 开发控制客户端
  • 需要拿到实时图像, 以便形成监察视频, 要求尽可能延时小
    • 页面刷新 15fps 以上即可
    • 但是, 从 Linux 到控制端, 延时得尽可能小

分析

  • 从硬件到展示延时尽可能小
    • 就不能走标准流媒体协议了
    • 无论什么协议都得先视频->流化->广播->接收->解码(专用)->展示
    • 特别是有的适用许可证约束只能走外网免费服务, 延时随便就超过 10 秒...
  • 注意到有很多视频广播技术其实是 伪视频:
    • 服务端持续更新约定图片
    • 客户端反复通过 HTTP 拿到包含新内容图片
    • 在 HMTL 页面反复加载
    • 形成原始意义实时电影
  • 问题在:
    • FFmpeg 是按序列号约定自动变化图片名输出到指定目录
    • 远程 JS 想拿到最新一帧图片
    • 首先要知道最新图片名, 才能发起请求

设想

功能服务

  • 用 Python 可以快速完成一个 API 服务
  • 提供接口, 比如: /frame/last 反馈最新一帧图片名
  • 然后从 Nginx 发布静态目录下载
  • 但是, 这样消耗两次 HTTP 请求时间

ngx_lua 应用

  • 用 OpenResty 加载一 lua 功能脚本
  • 提供接口, 比如: /frame/last 反馈最新一帧图片内容
  • 将两次请求变成一次
  • 但是, 这要求 lua 进行实时同步文件操作
    • 不知是否合理
    • 以及具体系统损耗如何

讨论

或是有其它更加优雅方案?

感谢大家任何建议.