LinkJS-用JavaScript编写编解码器软件 📅 2026/7/22 9:19:24 本文镜像https://linkpi.cn/archives/2298本文链接https://blog.csdn.net/weixin_45326556/article/details/163079286LinkJS-用JavaScript编写编解码器软件1. 行业的痛点2. 开启开发者模式3. 用LinkJS开发软件调试运行4. LinkJS的小例子程序4.1 HelloWorld4.2 Stream4.3 LCD4.4 SimpleWeb4.5 Decode4.6 Event4.7 Protocols4.8 Webrtc4.9 Record4.10 Snap4.11 Usb2Hdmi4.12 LED4.13 Uart4.14 Socket1. 行业的痛点市面的视音频编码器大都是嵌入式LINUX设备通常都是厂家配了软件客户的定制化的需求就需要找设备厂家去改软件有些厂家为了满足客户的定制化需求提供了基于C/C的API从理想的角度上看是可以满足部分客户的定制化需求的但实际上在嵌入式开发基于C/C的应用程序需要交叉编译等复杂的过程普通的软件开发者很难掌握。因此XX科技推出了基于JavaScript的开发接口LinkJS只要你会用JavaScript就可以编写视音频编解码器软件大大降低了开发的难度以满足客户的定制化需求。有关LinkJS开发的介绍请参见https://www.yuque.com/linkpi/linkjsLinkJS的小例子程序集合请参见https://gitee.com/LinkPi/ScriptExampleLinkJS是LinkSDK的JS版本开发时需要参考LinkSDK说明https://www.yuque.com/linkpi/linksdkLinkJS编写的完整Encoder请参见https://gitee.com/LinkPi/EncoderJSAI辅助编程的Agent请参见https://www.yuque.com/linkpi/agent2. 开启开发者模式编码器内嵌了LinkJS开发的IDE如需要用LinkJS开发就需要开启开发者模式设备出厂时是关闭的。首先需要登录编码器后台地址http://编码器IP/ 登录成功后不要关闭浏览器在浏览器的地址栏手工输入 http://编码器IP/fac.php 这样就可以看到开发者模式开关示意界面如下把关闭切换成开启系统会弹出重新启动确认按钮界面示意如下点击确认重启按钮系统会重新启动然后就可以进入开发模式了。3. 用LinkJS开发软件调试运行进入开发者模式时系统会提示输入账号密码界面示意图如下:默认账号为admin密码为admin登录后就看到如下的界面顶部的工具栏说明如下我们从项目栏里选择EncoderJS点击工具栏的运行按钮运行过程中的日志在屏幕下方示意图如下点击工具栏的访问项目网页按钮你就可以看到该项目的后台的网页配置示意图如下EncoderJS是一个完整的编码器软件代码量比较大建议新手从小的例子程序入手例如我们从项目栏里选择SimpleWeb示意图如下该项目是一个把VI输入和AI输入如果是ENC1-V3那就是HDMI的视音频输入编码压缩后通过rtmp流输出同时通过VO输出预览如果是ENC1-V3那就是HDMI OUT点击运行按钮程序就开始运行了界面示意如下点击工具栏的访问项目网页按钮你就可以看到该项目的后台配置示意图如下从上面可以看到RTMP流的码率我们还可以用VLC来收这个流示意图如下4. LinkJS的小例子程序为了方便客户理解LinkJS的接口我们提供了很多小例子程序新手可以先试试这些例子以免全面理解LinkJS的接口和开发方法。4.1 HelloWorld切换到开发者模式的默认项目用于展示项目目录结构。运行后可以看到HDMI输出、LCD小屏都会显示“Hello World”。可以在网页后台修改该字符串网页源码中展示了基础的前后端js通信方法。源码https://gitee.com/LinkPi/ScriptExample/tree/master/HelloWorld4.2 Stream音视频编码rtmp推流使用phpvue架构开发项目网页。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Stream4.3 LCD在Stream项目的基础上引入核心库创建了设备上LCD小屏的控制菜单。通过这个项目开发者可以了解如何在LCD屏上实现参数配置等交互。LCD接口说明源码https://gitee.com/LinkPi/ScriptExample/tree/master/LCD4.4 SimpleWeb在LCD项目的基础上删除掉phpvue框架。使用最基本的js库实现前后端通信方便开发者了解并学习如何从零开发一套后台网页。源码https://gitee.com/LinkPi/ScriptExample/tree/master/SimpleWeb4.5 Decode音视频解码功能代码中的url需要在运行之前修改可以是rtsp/rtmp/srt等常见url。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Decode4.6 Event用于展示如何使用模块事件以及调用模块方法的示例项目。该项目构建了一个gop间隔高达8秒的rtsp流通常播放器需要等待一段时间才能开始播放通过客户端接入事件和请求关键帧方法的配合实现了秒播的功能。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Event4.7 Protocols展示了常见的串流协议的创建方法包括rtmp、rtsp、srt、hls、udp、ndi、rist源码https://gitee.com/LinkPi/ScriptExample/tree/master/Protocols4.8 Webrtc展示了如何创建一个webrtc流以及网页播放器。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Webrtc4.9 Record展示了如何通过网页控制设备开始或停止录制以及录制文件的下载。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Record4.10 Snap截图并在网页上刷新显示源码https://gitee.com/LinkPi/ScriptExample/tree/master/Snap4.11 Usb2Hdmi将USB摄像头转为HDMI输出可对接常见usb摄像头、运动相机、pocket3等设备。源码https://gitee.com/LinkPi/ScriptExample/tree/master/Usb2Hdmi4.12 LED用于测试LED接口的调用(Tally灯)实现不同的灯光变换效果。源码https://gitee.com/LinkPi/ScriptExample/tree/master/LED4.13 Uart串口读写源码https://gitee.com/LinkPi/ScriptExample/tree/master/Uart4.14 Sockettcp、udp使用方法源码https://gitee.com/LinkPi/ScriptExample/tree/master/Socket