matiaspl/LinkPi-ENCx

GitHub: matiaspl/LinkPi-ENCx

对 LinkPi ENC 系列与 TBS 2603SE 视频编码器固件与协议栈的逆向研究项目。

Stars: 79 | Forks: 14

# Link Pi ENC1 / TBS 2603SE 编码器连接指南 两款设备均基于 F3520D 主板([链接](https://linkpi.cn/archives/870))。不过 TBS 缺少 F3520D_EX2 扩展板(因此没有 HDMI 输出、模拟音频输入/输出、USB 接口、按键和串口头——软件支持所有这些功能)。 ![F3520D 带 EX2 扩展板](https://linkpi.cn/wp-content/uploads/2020/06/ef0b8c93641ae54-1.png) 基础软件在整条 Link Pi 编码器产品线中通用,因此 ENC-Tiny(TinyENC1)、ENC1、ENC1V2、ENC2、ENC5、ENC9 和 ENCSH(以及 TBS)具有相同的开机/关机操作。 **更新 8.04.2022**:看起来 TinyENC1 的固件略有不同,默认未启用 telnet/ssh。如果有人感兴趣,可以捐赠一台或发送恢复固件给我。 **更新 9.11.2023**:最新的设备采用性能更强的 CPU,SS5248V100(据说是 Hi35xx 芯片的即插即用替代品,尤其是 Hi3520),内存更大,闪存容量也更大。 ## 个人免责声明 我与 LinkPi 公司或其开发流程没有任何关联。我的个人看法是:它们是非常出色的设备,功能比某些贵十倍的名牌编码器更强。它拥有规划良好且响应迅速的 UI,画质和音质不错,而且“一切正常”。我已经习惯了这种 100 美元左右视频设备的表现,所以拿到并测试 ENC1 的那一刻简直是“豁然开朗” 😄 我曾尝试联系 Link Pi(开发和销售部门)关于安全问题,但未收到回复,因此决定在此公开所有潜在和真实的问题。 如果 LinkPi 的团队正在阅读,请查收邮件并至少告诉我“一边去” 😅 很遗憾底层的 Linux 系统没有得到像 UI 那样多的关注,但只要谨慎操作,新手也能在几分钟内让设备更安全。 ## 已知缺陷 * 如果编码器长时间运行(例如超过 48 小时),USBCam 流输出会冻结。同一时间快照流水线似乎不受影响。 * 混合流水线输入如果长时间运行也会冻结(但快照和流流水线似乎不受影响)。 ## 未记录的功能 ### 软件 * USBCam 支持仅音频流传输(使用 UAC 设备,例如 USB 麦克风) * 内部 RTMP 服务器支持外部连接,使用 rtmp://enc1_ip/live 路径和任意流密钥(避免使用 stream* 和 sub* 密钥,它们是内部用途),因此可以作为中继使用 * 自 **update_20210927** 起,启用本地 SRT 服务器(SLS),监听模式并接受带有正确 streamID 的连接。如果编码端推流到 srt://enc1_ip:8080?streamid=push/live/XYZ,播放/解码端可以连接到 srt://enc1_ip:8080?streamid=pull/live/XYZ(支持多客户端连接)。 > 注意:SLS 内置解析器会用 H.264 元数据覆盖 MPEGTS 视频头,因此向 SLS 发送 HEVC 流会很困难。另外,不支持加密。 * 支持高达 96 kHz 的音频采样率(但未启用,可通过编辑对应的 PHP 脚本手动添加) * ~~OPUS 音频编解码器已支持(纯软件,默认禁用)~~(不再未记录) * 截至 **20231031**,编码器支持在 SEI 视频流中插入时间戳信息(UI 提到 sinsam(规格)和 normal(与 sinsam 相同,只是不是每包而是每 GOP)) ### 硬件 * 编码器可使用 5V 供电(通过移动电源或 USB 电源搭配 USB-A 到 DC 5.5x2.5mm 插头),前提是能提供约 2 安培(Carl Mills@EnDeCo) * ENC1V2 上没有 USB-C 与标准 USB 之间的电源稳压器,因此如果通过 USB-C 提供 9/12V,设备会启动,但很可能烧毁连接到其他 USB 端口的设备(Carl Mills@EnDeCo) ## 第三方应用 静态编译的 armhf 应用程序似乎运行良好。我测试了 ffmpeg 和 v4l2-ctl,两者都可用。 * LinkPi-oled-logo-converter:将图形转换为 OLED 启动 Logo 格式 —— [GitHub](https://github.com/YveIce/LinkPi-oled-logo-converter) * ffmpeg:[官网](https://johnvansickle.com/ffmpeg/) * v4l2-ctl:[GitHub](https://github.com/9crk/v4l2-ctl) —— 该仓库包含一个静态 armhf 二进制文件 v4l2-ctl.exe * v4l2ctl-ctl-with-php:通过 PHP 远程控制 USB 摄像头参数(亮度、对比度、背光等)[GitHub](https://github.com/wilwad/v4l2-ctl-with-php) ## 有用的内部页面(未在菜单中列出) 部分页面可能因前端大幅清理而不再可用。 * http://enc1/fac.php —— 低级工厂设置(也使用 oled.php、themes.php 和 remote.php) * http://enc1/ndireg.php —— 输入 NDI 许可证字符串(需单独购买) 工程遗留: * http://enc1/demo/audio.php —— 音频混音器,[AB33EP 扩展板](https://gitee.com/LinkPi/Audio/wikis/pages/preview?sort_id=1475161&doc_id=324053) 的前端 * http://enc1/demo/audio2.php —— audio.php? 的后端 * http://enc1/demo/config.html —— 看起来像是“设置默认值”的脚本 * http://enc1/demo/rtmp.html * http://enc1/demo/netex.php * http://enc1/demo/netex%20-%20拷贝.php(在 update_20210123 移除) * http://enc1/demo/timer.html —— JavaScript 计时器,有助于测量延迟 * http://enc1/demo/demo.html —— 人脸识别(未工作) * http://enc1/wxfunc.php —— 可能是旧后端的一部分,允许未经授权更改 * http://enc1/test.html —— 可能是 QA 残留,允许未经授权的幻灯片浏览所有输入 * http://enc1/monitor.php —— 运动检测 * http://enc1/face.php —— 人脸识别 ## 交互台与计轨 交互台系统(从 20211201 版本开始)使用一个未知的 UDP 协议在 7000 端口通信,通过中央服务器(来源未公开,安装包与二进制文件位于 [这里](https://gitee.com/LinkPi/Service/))。根据符号判断,服务器是基于 LinkLib 的 QT 应用;客户端运行在 _/link/bin/Encoder_ 进程中,并使用 LinkLib 的 LinkIntercom 接口。 计轨系统能够使用 vMix 和 Sinsam(vMix 的中文克隆版)API,以及内置的 UART(_/dev/ttyAMA1_)作为下游的 PGM/PVW 信号源。文档说明(截至 20220804)仅 vMix 集成已完成。 固件分析显示系统依赖一个特定的“ttyTally”接口来控制计轨灯,该接口在系统中表现为 _/dev/ttyUSB0_。应能与大多数 Linux 支持的 USB-UART 芯片配合使用(特别是 ESP/ESP32 和 Arduino 设备)。截至 20220712,udev 规则选择 10c4:ea60(Silicon Labs CP210x UART 桥)作为 ttyTally 设备。 通用的 USB UAC 声卡通过 ALSA 似乎被用作交互台通信的源与目的地(如果同时使用摄像头和交互台可能会产生冲突)。 从 20220705/20220712 版本开始,udev 热插拔规则已包含 USB 音频设备 08dc:0014(C-Media - Unitek Y-247A)和 12d1:0010(未知设备,华为厂商 ID —— 可能是带耳机孔的 LTE 上网卡或 USB-C 手机耳机)。两者都会创建指向 /dev/headphone 的符号链接,很可能用于交互台的音频 IO。 ## 默认密码/后门 ### SSH / Telnet ``` root / linkpi.com (Link Pi) root / turbosig (TBS) root / linkpi.cn (newer Link Pi boxes) ``` /etc/passwd: ``` (...) sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin messagebus:tptRhoI1eT1Ak:1000:1000:Linux User,,,:/home/messagebus:/bin/sh avahi:uTgaD2s17tOZ.:1002:1002:Linux User,,,:/home/avahi:/bin/sh netdev:IY9bkphWuof06:1003:1003:Linux User,,,:/home/netdev:/bin/sh ``` **重要!** messagebus、avahi 和 net 账户密码为空(哈希可在此查看:https://www.seancassidy.me/etc/passwords.txt)。结合启用的 _telnetd_,这是一个**严重的安全威胁**!只有 sshd 账户受到一定保护,因为其对应的 /etc/shadow 文件不存在,认证直接失败。 请参考 **修复 -> 禁用 telnetd** ### Web 密码以未加盐的 MD5 哈希形式存储在 `/link/config/passwd.json` 中。默认值为: ``` admin / admin superadmin / linkpi.com ``` 超级管理员账户未公开文档,因此请手动删除或至少修改其密码。 ### 远程协助 内置远程协助/E.T. 拨号回家功能,会通过 NGROK 建立隧道连接到 Link Pi 服务器。如果不需要,请删除 `/link/web/config.php` 中 `$remote=` 行的 IP 地址并重启。 **更新 05.2021**:远程管理已公开可用。如果你是微信用户,可在 [[wx.linkpi.cn]] 获取绑定码,并将编码器与提供的 Web 远程访问系统配对(打开“选项” -> “反向代理”页面,粘贴正确绑定码,开启远程访问功能并保存)。 该系统处于开发早期阶段,可能会偶尔宕机。 ### ONVIF 默认运行一个未受保护的 ONVIF 服务,且无法通过 UI 禁用。 ## 修复与技巧 ### 恢复损坏的固件更新 完整闪存包与升级包不同。升级包通常是 .tar 文件,包含自上一版本以来更改的文件;而完整闪存包是分区镜像。你需要从以下链接获取对应设备的包: https://gitee.com/LinkPi/Encoder/wikis/%E5%8D%87%E7%BA%A7&%E5%88%B7%E6%9C%BA/%E5%88%B7%E6%9C%BA%E5%8C%85 并按以下步骤操作: 1. 准备一个 USB 闪存盘,格式化为 FAT32,单一分区(无隐藏分区,推荐使用带活动 LED 的盘——能让 5-6 步等待更易忍受) 2. 将对应型号的完整闪存包解压到 USB 盘根目录 3. 关闭编码器电源,将 USB 盘插入编码器的 USB 端口 4. 按住编码器上的“DEF”按钮(用牙签),并打开电源 5. 看到 OLED 显示“UPDATING”或 HDMI 显示“System Updating”后松开 DEF 按钮 6. 等待固件刷写完成(OLED 或 HDMI 显示 Logo) 7. 刷写完成后,系统将恢复默认 IP(192.168.1.217),对应多型号刷写包。需手动访问 http://192.168.1.217/fac.php,选择并确认对应型号,然后重启。 如果导航 LinkPi Gitee 仓库遇到困难,Chrome 内置的翻译引擎效果不错。 ### 为其他 HiLink/Huawei 4G 模块添加支持 使用 `lsusb` 查看设备的 VID 和 PID,然后按需修改: /etc/udev/rules.d/11-usb-hotplug.rules ``` (...) ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f01", RUN+="/etc/udev/usb4g.sh" SUBSYSTEM=="net", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14db", KERNEL=="eth*", RUN+="/etc/udev/usbUp.sh %k" (...) ``` /etc/udev/usb4g.sh ``` #!/bin/sh /usr/bin/usb_modeswitch -v 0x12d1 -p 0x1f01 -J ``` (usbUp.sh 脚本仅运行 udhcpc,无需修改) ### 创建并替换默认的“无信号” slate 图像 默认情况下,LinkLib 使用 `/link/config/nosignal.yuv` 作为视频源不可用时的占位图。该文件是 1920x1080 的原始半平面 4:2:0 子采样 YUV 位图。要创建自定义 slate,可使用 ffmpeg 转换 1920x1080 图像: ``` ffmpeg yourfile.png -c:v rawvideo -pix_fmt nv21 nosignal.yuv ``` 然后覆盖原文件。 ### 保护空密码的系统账户 为防止通过 Telnet 无密码登录,可将非 root 用户的哈希改为 `:x:`(例如使用 _vi_)。最终应如下所示: ``` (...) messagebus:x:1000:1000:Linux User,,,:/home/messagebus:/bin/sh avahi:x:1002:1002:Linux User,,,:/home/avahi:/bin/sh netdev:x:1003:1003:Linux User,,,:/home/netdev:/bin/sh ``` ### 禁用 Telnet 守护进程(已过时,新版请参考下方) 注释 `/etc/init.d/rcS` 中的 _telnetd_ 行。 ### 禁用不安全的网络服务(如 Telnet、ONVIF) 编辑 `/link/config/service.json`(感谢 [@Gradinko](https://github.com/Gradinko)): /link/config # more service.json ```json { "telnet":false, "ssh":true, "php":true, "nginx":true, "crond":true, "onvif":true, "ndi":true, "sls":true, "frp":false, "trans":false } ``` ### 设置合理的时区 —— 已过时 设备使用 busybox/libc 的时区管理,可通过 `/etc/TZ` 设置。参考 https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html 创建对应时区行。 对于 CET/CEST(欧洲/华沙): ``` echo "CET-1CEST,M3.5.0,M10.5.0/3" > /etc/TZ ``` **更新**:从 20230322 起无需此操作,时区可在 UI 中配置。 ### 启用基于密钥的 SSH 登录 大多数文件和目录的 UID/GID 为 1000,部分为 0 或 1027:100。这可能是构建脚本不完整所致。由于目录(包括 `/root` 子目录)权限设置不当,基于密钥的 SSH 登录无法工作。 修复方法如下: ``` chown root:root ~/ ``` 这将允许 `ssh-keygen` 将密钥复制到 ~/.ssh。 ## 其他发现与建议 1. 完整 UI 使用 PHP 编写。 2. 软件在有无 OLED 显示的设备上通用;特定功能通过 http://enc1/fac.php 启用(可启用 USB 录制、UVC 摄像头输入、USB UAC 音频设备、NDI 支持、视频播放、UART 支持以及 GPIO 按键映射)。若启用不生效,可检查 `/link/web/config.php` 并手动添加参数(如 `$NDI=true` 和 `$OPUS=true`)。参考 `/link/fac/DEF/web/config.php`。 3. 设备几乎不做内部日志记录:仅包含 nginx-rtmp(支持 rtmp 和 rtmp/flv over http)和 php-fpm 日志。如需启用系统日志(直到下次重启): ``` mkdir /var/log syslogd ``` 或通过启动脚本启用。 4. 设备内置 256 MB 内存。对于此类设备较为罕见,整个文件系统以可写方式挂载: ``` ~ # df -h Filesystem Size Used Available Use% Mounted on ubi0:ubifs 214.7M 62.3M 152.4M 29% / tmpfs 95.7M 0 95.7M 0% /dev tmpfs 95.7M 248.0K 95.4M 0% /tmp ``` ``` ~ # mount rootfs on / type rootfs (rw) ubi0:ubifs on / type ubifs (rw,sync,relatime) proc on /proc type proc (rw,nosuid,nodev,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,relatime) tmpfs on /dev type tmpfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) ``` 6. 内核包含以下驱动: - cdc_ncm(4G 模块) - uvcvideo(UVC 设备) - ALSA(含 UAC 设备) 此外还有厂商提供的额外模块: - 无线:88x2cu / 8821cu - Gennum SDI 解串器:gs2971a - 六通道德州仪器 ADC 音频 codec:tlv320aic31 - 硬件 SHA256 加速器:atsha204a - 未知的 GPIO 多路复用器 ## 从 HiSilicon 硬件加速 AV 后端获取信息 (https://www.programmersought.com/article/52274083303) * VPSS(视频处理子系统)`cat /proc/umap/vpss` * VI(视频输入)`cat /proc/umap/vi` * VO(视频输出)`cat /proc/umap/vo` * VEnc(视频编码器)`cat /proc/umap/venc` * VDec(视频解码器)`cat /proc/umap/vdec` * AI(音频输入)`cat /proc/umap/ai` * SYS(系统)`cat /proc/umap/sys` ### 接收/发送特定参数 ``` cat /proc/umap/hdmi0 cat /proc/umap/hdmi0_sink cat /proc/umap/hdmi0_vo ``` ### 设置 MPP 日志级别并获取内容 ``` cat /dev/logmpp echo venc=7 > /proc/umap/logmpp cat /dev/logmpp echo venc=3 > /proc/umap/logmpp ``` 获取后端内存使用信息: ``` cat /proc/media-mem ``` ## F3520D 引脚定义 * J1 —— USB 0,J4 —— USB 1 | 1 | 2 | 3 | 4 | |---|---|---|---| | +5V | USB- | USB+ | GND | * P5 —— VGA | 1 | 2 | 3 | 4 | 5 | 6 | | 8 | 9 | 10 | |---|---|---|---|---|---|---|---|---|----| | +5V | NC | NC | VSync | HSync | GND | Red | Green | Blue | GND | * J16 —— UART 0 | 1 | 2 | 3 | |----|----|-----| | TX | GND | RX | ## 软件/固件更新日志 > 以下描述为从中文翻译并略作删减的发布说明。 在更新至 20210123 之前,部分功能需重启两次才能生效。新版固件似乎会自动完成重启。 设备出厂时可能搭载无法直接下载的固件版本(例如 20201111)。 ### 5.0.0 build 20260130 **警告:更新破坏了交互台页面(ENC1V1)** * 修复 SLS 服务内存占用问题 * 为 SS524V100 系列设备添加 TRTC 流支持([腾讯 RTC](https://console.cloud.tencent.com/trtc)) * 优化 USB 摄像头音视频捕获与重连 * 优化 SRT 流解码(针对 HI3520DV400、HI3521DV100、HI3531DV100 系列) * 优化 RPC 服务,新增基于 JavaScript 的开发模式([LinkJS](https://www.yuque.com/linkpi/linkjs)),支持 SS524、SS528、SS928 系列设备 > 此模式需刷写固件,不包含在升级包中;需通过 factory setup(fac.php)启用。 ### 4.4.1 build 20251130 此更新对以下功能有影响: * 对于 20250228 及更早版本,更新后将禁用 frp 服务 * 对于版本低于 20250630 的系统,直接更新会覆盖“直播”页面的配置信息,请提前备份 * 更新将禁用红外遥控;需在遥控配置页面手动启用,并支持第二个遥控器(需选择对应设备,默认禁用) 其他变更: * [输入] 页面中 USB 摄像头的 UI 已调整,与其他页面更一致 * 新增 [串口控制] 页面,可通过串口操作设备 * 原“串口、按键”页面更名为 [串口服务器],以更好匹配功能 * [轮播] 页面移至扩展功能 * 优化双 USB 摄像头同时使用时的内存占用 * 修复频繁插拔设备输入接口导致内存持续增长的问题 * 优化有线音频输入(降噪) * 优化 SRT 流接收稳定性 * 修复 AAC 带扩展头的音频流无法解码的问题 * 修复缓冲模式下 NDI 流解码失败的问题 * 修复 WeChat 小程序加载异常 * 为所有型号添加 IPv6 支持 ### 4.3.2 build 20250831 * 修复 ENCS1 遥控器触发异常 * 修复 ENC4S 特定分辨率下 SDI 输出异常 * 优化 NTP 时间同步稳定性 * 优化 GB28181 平台连接稳定性 * 优化 [推送] 页面中 H265 预览 * 新增 RIST 协议流输出 * 新增 [轮播] 页面,支持单/多画面自动轮换(MINI 型号不支持) * 升级 RPC 服务 ### 4.2.2 build 20250630 此更新将覆盖“直播”页面的配置信息,请提前备份。 * 优化 ENC5V2、ENC2V3、ENC8 的 Wi-Fi 稳定性 * 修复 ONVIF 获取编码分辨率自动时的 RTSP 流无法获取问题 * 修复 ENC4 第二路 HDMI 输出音频异常 * 修复 MiniEnc1 线路输出音量过低 * 新增 [接口输入] 页面,支持 HDMI/SDI/VGA、USB、Line In(带降噪与增益控制) * 移除 [实验室] 中的 USB 摄像头页面,功能整合至 [输入] 页面 * 移除 [编码] 页面中的视频参数标签页,整合至 [输入] 与 [旋转/裁剪] 标签页 * 新增从混合通道中移除 Line In 音频的功能 * 新增 [流] 页面交互逻辑,可为每个输出通道指定音视频源 ### 4.1.3 build 20250430 * 修复扫描的 NDI 流与设备 IP 不匹配的问题 * 移除 ENC2V2 页面中无效的网络端口显示 * 将 ENC8 与 ENCMini 的默认 EDID 改为 1080p * 修复定时流设置无效的问题 * 修复远程协助在 ENCMini 上无法启用的问题 * 修复 ENCMini 上 SSH 登录无法启用的问题 * 新增 MAC 地址管理机制 * 在 [流] 页面的 RTSP 标签中添加自定义通道,支持 Onvif 输出 * 优化 ENCMini 内存占用 * 优化 Onvif 输出 * 优化 WebRTC 流协议 * 优化与 TallyArbiter 服务的连接稳定性 * 优化设备启动速度 ### 4.0.0 build 20250228 > 仅支持 20240131 及更高版本。切勿直接使用低于 20230426 的升级包降级。 * 移除所有型号的经典版网页及相关配置 * 优化日志功能内存占用 * 优化纯网络流视频解码逻辑 * 移除实验室中的 insta360 链接 * 新增实验室中的 USB 摄像头页面,兼容 insta360 控制 * 修复部分 USB 盘在循环录制时保留空间获取不准确的问题 * 修复文件录制页面中“循环录制”标签页显示文件名不连续的问题 * 移除 OLED 显示的 AUD 与 BR 状态,新增录制(REC)与推流(PUSH)状态显示 ### 3.6.0 build 20241231 > 仅支持 20240131 及更高版本。切勿直接使用低于 20230426 的升级包降级。 * 实验室页面新增系统日志查看/下载 * 新增线路输出控制到接口输出页面 * 编码设置页面新增 AAC-HE 音频编码 * 文件录制页面新增循环录制、分段录制、开机录制等功能 * 修复 MP3 编码异常问题 * 优化水印缩放性能 * 修改部分页面文本描述 ### 3.5.0 build 20241031 > 仅支持 20240131 及更高版本。切勿直接使用低于 20230426 的升级包降级。 * 新增 OLED 按钮交互 * 修复小屏幕菜单不显示的问题 * 直播页面修复保存后预览可能无法加载的问题 * H5 播放器页面新增指定通道全屏快捷创建功能 * 优化包含 B 帧的网络流解码 * 低频系统优化 ### 3.4.0 build 20240831 * 解码设置页面支持多路 NDI 流解码输出 * 调整直播页面交互逻辑,新增 WebRTC 流功能 * 视频特效页面支持视频流预览(需启用 RTMP 或 WebRTC 流) * 修复设备扫描 ONVIF 流输出的罕见问题 * 优化主题功能,支持设置主色调 ### 3.3.0 build 20240731 * 在解码页面新增 SRT 标签页 * 新增超低延迟 WebRTC 预览(启用后在 H5 播放器中可用) * 在流输出页面新增一键复制流 URL * 优化 DHCP ### 3.2.0 build 20240531 * 标准版:解码设置页面新增接收 RTMP 流功能,支持认证流 * 修复 ENCSHV2 型号首次启动后 Wi-Fi 默认开启的问题 * 优化帧同步功能 ### 3.1.0 build 20240430 * 标准版:修改标题搜索框交互逻辑,不再弹出搜索框 * 标准版:标题搜索功能,支持关键词高亮 * 标准版:移除编码页面的网络输入选项,将网络输入移至解码页面 * 标准版:修复 DHCP 关闭后网络设置仍可能自动获取 IP 的问题 * 标准版:完全兼容各类分辨率预览效果(包括竖屏) * 标准版:新的远程控制交互逻辑(仅部分型号支持) * 标准版:修复部分型号编码设置页面无 4K 选项的问题 * 标准版:优化部分 HTTP 接口逻辑 * 经典版:修复视频混合页面切换布局时通道切换无效的问题 * 自定义布局管理器,支持竖屏及各种自定义分辨率显示 ### 3.0.0 build 20240131 * 标准版:修复部分页面翻译问题 * 标准版:修复 NDI 注册失败问题 * 标准版:新增标题关键词搜索功能 * 在布局管理器中添加音频源绑定到视频通道的功能(*布局管理器中未看到此选项,但编码器的音频标签页可用的音频源比以往更广...*) * 修复 NTFS 格式硬盘无法自动挂载的问题 * 优化部分 HTTP 接口逻辑 * 优化文件录制功能 * 为 ENC1V3、ENCSHV2、ENC4S 型号优化内核以提升 UDP 稳定性 ### 2.9.0 build 20231229 * 经典版:修复指定输入源切换时可能无效的问题 * 标准版:修复因集成通信页面未绑定广播软件导致的页面加载异常 * 标准版:修复设置 LPH 后切换版本失效的问题 * 标准版:新增单键 HDMI 输出功能到解码设置页面 * 移除 LPH 设置水印接口中的冗余返回值 * 网络管理优化 ### 2.8.0 build 20231130 * 优化分段录制功能 * NTP 同步增加定时同步间隔 * 修复 NTP 同步导致的录制与流输出异常 * 修正 ENC1V3、ENCSHV2 等型号的 UDP 包乱序问题 * 修复通道特效数量不能超过 8 的问题 * ENCSH 型号变更后新增管理 UI,提供“经典”(原厂)与“标准”(新版)两种版本 ### 2.7.0 build 20231031 * 在编码设置页面新增帧同步设置(“sinsam/normal/close”) * 多平台直播页面——新增推流兼容性设置,支持向 YouTube 推送 H265 流 * 优化 NTP 同步 * 优化纯音频网络流编码逻辑 * 系统优化 ### 2.6.0 build 20230928 * 优化无音频网络流编码逻辑 * 优化无音频 USB 摄像头编码逻辑 * 优化设备 NDI 编码帧率 * 修复 ENC2V2 无法识别所连接 USB 网卡的问题 * 修复在低分辨率流与 NOSIGNAL 屏幕间切换导致的水印缩放问题 ### 2.5.0 build 20230831 * 修复通过 HTTP 接口获取/设置水印的异常问题 * 修复 SRT 输出中延迟无法大于 1000 ms 的问题 * 优化 ENC1V3 与 ENCSHV2 型号的 4K 输出质量 * 为 ENC1V3、ENCSHV2、ENC5V2 型号添加 HDMI 输出水平镜像功能 * 在高级设置中添加新的 Rtty 访问设备方式 * 系统优化 ### 2.4.0 build 20230731 * 修复挂载大容量设备时磁盘空间显示不准确的问题 * 修复 ENC5V2 型号恢复出厂设置时出现小概率异常 * 为 SDI 输入添加 Level B 标准支持 * 为 ENC1V3、ENC4SS、ENCSHV2 型号添加远程控制支持 * 在扩展功能中添加存储挂载设置,支持 NFS 挂载、Windows 共享目录挂载以及指定分区挂载 **缺陷**: * LCD 布局配置小程序不再可用(实测) * 色键(“绿幕”)功能偶尔会锁死(未实测) ### 2.3.0 build 20230630 * 修复无效流地址导致内存占用增加的问题 * 修正输出设置页面上显示的播放地址问题 * 新增通过升级包恢复用户设置的功能 **缺陷**: * LCD 布局配置小程序不再可用(实测) * 色键(“绿幕”)功能偶尔会锁死(未实测) ### 2.2.0 build 20230531 > 仅支持 20230426 及更高版本。其他版本请下载完整闪存固件升级。如需降级,请使用对应版本的闪存包。切勿直接使用低于 20230426 的升级包降级。**注意:此升级将覆盖设备配置信息,请按需备份** * 为所有平台直播流添加定时启用/禁用推流功能 * 优化部分型号的 Onvif PTZ 功能 * 优化集成通信功能 * 优化设备内存占用 * 调整主页端口状态显示逻辑 * 修复 ROI 设置功能 * 修复因系统时间变更导致的流时长显示不准确问题 * 修正 ENC1 型号按钮触发概率异常的问题 * 支持新的基于互联网的小程序,不再依赖局域网,可随时随地查看 **缺陷**: * LCD 布局配置小程序不再可用 * 色键(“绿幕”)功能偶尔会锁死 ### 2.1.0 build 20230426 > 仅支持 20221116 及更高版本。其他版本请下载完整闪存固件升级。如需降级,请使用对应版本的闪存包。切勿直接使用低于此版本的升级包降级。**注意:此升级将覆盖设备配置信息,请备份** > > 注意:从 20230322 升级至此版本时,我的设备变砖(软砖),不得不进行完整闪存升级才能恢复。 * 修复 B 帧解码的缓冲控制 * 降低 MP3 编码的 CPU 占用 * 支持最新的 insta360Link 固件 * 修复部分情况下网络流叠加特效异常的问题 * 修复缩放、旋转等情况下解码插图显示异常的问题 * 修复部分型号网络流旋转异常的问题 * 解决 SRT 模式下 IPv6 域名解析问题 * 替换升级包/资源上传组件 * 视频轮播支持解码与重新编码(即 U 盘播放与流输出) * 实验室新增键控功能,即绿幕抠像 ### 2.0.0 build 20230322 > 据说此版本更改了固件升级方式。官方说明:只能逐版本升级 * 状态页面——修复网络上行/下行状态显示问题 * 编码设置——(视频参数)新增裁剪与旋转网络流功能,为 HDMI/SDI 通道添加 NTSC 兼容帧率 * 编码设置——(音频参数)音频源选择支持从其他视频通道选取音频 * 输出设置——(播放 URL 设置)新增默认主/辅流命名方案修改功能 * 系统设置——新增批量配置导出与导入功能,新增时区选择功能 * 多推流设置——新增主/辅流选择选项 * 默认在无网络信号时显示无信号 slate,可通过 fac.php 页面开启/关闭此功能 * 修复部分页面翻译错误并优化其他功能 * 新增一个实验性模块:菜单栏包含 GB28181 支持、ROI 编码区域兴趣、Insta360 摄像头控制、Onvif PTZ 控制、音视频同步调整(实验功能,请谨慎使用) ### 1.0.0 build 20221116 * 新增在线固件搜索与升级功能 * rtsp 输出流添加账号密码认证功能 * 新增扩展功能下的 USB 磁盘助手 * 添加 B 帧视频流解码兼容性 * 修复使用 Wi-Fi 网络卡时获取网络状态异常的问题 * 优化交互台功能 * 新增 H5 播放器页面支持 h265 编码回放(播放 h265 流需要较高电脑性能,若卡顿请换性能更好的电脑播放) * ENC1、ENC1V2、ENCSH 型号支持 Wi-Fi6 网卡版本 2.0 ### update_20220712 * 修复使用 USB 摄像头时设备重启后小概率出现的音频捕获异常 * 修复 USB 摄像头插拔后音频无法捕获的问题 * 修复因无效 SRT 流导致编码器程序打开文件句柄数不断增加的问题 * 修复设备绑定 wx.linkpi.cn 后自定义布局管理器加载异常的问题 * 所有型号 HTTP API 接口,优化 URL 匹配规则 * 登录框水平垂直居中,修复密码自动填充时输入框背景色问题 * 修复多网卡设备获取网络状态异常的问题 * 交互台功能在 ENC1、ENC1V2、ENCSH 型号更改为 PTT * 修复辅助流组设置问题 ### update_20220518 * 修复 NDI5 无法解码 NDI4(HX2)的 H265 流问题 * 修复 YouTube 直播卡顿问题 * 适用于 20211201 之后的任意版本 ### update_20220424 * 升级至 NDI5(NDI4 用户需联系客服更换授权码) * 新增 HTTP-API 接口 * 适用于 20211201 之后的任意版本 ### update_20211201 * 新增集成呼叫系统与计轨灯支持 [官方 Wiki 链接](https://gitee.com/LinkPi/Encoder/wikis/%E8%BF%9B%E9%98%B6%E6%95%99%E7%A8%8B/%E9%9B%86%E6%88%90%E9%80%9A%E4%BF%A1%E7%B3%BB%E7%BB%9F/%E9%9B%86%E6%88%90%E9%80%9A%E4%BF%A1%E7%B3%BB%E7%BB%9F%E6%A6%82%E8%BF%B0) * 新增配置文件的导入与导出功能 * 新增后台媒体服务配置修改功能 * 修复网络设置页面 IP 等参数的格式验证 * 录制支持文件分片 * 支持无分区 SD 卡或 TF 卡 * 修复 USB 摄像头音频无效的问题 * 修复 OLED 录制状态显示异常 * 修复网络输入保存参数后设备重启的问题 ### update_20210927 * 添加 frp 支持([GitHub](https://github.com/fatedier/frp)) * 内置 sls 服务([GitHub](https://github.com/Edward-Wu/srt-live-server)) * 在输出设置页面为 SRT 输出添加 streamID 属性 * 优化 NTP 时间同步 * 优化音视频同步 * 解决远程访问与 SRT 可能产生的冲突 * 解决特定情况下 CPU 占用率异常升高的问题 * 修正网页主题显示效果 * _低比特率 NDI 支持(厂商未在更新日志中提及)。低比特率 NDI 流遵循子流设置。_ ### update_20210607 * 修复上一版本导致的语言切换问题 * 修复上一版本导致的 MP4 录制问题 * 适用于 20210123 之后的任意版本 ### update_20210527 * 添加远程访问功能([使用方法](https://linkpi-cn.translate.goog/archives/1388?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=pl&_x_tr_pto=wapp)) * 添加自定义布局设计界面 * 优化解码兼容性 * 优化解码流畅度(同步模式) * 解决网络输入源在重启后无法重新编码的问题 * 增强 HDMI 输入稳定性 * 适用于 20210123 之后的任意版本 ### update_20210123 * ENC1V2 添加远程控制操作支持 * ENCTiny 提升稳定性 * 优化文件录制操作界面 * 修复 Web 中与 OEM 包配置冲突的 CSS 设置 * 语言选择将保存在设备中,不再仅依赖 Cookie * [3520D] 解决特定版本下 HDMI 输入分辨率异常或音频异常的问题 * [3531D] 解决 OLED 程序导致高 CPU 使用率的问题 * 解决 HDMI 输出分辨率在设备重复重启后可能变小的问题 ### update_20201029 * 新增 ENC1V2 型号 * 增强 HDMI 兼容性 * 按键功能可关闭 * 修复 ENCSH 重置问题 * 修复部分情况下网页无预览图像的问题 * 修复 RTMP 大码率下一定概率的丢包问题 ### update_20200823 * 网络输入同步模式可手动设置缓冲时间 * 音频增益可同时应用于 HDMI、SDI、Line 和 Mix * 串口透明传输支持设置 IP,可实现成对透明传输应用 * 新增视频混合上下分屏布局,适合竖屏直播 * 支持关闭视频编码以实现独立音频输出 * 优化录制管理界面 * 新增 SRT 加密选项 * 支持交错视频旋转 * 添加常用 USB 串口驱动 * 新增 H5 播放器页面 * 新增即时 DHCP 功能 * 添加网络测试功能 * 优化大码率发送接收兼容性 * 优化时间戳间隔 * 修复 YouTube 音频兼容问题 * 修复 RTMP 转 RTMP 问题 * 修复 RTMP 携带帧率信息问题 ### update_20200504 * 修复 NDI 授权在升级后会被清除的问题 ### update_20200504 * 新增远程协助功能(位于系统设置底部) ### update_20200502 * 修正 SRT 延迟时间单位 * 打开 3520D 看门狗 ### update_20200430 * 新增 4G 模块支持 * 修复开启多个 SRT 通道时异常重连的问题 ### update_20200427 * 修复 Wi-Fi 管理页面问题 ### update_20200426 * 修改 SRT 用户界面 * 添加 Wi-Fi 模块支持 * 修复 Overlay 的添加、删除和修改异常 ### update_20200420 * 新增平台直播视频预览 * 优化小程序界面 ## 链接 - https://www.yuque.com/linkpi/encoder/ —— 官方英文文档 - https://linkpi.gitbook.io/encoder/ —— 旧版官方英文文档 - https://www.yuque.com/linkpi/encoder/pkfir2g98gwpzymt —— 升级固件仓库 - https://www.yuque.com/linkpi/encoder/kpvg3mbg5ussrx69 —— 启动(“完整闪存”)固件仓库 - https://www.yuque.com/linkpi/linkjs/ —— LinkJS 开发文档 - https://gitee.com/LinkPi/ —— 官方 Link Pi 代码仓库 - https://gitee.com/LinkPi/Encoder/wikis —— 官方文档,是了解内部结构和固件的好资料 - https://linkpi.cn/archives/1388 —— HTTP API([Google 翻译](https://linkpi-cn.translate.goog/archives/1388?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=pl&_x_tr_pto=wapp)) - https://gitee.com/LinkPi/Encoder/issues —— 缺陷列表(不确定是否有开发者查看过) - https://blog.csdn.net/weixin_41486034 —— 中文博客,包含许多 ENCx 使用案例和想法(很可能由 Link Pi 开发者或技术型销售运营) - https://linkpi.cn/archives/444 —— 对一篇 CSDN 文章的广泛 ENC5 测试复述 - http://wiki.endeco.xyz/ —— 英文手册,用于重新品牌化和加锁的 LinkPi 编码器(已停用 ;( )
标签:ASN解析, ENC1, ENC2, ENC5, ENC9, ENCSH, F3520D, HDMI输出, Hi3520, LinkPi, Linux系统, SEO, SS5248V100, SSH, TBS 2603SE, Telnet, TinyENC1, UI设计, USB接口, 串口调试, 主板, 云资产清单, 固件逆向, 固件逆向工程, 安全漏洞, 嵌入式系统, 模拟音频, 流媒体修复, 硬件分析, 视频流, 视频编码器, 逆向工程, 隐藏功能