support subtitles protocol library dev cors google-cast chromecast xmlhttprequest

subtitles - ¿Cómo habilitar CORS para la transmisión en Chromecast usando la biblioteca de Media Player?



dev chromecast (2)

Esta información está en http://enable-cors.org/ para la mayoría de los CDN, pero sería genial ver información para todos los CDN.

Chromecast admite la transmisión en formato MPEG-DASH, Smooth Streaming y HLS y la biblioteca de Media Player: https://developers.google.com/cast/docs/player proporciona soporte de Javascript para este tipo de casos de uso.

Dado que los protocolos de transmisión, a diferencia de la mayoría de los protocolos basados ​​en archivos, acceden al contenido de forma asíncrona utilizando XMLHTTPRequest, están protegidos contra el acceso inapropiado por el encabezado CORS desde el servidor donde se origina el recurso.

Ha sido una pregunta recurrente sobre cómo habilitar CORS para la transmisión en Chromecast en diversos entornos, como dev, producción, CDN, cloud alojado, etc. Sería genial si la comunidad de SO pudiera contribuir con sus ideas y compartir sus experiencias. sobre este tema.


Para comenzar con este tema, recordemos que todas las solicitudes creadas por la biblioteca de Media Player: https://developers.google.com/cast/docs/player utilizan el método GET o POST. La mayoría de estas solicitudes caen en la categoría de solicitudes simples (en oposición a las llamadas solicitudes pre-iluminadas) en lo que respecta a CORS. Para obtener más detalles al respecto, consulte este enlace: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS .

Para configurar CORS para todos sus contenidos multimedia que impliquen manifiestos, manifiestos secundarios, segmentos y claves criptográficas, si tiene acceso a sus servidores, puede, por ejemplo, agregar un archivo .htaccess que incluya una línea muy permisiva como:

Conjunto de encabezado Access-Control-Allow-Origin "*"

o puede agregar esta línea a su archivo de configuración de servidor Apache dentro de bloque y reiniciar su servidor Apache. Puede verificar que las respuestas correspondientes tengan un campo de encabezado como este:

Access-Control-Allow-Origin: · * (CR) (LF)

Si trabaja con CDN, tendría que trabajar con ellos y obtener los campos de encabezado necesarios.

Una vez que haya configurado CORS correctamente, ya no verá el temido código de error de red: cast.player.api.ErrorCode.NETWORK.

A continuación, se incluyen ejemplos de secuencias que proporcionan campos de encabezado CORS:

MPEG-DASH:
- http://commondatastorage.googleapis.com/gtv-videos-bucket/dash/BigBuckBunny/bunny_10s/BigBuckBunny_10s_isoffmain_url_relative_DIS_23009_1_v_2_1c2_2011_08_30.mpd - http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827 -manifest.mpd

Smooth Streaming: - http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest - http://playready.directtaps.net/smoothstreaming/SSWSS720H264PR/SuperSpeedway_720.ism/Manifest

Pero esta secuencia de HLS a continuación, por ejemplo, no proporciona el campo de cabecera CORS Access-Control-Allow-Origin en su respuesta.

http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8

Puede usar, por ejemplo, esta herramienta: http://web-sniffer.net/ para olfatear encabezados.