Big Blue Button: problemas con la cámara en ciertos móviles. Error 2203: Server could not find an appropriate codec.
Llevamos un tiempo trabajando con Big Blue Button para las videoconferencias. Recientemente hemos descubierto un problema con ciertos móviles, específicamente con algunos (no todos) móviles chinos. Si intentas compartir la cámara, tras unos momentos da un error. Los errores pueden ser varios, pero se suelen referir a los codecs o a permisos. El más habitual: Error 2203: Server could not find an appropriate codec Hemos investigado el problema y encontrado una posible solución. Solución al error de la cámara en algunos móvies. La causa parece ser por el codec de video h264 , el que usa Big Blue Button por defecto para el vídeo. Este codec no es gratuito, tiene un pequeño coste. Algunos fabricantes chinos prefieren ahorrarse ese gasto por terminal y no incluir lo en sus teléfonos. Por eso ciertos Android chinos no pueden compartir la pantalla. Big Blue Button usa H264 porque iOS (iPhone etc) sólo admite este codec. Hay otro codec gratuito que se puede usar, VP8, pero entonces Big Blue Button tiene que “transcodear” cada emisión de vídeo de móviles Android con conexiones de móviles iOS (porque iOS no tiene VP8), y eso gasta CPU. Así que estamos ante una decisión, o no permitir ciertos móviles Android chinos (según hemos probado muchos, con marcas como Asus o Huawei), o activar VP8 y que a veces use más recursos del servidor. Como los recursos se pueden dimensionar, y no queremos problemas de compatibilidad, nosotros elegimos esta segunda opción. Cómo activar VP8 por defecto. La manera de activar VP8 la encontramos aquí, aunque es de una versión antigua y las rutas y lo que hay que comentar varía ahora. Os indicamos las nuevas.Activando VP8 lo que hacemos es que use este por defecto (con el posible gasto de CPU indicado arriba) si lo tiene, si no usará H264. Si se conectan móviles iOS, Big Blue Button tendrá que trascodear las conexiones VP8 de los Android. El fichero a editar es /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml Ahí buscamos unas líneas que ponen: codec_video_main: H264codec_video_content: H264 Y cambiarlas por codec_video_main: ANYcodec_video_content: ANY Después activamos esta nueva configuración en BBB con sudo bbb-conf –restart Con esto ya nos funciona el vídeo en todos los dispositivos.