nodejs 获取远程视频信息出现 Failed to resolve hostname 错误的解决办法
spooking 归属分类: 开发运维 评论数: 0 个

问题

在 armbian 平台上,我的一个nodejs项目需要获取远程视频的信息(长度、尺寸),用到了 get-video-duration 模块的 getVideoDurationInSeconds 方法
大多数时候,是正常的,但是当视频连接跳转(http 302 或其他什么情况),就会出错
在命令行重复nodejs调用的指令

/node_modules/@ffprobe-installer/linux-arm64/ffprobe -v error -show_format -show_streams http://xxxx.com/xxx/xxx.mp4

出现错误 Failed to resolve hostname
我本以为是 dns 解析错误,结果ping了,发现可以ping通。
上网找寻答案,发现这个问题只出现在linux系统,win 和 mac 都没有问题。
好在有个国外的高手给出了解决方案 ———— 安装 nscd !

apt install nscd

再次运行命令,问题解决。

原因

静态链接 glibc 的一个限制使的 DNS 解析的丢失。安装nscd 将解决此问题。