MAC下build Janus

janus-gateway在mac下的安装使用 一、编译jauns-gateway 下载,git clone https://github.com/meetecho/janus-gateway; 安装相关的依赖 brew install jansson libnice openssl srtp libusrsctp libmicrohttpd libwebsockets cmake rabbitmq-c sofia-sip opus... 阅读详情

Janus核心是WebRTC的“gateway”,它是用C语言实现并且是在libsrtp和libnice之上开发的,通过添加各种插件,可以实现不同的功能或用例,例如SFU。官网:https://janus.conf.meetecho.com/

在Mac下安装janus

按照
https://gist.github.com/anild...点击预览
来安装

安装流程:

brew install jansson libnice openssl libusrsctp libmicrohttpd libwebsockets cmake rabbitmq-c sofia-sip opus libogg glib pkg-config gengetopt ffmpeg

curl https://codeload.github.com/cisco/libsrtp/tar.gz/v2.2.0 > libsrtp-2.2.0.tar.gz 
tar xvf libsrtp-2.2.0.tar.gz 
cd libsrtp-2.2.0
./configure --prefix=/usr/local --enable-openssl PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
make shared_library && sudo make install

git clone git@github.com:meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
./configure --prefix=/usr/local/janus --enable-post-processing PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
make
sudo make install 
sudo make configs

在安装编译的时候,有以下几个报错,记录以下:

1.sh autogen.sh的时候报错

autogen.sh: line 8: autoreconf: command not found

查找原因,是因为没有安装某些工具,解决方法:

brew install autoconf

继续执行sh autogen.sh,报错

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4 --output=aclocal.m4t
Can't exec "aclocal": No such file or directory at /usr/local/Cellar/autoconf/2.69/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory

这是需要install一个automake,执行命令:

brew install automake

安装完automake以后,继续执行autogen.sh,还是有报错:

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
configure.ac:6: error: possibly undefined macro: AC_ENABLE_SHARED
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:7: error: possibly undefined macro: AC_ENABLE_STATIC
autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1

看报错信息,看样子还需要安装Libtool,那就安装:

brew install Libtool

好了,继续下一步:

./configure --prefix=/usr/local/janus --enable-post-processing PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

又有报错:

configure: error: cannot find install-sh, install.sh, or shtool in . "."/.

google一下,有人已经提出了:
The problem won't go away by just installing automake/autoconf/libtool. One also needs to run 'autoreconf -i' before rerunning ./configure - it will install the missing files that ./configure is complaining about.
就是说安装这些库并不能解决这个问题,还要执行一次autoreconf -i

autoreconf -i

很顺利,然后继续执行

./configure --prefix=/usr/local/janus --enable-post-processing PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

出现以下一堆

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking build system type... x86_64-apple-darwin17.7.0
checking host system type... x86_64-apple-darwin17.7.0
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /Library/Developer/CommandLineTools/usr/bin/ld
checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking how to convert x86_64-apple-darwin17.7.0 file names to x86_64-apple-darwin17.7.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin17.7.0 file names to toolchain format... func_convert_file_noop
checking for /Library/Developer/CommandLineTools/usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin17.7.0 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for
                    glib-2.0 >= 2.34
                    libconfig
                    nice
                    jansson >= 2.5
                    libssl >= 1.0.1
                    libcrypto
                  ... no
configure: error: Package requirements (
                    glib-2.0 >= 2.34
                    libconfig
                    nice
                    jansson >= 2.5
                    libssl >= 1.0.1
                    libcrypto
                  ) were not met:

No package 'libconfig' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables JANUS_CFLAGS
and JANUS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

发现还是有报错的,看起来是没安装这些依赖,但是brew install的时候却提示全都安装过了,经过分析脚本发现:janus是通过pkg-config匹配依赖项,在执行pkg-config查找libconfig路径时发现错误,于是需要改变一下路径:

./configure --prefix=/usr/local/janus --enable-post-processing PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig

接下来就很顺利了,make以后,测试janus是否安装成功

./janus --version

如果成功,就会出现:

Janus commit: eb703e1a53360a7f967e4d969dec957a7249e134
Compiled on:  2019? 9? 1? ??? 11?13?03? CST

janus 0.7.4
Janus-Pro本地部署实战:Docker容器化调试与1B模型优化 多模态大模型正从纯文本生成迈向视觉理解与生成的统一架构,其核心在于跨模态tokenization的双向耦合与共享参数推理。这类模型对运行环境提出严苛要求:不仅需CUDA、PyTorch与transformers版本精准对齐,更依赖进程隔离、显存复用与缓存管理等工程机制。Janus-Pro作为典型代表,凸显了本地部署中Docker容器化调试的关键价值——它解决了Gradio并发加载冲突、Hugging Face缓存权限错位及CUDA上下文争抢等底层问题;而选择Janus-Pro-1B而非7B,则是基于内存带宽 阅读详情

相关推荐

WebAssembly与WebGL实战:网页版CS起源技术实现全解析

WebAssembly(Wasm)作为一种高性能的二进制指令格式,为浏览器带来了接近原生的计算能力,而WebGL则提供了强大的硬件加速图形渲染支持。这两项技术的结合,使得在Web环境中运行复杂的3D游戏和图形应用成为可能,极大地扩展了Web平台的应用边界。其技术价值在于能够将C/C++等高性能语言编写的应用无缝迁移到Web端,实现即点即玩的跨平台体验,同时保持优异的性能表现。在游戏开发、科学可视化、CAD设计等对性能要求较高的应用场景中,这种技术方案展现出巨大潜力。本文以网页版CS起源的实现为例,深入探讨了

weixin_33875564的博客 334

Mac m1 安装janus

将/usr/local 改成/opt/homebrew。

fdsafwagdagadg6576的专栏 688

Hermes Agent本地部署指南:基于Ubuntu 24.04.3的AI智能体成长式实践

AI智能体(Agent)是具备自主规划、工具调用与持续学习能力的下一代AI应用范式。其核心原理在于将大语言模型(LLM)作为决策中枢,通过标准化工具调用(Tool Calling)接口与本地系统命令(如ripgrep、ffmpeg)深度协同,结合向量知识库实现运行时反思与能力进化。这种架构显著提升AI在代码分析、音视频处理、日志诊断等工程场景中的实用性与可解释性。技术价值体现在环境可控、低延迟响应、硬件加速支持及私有知识闭环。典型应用场景包括VS Code内嵌AI编程助手、自动化运维脚本生成、实时视频分析与

weixin_33733810的博客 449

Ubuntu16.04 中 搭建Janus Server

Ubuntu16.04 局域网中搭建Janus Server janus简介 ​ Janus是WebRTC 服务器端的开源项目,官方对其定义是一个WebRTC服务器端,支持的功能比较丰富,通过core模块来支持不同的插件的方式,支持SFU模式,客户端集成相对比较简。开发语言(C语言),代码架构比较清晰,支持了SIP 接口。 官方网址:https://janus.conf.meetecho.com/index.html 系统环境 uname -ar Linux ubuntu16 4.4.0-186-gen

hbwang的博客 1888

Unity WebRTC实战:从零构建实时音视频通话应用

WebRTC(Web Real-Time Communication)是一套支持浏览器、移动应用和桌面程序之间进行点对点实时音视频与数据传输的开放标准。其核心原理在于通过信令服务器交换会话描述协议(SDP)和交互式连接建立(ICE)候选信息,并利用STUN/TURN服务器解决网络地址转换(NAT)穿透问题,从而实现低延迟、高实时性的直接通信。这项技术的核心价值在于为在线教育、远程协作、社交娱乐等场景提供了无需中心服务器转发的原生实时通信能力。在Unity引擎中,通过官方提供的WebRTC包,开发者可以将这套

weixin_30367873的博客 393

安卓应用安全基础:权限、组件暴露与加固攻防实践

从开发者的视角出发,安卓应用安全的核心在于理解系统权限模型的演进与组件通信的暴露面。随着API级别提升,运行时权限、一次性授权等机制不断强化,而Activity、Service、ContentProvider等组件的导出配置若疏忽,则可能成为外部攻击入口。安全的价值不仅体现在数据加密与网络传输保护上,更体现在对逆向、加固与动态调试的对抗实践中。在实际开发中,诸如网络请求栈的TLS配置、冷启动阶段的隐私初始化,以及第三方SDK的权限审计,都是高频风险点。从基础概念出发,剖析权限声明、组件暴露、签名机制、加固选

weixin_34015336的博客 230

janus 在mac 上安装

参考: https://blog.youkuaiyun.com/glw0223/article/details/86736505 解决如下: ./configure --prefix=/usr/local/janus --enable-post-processing PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/...

occupy8的专栏 896

告别二极管发热!手把手教你用MOS管搭建同步整流电路(附死区时间设置避坑指南)

本文详细介绍了如何利用MOS管搭建同步整流电路(SR),以替代传统二极管,显著降低导通损耗和发热问题。内容涵盖自驱动方案的选择、关键元件参数计算、PCB布局要点及死区时间设置技巧,帮助工程师优化电源设计效率。

weixin_29540599的博客 450

pcre源码库安装报错

笔者今天在安装pcre过程报错如下:checkingbzlib.husability...nocheckingbzlib.hpresence...nocheckingforbzlib.h...nocheckingforlibbz2...nocheckingreadline/readline.husability...nochecking...

weixin_34381687的博客 651

CE 7.4中文版实战:如何用自动汇编功能快速生成游戏修改器(附CT表保存技巧)

本文详细介绍了CE 7.4中文版中自动汇编功能的使用方法,帮助用户快速生成游戏修改器。从环境配置、内存地址定位到自动汇编代码注入,再到CT表保存和独立EXE生成,提供全流程实战指南,适合逆向工程爱好者和游戏修改器开发者。

keras9composer的博客 356

hfss仿真软件入门教程

hfss仿真软件入门教程 1.模型建立 1.1在project种选择insert hfss design 1.2.在hfss-》solution type 中选择modal 1.3.在moderler-》中选择units 设置单温为mm 1.4进行画图操作,这里为提高效率直接导入一个已经画好的cad图。使用modeler-》import 2.设置端口 2.1在更改模型中的材料 选择需要更改材料...

xunshui2007的博客 3万+

如何让老旧Mac焕发新生:OpenCore Legacy Patcher完整教程指南

还在为你的老Mac无法升级到最新macOS而烦恼吗?OpenCore Legacy Patcher正是你需要的解决方案。这个强大的开源工具能让那些被苹果官方抛弃的旧款Mac电脑重新运行最新的macOS系统,从Big Sur到Sequoia,让你的老设备重获新生。无论是2011年的MacBook Pro还是2012年的iMac,OpenCore Legacy Patcher都能解决显卡驱动失效、Wi

gitblog_01016的博客 500

【excel+vba】一表拆多表+不同收件人附带不同附件

快捷处理:拆分多个不同表 给不同人发送不同内容且附带附件

weixin_42779327的博客 2968

HTML Tidy 分支与版本管理指南:master/next 双分支策略、版本号语义与 libTidy 构建机制

HTML Tidy 是 HTACG 维护的开源 HTML 语法检查与整理工具(完整源码随本仓库以 [3rdparty/tidy-html5-5.8.0](https://link.gitcode.com/i/42d244b8e89d7e952536fca71ce49b85) 形式提供)。本篇技术指南围绕其分支管理文档展开,系统讲解 **master 发布分支 / next 开发分支** 的双分支策

gitblog_00816的博客 913

GLDAS数据高效处理指南:基于Matlab的NC4转GeoTIFF实战解析

本文提供了一份基于Matlab的GLDAS数据处理实战指南,详细解析了如何将NetCDF4格式的GLDAS数据高效、准确地批量转换为GIS友好的GeoTIFF格式。文章核心内容包括数据理解、环境搭建、核心代码逐步拆解、效率提升技巧以及常见避坑方案,旨在帮助全球生态、水文与气候领域的研究者打通数据预处理的关键环节,提升科研工作效率。

weixin_29094775的博客 310

不用公网IP!用Ollama+Chatbox搭建家庭AI助手(内网穿透方案对比)

本文详细介绍了如何利用Ollama和Chatbox在家庭局域网中搭建本地AI助手,无需公网IP即可实现内网穿透。通过对比不同穿透方案(如Tailscale、FRP等),提供最优配置建议,帮助用户低成本部署隐私安全的家庭AI系统,适用于智能家居、儿童教育等多种场景。

weixin_26765287的博客 459

4 个阶段把 Open3D 搬上手机:iOS 与 Android 移植完全教程

Open3D 是一款 3D 数据处理库,提供点云、网格、表面重建与实时可视化能力。本文带你完成它的**移动端移植**:把同一套 3D 处理与渲染流程落到 iOS 与 Android 上,并跑通从配置、构建到验证的完整链路。 ## Open3D 该不该用在手机上:选型判断 先判断需求。如果只需在设备上跑点云滤波、配准、分割这类**纯计算**逻辑,不弹出 3D 窗口,那么 ARM64 预编译 wh

gitblog_00476的博客 229

STM32CubeMX之emWin移植

“前面两章介绍了SDRAM和LTDC的使用,本篇文章将介绍emWin移植到STM32。”硬件环境:STM32F429IGT6软件环境:STM32CubeMX v5.5.0...

zhang062061的专栏 2826

BAGEL 统一多模态模型训练实战:从数据集准备到预训练与微调

BAGEL 是一个开源统一多模态模型(unified multimodal model),同时覆盖图像理解、文生图(T2I)与图像编辑三类任务。本文以仓库官方训练指南 [TRAIN.md](https://link.gitcode.com/i/3c332a933b7ad3e0dda2bff52786699e) 为主线,完整讲解 BAGEL 的训练数据准备、YAML 数据混合配置、`torchrun

gitblog_01183的博客 230

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3849

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

一文读懂 PentHertz:CakePHP 数据搜索插件与 PRG 模式完全指南

PentHertz 本仓库承载的是一套 **CakePHP 数据搜索插件**(CakeDC Search),它通过 **PRG 模式**(Post-Redirect-Get)帮你快速实现可分页的搜索表单:提交后 302 重定向、URL 可分享、刷新不重复提交。本文带你一文读懂它的安装、配置与 PRG 模式原理。 --- ## 一、PentHertz 是什么?先弄清"是"与"不是" | 问题

gitblog_00422的博客 782

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

BAGEL 多模态统一模型实战指南:从推理超参数调优到训练与评测

BAGEL 是一个开源的多模态基础模型,以约 70 亿激活参数(总计约 140 亿参数)统一了视觉理解、文生图(T2I)与图像编辑三大能力,并进一步延伸到多视角合成与世界导航等"世界建模"任务。本文以仓库根目录的 [README.md](https://link.gitcode.com/i/bae3c42006434c90e926dcb5fd28d141) 为核心骨架,结合 [app.py](ht

gitblog_00584的博客 375

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Unity WebGL集成海康摄像头:AVProVideo与跨域代理实战

在WebGL环境中实现实时视频流播放是数字孪生与智慧工厂项目的常见需求,其核心挑战在于浏览器安全策略与原生解码能力的限制。通过理解跨域资源共享(CORS)原理与流媒体传输机制,开发者可以构建稳定高效的视频集成方案。本文聚焦于利用AVProVideo插件的灵活网络请求处理能力,结合自定义HTTP代理服务,有效解决Unity WebGL直接拉取海康摄像头RTSP/HTTP流的跨域与认证难题。该技术方案将复杂的认证逻辑后置到服务器端,通过同源代理规避浏览器限制,确保了多路监控视频在3D场景中的稳定、低延迟播放,为

weixin_34277853的博客 316

WinPython 3.7.12.0PyPy(64 位)发行版包清单全解:内置工具、科学计算栈与 changelog 生成机制

WinPythonPyPy 是 WinPython 项目面向 PyPy 解释器推出的发行版 flavor。本文以仓库中的官方包清单 [changelogs/WinPythonPyPy-64bit-3.7.12.0.md](https://link.gitcode.com/i/b284df3fc8330ff731236d783c5a93a9) 为骨架,完整梳理该版本内置的 3 项 Tools 与约

gitblog_00920的博客 771

10 分钟打通 BepInEx IL2CPP:Unity IL2CPP 插件加载、验收与排障指南

装完启动,游戏闪退或日志里一个插件都没出现,是 IL2CPP 后端最高频的卡点。本文把 Unity 插件加载链路拆成:判断后端 → 安装放置 → 校准 Doorstop 配置 → 首启验收 → 定点排障,五步走完。完成标志很具体:`BepInEx/LogOutput.log` 里插件的 `Loading` 行计数大于 0 且与 `plugins` 目录内的插件数一致,没有针对你插件的 `Skipp

gitblog_00793的博客 94

Unity Render Streaming + WebRTC:实现浏览器端实时3D交互的云端渲染方案

实时音视频通信技术WebRTC是实现低延迟、点对点数据传输的开放标准,其核心在于通过P2P直连和SRTP加密传输,有效降低网络路径延迟,并具备动态码率适应能力以应对复杂网络环境。这项技术的工程价值在于能够将高性能计算任务转移到云端,让终端设备无需强大本地算力即可获得流畅的交互体验。在应用场景上,它特别适用于对实时性要求高的领域,如云端游戏、工业仿真和在线产品展示。本文以Unity Render Streaming与WebRTC的结合为例,深入解析了如何构建一套完整的云端3D渲染与交互系统,其中涉及信令服务器

weixin_34274029的博客 437
上一篇: SSL/TLS应用示例
下一篇: 最简单完整的libwebsockets的例子
dotphoenix
博客等级 码龄19年 208粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值