centos 通过docker搭建 kurento-media-server 遇到的各种奇葩的大坑
kurento-media-server里的坑有n多,而且很多是极其初级的坑。忍不住吐槽一下,不知道是故意的还是他们的程序员刚毕业1、首先kurento-media-server只能安装在ubuntu14 和16版本。2、如果你想在centos里装,那就docker吧,而且必须centos7以上才行3、安装好docker,那么精彩的地方来了,kurento-media-server 6...
kurento-media-server里的坑有n多,而且很多是极其初级的坑。忍不住吐槽一下,不知道是故意的还是他们的程序员刚毕业
1、首先kurento-media-server只能安装在ubuntu14 和16版本。
2、如果你想在centos里装,那就docker吧,而且必须centos7以上才行
3、安装好docker,那么精彩的地方来了,kurento-media-server 6.11有两个坑:
1)第一个坑是居然无法启动:
error KurentoWebSocketTransport WebSocketTransport.cpp:130 WebSocketTransport() Error starting listen for websocket transport on port 8080: Underlying Transport Error
原来论坛里已经有人遇到的,参考:https://github.com/Kurento/bugtracker/issues/301
找论坛+源码,应该是ipv6的问题,配置文件kurento.conf.json禁掉ipv6,这样可以启动。
但还会有第二个问题:
2)kurento-media-server 6.11(包括以上)版本的问题是,WebRtcEndpoint.conf.ini这个文件会莫名其妙的被清空,只要一启动服务就会被清空,所以你如果想配什么turn/stun,对不起那是不可能的,而且这个问题无解,除非去看源代码
方法一:修改源码,用源码编译(没时间尝试)
方法二:试试其他版本,测试6.10版本,WebRtcEndpoint.conf.ini不会被清空,但还会报端口无法监听的错误,这个版本就算用1)里面的禁止ipv6也没有用。
解决办法:首先,把你的宿主机enable ipv6
然后,把docker enable ipv6 :修改配置文件/etc/docker/daemon.json,
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
然后重启docker, ifconfig看到docker分配了ipv6地址才行。
参考https://blog.csdn.net/bleatingsheep/article/details/80534153
分析:kurento-media-server6.10的bug是禁止ipv6不生效,查看kurento源码可看到连判断ipv6的分支都没有做,无语了。如果你的机器默认使能了ipv6,那么不会遇到这个问题
kurento-media-server6.11版本改掉了上面的这个bug,但是又出现了新问题,WebRtcEndpoint.conf.ini居然给清空了,无论你怎么配,只要重启服务,就会被清空,还没来得及看源码是怎么回事。
我的方法是docker 6.10版本,然后enable ipv6解决。
更多推荐
所有评论(0)