[{"data":1,"prerenderedAt":1316},["ShallowReactive",2],{"navigation_docs_es":3,"-es-installation-licenses":408,"-es-installation-licenses-surround":1311},[4,25,74,124,238,253,313,342,388],{"title":5,"path":6,"stem":7,"children":8,"page":24},"Getting Started","\u002Fes\u002Fgetting-started","es\u002F1.getting-started",[9,14,19],{"title":10,"path":11,"stem":12,"icon":13},"Introducción","\u002Fes\u002Fgetting-started\u002Fintroduction","es\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Quickstart","\u002Fes\u002Fgetting-started\u002Fquickstart","es\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Conceptos","\u002Fes\u002Fgetting-started\u002Fconcepts","es\u002F1.getting-started\u002F3.concepts","i-lucide-book-open",false,{"title":26,"path":27,"stem":28,"children":29,"page":24},"Live Production","\u002Fes\u002Flive-production","es\u002F2.live-production",[30,35,55,60],{"title":31,"path":32,"stem":33,"icon":34},"On air","\u002Fes\u002Flive-production\u002Fon-air","es\u002F2.live-production\u002F1.on-air","i-lucide-radio",{"title":36,"path":37,"stem":38,"children":39,"page":24},"Live Streams","\u002Fes\u002Flive-production\u002Flive-streams","es\u002F2.live-production\u002F2.live-streams",[40,45,50],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Fes\u002Flive-production\u002Flive-streams\u002Foverview","es\u002F2.live-production\u002F2.live-streams\u002F1.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Options","\u002Fes\u002Flive-production\u002Flive-streams\u002Flive-stream-options","es\u002F2.live-production\u002F2.live-streams\u002F2.live-stream-options","i-lucide-file-text",{"title":51,"path":52,"stem":53,"icon":54},"Inicio y parada","\u002Fes\u002Flive-production\u002Flive-streams\u002Fstart-stop","es\u002F2.live-production\u002F2.live-streams\u002F3.start-stop","i-lucide-play-circle",{"title":56,"path":57,"stem":58,"icon":59},"Scheduler","\u002Fes\u002Flive-production\u002Fscheduler","es\u002F2.live-production\u002F3.scheduler","i-lucide-calendar-clock",{"title":61,"path":62,"stem":63,"children":64,"page":24},"Recordings","\u002Fes\u002Flive-production\u002Frecordings","es\u002F2.live-production\u002F4.recordings",[65,69],{"title":41,"path":66,"stem":67,"icon":68},"\u002Fes\u002Flive-production\u002Frecordings\u002Foverview","es\u002F2.live-production\u002F4.recordings\u002F1.overview","i-lucide-circle-dot",{"title":70,"path":71,"stem":72,"icon":73},"Editor","\u002Fes\u002Flive-production\u002Frecordings\u002Feditor","es\u002F2.live-production\u002F4.recordings\u002F2.editor","i-lucide-scissors",{"title":75,"path":76,"stem":77,"children":78,"page":24},"Configuration","\u002Fes\u002Fconfiguration","es\u002F3.configuration",[79,93,98,111],{"title":80,"path":81,"stem":82,"children":83,"page":24},"Devices","\u002Fes\u002Fconfiguration\u002Fdevices","es\u002F3.configuration\u002F1.devices",[84,88],{"title":80,"path":85,"stem":86,"icon":87},"\u002Fes\u002Fconfiguration\u002Fdevices\u002Fdevices","es\u002F3.configuration\u002F1.devices\u002F1.devices","i-lucide-server",{"title":89,"path":90,"stem":91,"icon":92},"Groups","\u002Fes\u002Fconfiguration\u002Fdevices\u002Fgroups","es\u002F3.configuration\u002F1.devices\u002F2.groups","i-lucide-network",{"title":94,"path":95,"stem":96,"icon":97},"Sources","\u002Fes\u002Fconfiguration\u002Fsources","es\u002F3.configuration\u002F2.sources","i-lucide-cable",{"title":99,"path":100,"stem":101,"children":102,"page":24},"Encodings","\u002Fes\u002Fconfiguration\u002Fencodings","es\u002F3.configuration\u002F3.encodings",[103,107],{"title":99,"path":104,"stem":105,"icon":106},"\u002Fes\u002Fconfiguration\u002Fencodings\u002Fprofiles","es\u002F3.configuration\u002F3.encodings\u002F1.profiles","i-lucide-sliders-horizontal",{"title":89,"path":108,"stem":109,"icon":110},"\u002Fes\u002Fconfiguration\u002Fencodings\u002Fgroups","es\u002F3.configuration\u002F3.encodings\u002F2.groups","i-lucide-layers",{"title":112,"path":113,"stem":114,"children":115,"page":24},"Destinations","\u002Fes\u002Fconfiguration\u002Fdestinations","es\u002F3.configuration\u002F4.destinations",[116,120],{"title":112,"path":117,"stem":118,"icon":119},"\u002Fes\u002Fconfiguration\u002Fdestinations\u002Fdestinations","es\u002F3.configuration\u002F4.destinations\u002F1.destinations","i-lucide-send",{"title":89,"path":121,"stem":122,"icon":123},"\u002Fes\u002Fconfiguration\u002Fdestinations\u002Fpublishing-groups","es\u002F3.configuration\u002F4.destinations\u002F2.publishing-groups","i-lucide-share-2",{"title":125,"path":126,"stem":127,"children":128,"page":24},"Settings","\u002Fes\u002Fsettings","es\u002F4.settings",[129,142,147,163,179],{"title":130,"path":131,"stem":132,"children":133,"page":24},"Users","\u002Fes\u002Fsettings\u002Fusers","es\u002F4.settings\u002F1.users",[134,138],{"title":130,"path":135,"stem":136,"icon":137},"\u002Fes\u002Fsettings\u002Fusers\u002Fusers","es\u002F4.settings\u002F1.users\u002F1.users","i-lucide-user",{"title":89,"path":139,"stem":140,"icon":141},"\u002Fes\u002Fsettings\u002Fusers\u002Fuser-groups","es\u002F4.settings\u002F1.users\u002F2.user-groups","i-lucide-users",{"title":143,"path":144,"stem":145,"icon":146},"Security","\u002Fes\u002Fsettings\u002Fsecurity","es\u002F4.settings\u002F2.security","i-lucide-shield",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":24},"Assets","i-lucide-image","\u002Fes\u002Fsettings\u002Fassets","es\u002F4.settings\u002F3.assets",[153,158],{"title":154,"path":155,"stem":156,"icon":157},"Logos","\u002Fes\u002Fsettings\u002Fassets\u002Flogos","es\u002F4.settings\u002F3.assets\u002F1.logos","i-lucide-images",{"title":159,"path":160,"stem":161,"icon":162},"Files","\u002Fes\u002Fsettings\u002Fassets\u002Ffiles","es\u002F4.settings\u002F3.assets\u002F2.files","i-lucide-clapperboard",{"title":164,"icon":165,"path":166,"stem":167,"children":168,"page":24},"External Storage","i-lucide-folder-cog","\u002Fes\u002Fsettings\u002Fexternal-storage","es\u002F4.settings\u002F4.external-storage",[169,174],{"title":170,"path":171,"stem":172,"icon":173},"Remote Folders","\u002Fes\u002Fsettings\u002Fexternal-storage\u002Fremote-folders","es\u002F4.settings\u002F4.external-storage\u002F1.remote-folders","i-lucide-folder-archive",{"title":175,"path":176,"stem":177,"icon":178},"Target Folders","\u002Fes\u002Fsettings\u002Fexternal-storage\u002Ftarget-folders","es\u002F4.settings\u002F4.external-storage\u002F2.target-folders","i-lucide-folder-up",{"title":180,"path":181,"stem":182,"children":183,"page":24},"Integrations","\u002Fes\u002Fsettings\u002Fintegrations","es\u002F4.settings\u002F5.integrations",[184,188,193,207],{"title":41,"path":185,"stem":186,"icon":187},"\u002Fes\u002Fsettings\u002Fintegrations\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F1.overview","i-lucide-plug",{"title":189,"path":190,"stem":191,"icon":192},"MediaCopilot","\u002Fes\u002Fsettings\u002Fintegrations\u002Fmediacopilot","es\u002F4.settings\u002F5.integrations\u002F2.mediacopilot","i-lucide-sparkles",{"title":194,"icon":195,"path":196,"stem":197,"children":198,"page":24},"C21 Live Cloud","i-lucide-cloud","\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud",[199,202],{"title":41,"path":200,"stem":201,"icon":195},"\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F1.overview",{"title":203,"path":204,"stem":205,"icon":206},"Accounts","\u002Fes\u002Fsettings\u002Fintegrations\u002Fc21livecloud\u002Faccounts","es\u002F4.settings\u002F5.integrations\u002F3.c21livecloud\u002F2.accounts","i-lucide-key-round",{"title":208,"icon":146,"path":209,"stem":210,"children":211,"page":24},"DRM Providers","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm","es\u002F4.settings\u002F5.integrations\u002F4.drm",[212,216,220,224,228,233],{"title":41,"path":213,"stem":214,"icon":215},"\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Foverview","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F1.overview","i-lucide-shield-check",{"title":217,"path":218,"stem":219,"icon":146},"Widevine","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fwidevine","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F2.widevine",{"title":221,"path":222,"stem":223,"icon":146},"PlayReady","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fplayready","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F3.playready",{"title":225,"path":226,"stem":227,"icon":146},"FairPlay","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Ffairplay","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F4.fairplay",{"title":229,"path":230,"stem":231,"icon":232},"Providers","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fproviders","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F5.providers","i-lucide-shield-half",{"title":234,"path":235,"stem":236,"icon":237},"Workflow","\u002Fes\u002Fsettings\u002Fintegrations\u002Fdrm\u002Fworkflow","es\u002F4.settings\u002F5.integrations\u002F4.drm\u002F6.workflow","i-lucide-workflow",{"title":239,"path":240,"stem":241,"children":242,"page":24},"System Status","\u002Fes\u002Fsystem-status","es\u002F5.system-status",[243,248],{"title":244,"path":245,"stem":246,"icon":247},"Commands","\u002Fes\u002Fsystem-status\u002Fcommands","es\u002F5.system-status\u002F1.commands","i-lucide-square-terminal",{"title":249,"path":250,"stem":251,"icon":252},"Logs","\u002Fes\u002Fsystem-status\u002Flogs","es\u002F5.system-status\u002F2.logs","i-lucide-scroll-text",{"title":254,"path":255,"stem":256,"children":257,"page":24},"How Tos","\u002Fes\u002Fhow-tos","es\u002F6.how-tos",[258,263,268,273,277,281,285,290,294,299,304,309],{"title":259,"path":260,"stem":261,"icon":262},"Arrancar y detener un Live stream","\u002Fes\u002Fhow-tos\u002Fstart-stream-via-api","es\u002F6.how-tos\u002F1.start-stream-via-api","i-lucide-terminal",{"title":264,"path":265,"stem":266,"icon":267},"Ingestar una emisión de YouTube Live","\u002Fes\u002Fhow-tos\u002Fingest-youtube-live","es\u002F6.how-tos\u002F10.ingest-youtube-live","i-lucide-youtube",{"title":269,"path":270,"stem":271,"icon":272},"Source Synchronized Encoding (SSE) — redundancia bit-idéntica","\u002Fes\u002Fhow-tos\u002Fsource-synchronized-encoding","es\u002F6.how-tos\u002F11.source-synchronized-encoding","i-lucide-copy-check",{"title":274,"path":275,"stem":276,"icon":34},"Emitir radio como vídeo","\u002Fes\u002Fhow-tos\u002Fbroadcast-radio-as-video","es\u002F6.how-tos\u002F12.broadcast-radio-as-video",{"title":278,"path":279,"stem":280,"icon":215},"Proteger un Live stream con multi-DRM","\u002Fes\u002Fhow-tos\u002Fmulti-drm-destination","es\u002F6.how-tos\u002F2.multi-drm-destination",{"title":282,"path":283,"stem":284,"icon":59},"Programar una emisión semanal recurrente","\u002Fes\u002Fhow-tos\u002Fweekly-recurring-broadcast","es\u002F6.how-tos\u002F3.weekly-recurring-broadcast",{"title":286,"path":287,"stem":288,"icon":289},"Cortar un clip en el Editor y enviarlo a MediaCopilot","\u002Fes\u002Fhow-tos\u002Fexport-recording-to-mediacopilot","es\u002F6.how-tos\u002F4.export-recording-to-mediacopilot","i-lucide-upload-cloud",{"title":291,"path":292,"stem":293,"icon":149},"Aplicar un logo a un Live stream en emisión","\u002Fes\u002Fhow-tos\u002Fapply-logo-overlay","es\u002F6.how-tos\u002F5.apply-logo-overlay",{"title":295,"path":296,"stem":297,"icon":298},"Hacer blackout o sustituir el programa de un Live stream","\u002Fes\u002Fhow-tos\u002Fbroadcast-blackout","es\u002F6.how-tos\u002F6.broadcast-blackout","i-lucide-square",{"title":300,"path":301,"stem":302,"icon":303},"Cambiar la fuente de un Live stream en emisión","\u002Fes\u002Fhow-tos\u002Fruntime-source-switch","es\u002F6.how-tos\u002F7.runtime-source-switch","i-lucide-repeat-2",{"title":305,"path":306,"stem":307,"icon":308},"Activar \u002F desactivar un Publishing en mitad de la emisión","\u002Fes\u002Fhow-tos\u002Ftoggle-publishing-mid-broadcast","es\u002F6.how-tos\u002F8.toggle-publishing-mid-broadcast","i-lucide-toggle-right",{"title":310,"path":311,"stem":312,"icon":34},"Contribuir una señal en directo a MediaCopilot Live","\u002Fes\u002Fhow-tos\u002Fcontribute-to-mediacopilot-live","es\u002F6.how-tos\u002F9.contribute-to-mediacopilot-live",{"title":314,"path":315,"stem":316,"children":317,"page":24},"Installation","\u002Fes\u002Finstallation","es\u002F7.installation",[318,323,328,333,338],{"title":319,"path":320,"stem":321,"icon":322},"Preparar el host","\u002Fes\u002Finstallation\u002Fprepare-host","es\u002F7.installation\u002F1.prepare-host","i-lucide-server-cog",{"title":324,"path":325,"stem":326,"icon":327},"Instalar C21 Live Control","\u002Fes\u002Finstallation\u002Fcontrol","es\u002F7.installation\u002F2.control","i-lucide-cloud-download",{"title":329,"path":330,"stem":331,"icon":332},"Instalar C21 Live Encoder","\u002Fes\u002Finstallation\u002Fencoder","es\u002F7.installation\u002F3.encoder","i-lucide-cpu",{"title":334,"path":335,"stem":336,"icon":337},"Actualizaciones","\u002Fes\u002Finstallation\u002Fupdates","es\u002F7.installation\u002F4.updates","i-lucide-refresh-cw",{"title":339,"path":340,"stem":341,"icon":206},"Licencias","\u002Fes\u002Finstallation\u002Flicenses","es\u002F7.installation\u002F5.licenses",{"title":343,"path":344,"stem":345,"children":346,"page":24},"Developers","\u002Fes\u002Fdevelopers","es\u002F8.developers",[347,351,369],{"title":41,"path":348,"stem":349,"icon":350},"\u002Fes\u002Fdevelopers\u002Foverview","es\u002F8.developers\u002F1.overview","i-lucide-code",{"title":352,"icon":350,"path":353,"stem":354,"children":355,"page":24},"API","\u002Fes\u002Fdevelopers\u002Fapi","es\u002F8.developers\u002F2.api",[356,359,364],{"title":41,"path":357,"stem":358,"icon":350},"\u002Fes\u002Fdevelopers\u002Fapi\u002Foverview","es\u002F8.developers\u002F2.api\u002F1.overview",{"title":360,"path":361,"stem":362,"icon":363},"Autenticación","\u002Fes\u002Fdevelopers\u002Fapi\u002Fauthentication","es\u002F8.developers\u002F2.api\u002F2.authentication","i-lucide-key",{"title":365,"path":366,"stem":367,"icon":368},"Paginación y errores","\u002Fes\u002Fdevelopers\u002Fapi\u002Fpagination-errors","es\u002F8.developers\u002F2.api\u002F3.pagination-errors","i-lucide-list-ordered",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":24},"MCP Server","i-lucide-bot","\u002Fes\u002Fdevelopers\u002Fmcp-server","es\u002F8.developers\u002F3.mcp-server",[375,378,383],{"title":41,"path":376,"stem":377,"icon":371},"\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Foverview","es\u002F8.developers\u002F3.mcp-server\u002F1.overview",{"title":379,"path":380,"stem":381,"icon":382},"Tools","\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Ftools","es\u002F8.developers\u002F3.mcp-server\u002F2.tools","i-lucide-wrench",{"title":384,"path":385,"stem":386,"icon":387},"Examples","\u002Fes\u002Fdevelopers\u002Fmcp-server\u002Fexamples","es\u002F8.developers\u002F3.mcp-server\u002F3.examples","i-lucide-play",{"title":389,"path":390,"stem":391,"children":392,"page":24},"Resources","\u002Fes\u002Fresources","es\u002F9.resources",[393,398,403],{"title":394,"path":395,"stem":396,"icon":397},"Enlaces","\u002Fes\u002Fresources\u002Flinks","es\u002F9.resources\u002F1.links","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":402},"Release Notes","\u002Fes\u002Fresources\u002Frelease-notes","es\u002F9.resources\u002F2.release-notes","i-lucide-clipboard-list",{"title":404,"path":405,"stem":406,"icon":407},"Glosario","\u002Fes\u002Fresources\u002Fglossary","es\u002F9.resources\u002F3.glossary","i-lucide-book-a",{"id":409,"title":339,"body":410,"description":1304,"extension":1305,"links":1306,"meta":1307,"navigation":1308,"path":340,"seo":1309,"stem":341,"__hash__":1310},"docs_es\u002Fes\u002F7.installation\u002F5.licenses.md",{"type":411,"value":412,"toc":1282},"minimark",[413,422,425,430,449,456,460,472,476,479,567,572,614,618,629,708,712,740,744,747,833,837,844,900,905,909,927,993,996,1000,1004,1016,1020,1089,1148,1166,1170,1213,1217,1232,1239,1245,1269],[414,415,416,417,421],"p",{},"Cada host C21 Streaming lleva un ",[418,419,420],"strong",{},"fichero de licencia"," vinculado a su dirección MAC. El fichero declara qué productos y funcionalidades puede ejecutar. Esta página es la referencia canónica de qué licencias existen, qué desbloquea cada una, dónde se aplica y qué ve un operador cuando falta alguna.",[414,423,424],{},"Los System Administrator suben el fichero de licencia mediante el formulario que aparece automáticamente cuando una instancia carece de licencia válida — por ejemplo, en el primer arranque o tras la expiración. Una vez que la licencia es válida y un operador está dentro, no hay panel in-session para inspeccionar ni reemplazar la licencia desde la UI; la sustitución requiere invalidar la instancia (o reiniciar el servicio tras la expiración) y subir un fichero nuevo a través del flujo de login. Los Operators no tienen superficie de administración de licencias — pueden ver los efectos visibles (una pestaña oculta, un tipo de Channel rechazado) pero no pueden cambiar lo que está licenciado.",[426,427,429],"h2",{"id":428},"qué-es-una-licencia","Qué es una licencia",[414,431,432,433,436,437,440,441,444,445,448],{},"Una licencia tiene un ",[418,434,435],{},"nombre"," (el producto o feature que concede), una ",[418,438,439],{},"expiración",", una ",[418,442,443],{},"quantity"," opcional (usada por licencias que miden un recurso, como el número de Channels que un encoder puede correr) y un ",[418,446,447],{},"key"," firmado. Las licencias se vinculan a la MAC del host; un fichero de un host no valida en otro.",[414,450,451,452,455],{},"Un único fichero de licencia suele llevar varias licencias — una para el producto ",[418,453,454],{},"C21 Live Control",", una para C21 Live Editor, una para el add-on C21 Live Deploy, etc. El Control y el Encoder se licencian por separado incluso cuando corren en la misma máquina: el Encoder aplica su propio conjunto (encoder channels, multi publishing points, UDP recovery) y el Control aplica el suyo (Control \u002F Editor \u002F Deploy).",[426,457,459],{"id":458},"dónde-viven-las-licencias","Dónde viven las licencias",[414,461,462,463,467,468,471],{},"Las licencias se instalan como un único fichero en el host. El formulario de subida es la pantalla de licencia que aparece automáticamente cuando el LMS detecta que no hay licencia válida (",[464,465,466],"code",{},"user.validLicense === false","); en el resto de momentos no hay panel UI para tocar el fichero. Las dos rutas reales para sustituir el fichero son: (a) esperar a que el LMS reporte licencia inválida (expiración o reinicio sin licencia) para que aparezca el formulario; o (b) usar el endpoint API ",[464,469,470],{},"installLicense"," descrito abajo. La ruta en el sistema de ficheros es un detalle de implementación no expuesto en el producto.",[426,473,475],{"id":474},"licencias-de-c21-live-control","Licencias de C21 Live Control",[414,477,478],{},"El proceso de C21 Live Control (LMS) comprueba estas licencias al arrancar y periódicamente mientras corre.",[480,481,482,501],"table",{},[483,484,485],"thead",{},[486,487,488,492,495,498],"tr",{},[489,490,491],"th",{},"Licencia",[489,493,494],{},"¿Obligatoria?",[489,496,497],{},"Significado de Quantity",[489,499,500],{},"Qué desbloquea",[502,503,504,521,545],"tbody",{},[486,505,506,512,515,518],{},[507,508,509],"td",{},[418,510,511],{},"C21LiveControl",[507,513,514],{},"Sí",[507,516,517],{},"— (solo presencia)",[507,519,520],{},"El producto Control: la UI de gestión, la superficie API y el Scheduler. Sin ella, el proceso no arranca.",[486,522,523,528,536,538],{},[507,524,525],{},[418,526,527],{},"C21LiveEditor",[507,529,530,531,535],{},"Sí para el producto independiente ",[532,533,534],"em",{},"Live Editor","; opcional en Live Control",[507,537,517],{},[507,539,540,541,544],{},"La pestaña Recordings Editor — la superficie de producto para cortar clips de grabaciones finalizadas y exportarlos (download, FTP, S3, SFTP, MediaCopilot). En una instalación de Live Control, la pestaña Editor queda oculta cuando falta la licencia y la integración ",[542,543,189],"a",{"href":190}," no puede invocarse desde la UI.",[486,546,547,552,555,557],{},[507,548,549],{},[418,550,551],{},"C21LiveDeploy",[507,553,554],{},"No (opt-in)",[507,556,517],{},[507,558,559,560,562,563,566],{},"La integración con cuentas ",[418,561,194],{},": el tipo de Channel ",[418,564,565],{},"Stream – C21 Live Cloud",", sus Destinations cloud equivalentes y el aprovisionamiento de carpetas cloud asociadas.",[568,569,571],"h3",{"id":570},"qué-ocurre-cuando-falta-una-licencia-de-control","Qué ocurre cuando falta una licencia de Control",[573,574,575,582,605],"ul",{},[576,577,578,581],"li",{},[418,579,580],{},"C21LiveControl ausente."," El proceso Live Control no arranca; la UI de gestión queda inaccesible. Si la licencia expira mientras el proceso corre, el chequeo periódico (en el main loop) salta y el proceso termina.",[576,583,584,587,588,590,591,593,594,597,598,601,602,604],{},[418,585,586],{},"C21LiveEditor ausente en una instalación de Live Control."," Live Control arranca igual. La pestaña ",[418,589,70],{}," queda oculta en ",[532,592,61],{}," (verificado en ",[464,595,596],{},"RecordingsBase.vue"," — la pestaña solo se añade cuando ",[464,599,600],{},"hasEditorLicense"," es true) y las integraciones que dependen de ella (notablemente ",[542,603,189],{"href":190},") no pueden invocarse desde la UI.",[576,606,607,610,611,613],{},[418,608,609],{},"C21LiveDeploy ausente."," Live Control arranca igual. La página de integración C21 Live Cloud es accesible, pero las variantes cloud de Channel y Destination no son seleccionables en los editores. Consulta ",[542,612,194],{"href":200},".",[426,615,617],{"id":616},"licencias-de-c21-live-encoder","Licencias de C21 Live Encoder",[414,619,620,621,624,625,628],{},"El proceso ",[418,622,623],{},"C21 Live Encoder"," comprueba estas licencias al arrancar. El encoder no arranca sin una licencia ",[464,626,627],{},"C21LiveEncoder"," válida; el resto son features opt-in.",[480,630,631,643],{},[483,632,633],{},[486,634,635,637,639,641],{},[489,636,491],{},[489,638,494],{},[489,640,497],{},[489,642,500],{},[502,644,645,663,690],{},[486,646,647,651,653,656],{},[507,648,649],{},[418,650,627],{},[507,652,514],{},[507,654,655],{},"Número de Channels de encoding concurrentes",[507,657,658,659,662],{},"El propio proceso encoder. La Quantity aparece en el Control como ",[464,660,661],{},"Device.licensed.channels"," en la página de detalle del Device.",[486,664,665,670,673,680],{},[507,666,667],{},[418,668,669],{},"Multi Publishing Points",[507,671,672],{},"No (por defecto 1)",[507,674,675,676,679],{},"Máximo de Destinations ",[418,677,678],{},"activos a la vez"," por Channel",[507,681,682,683,686,687,613],{},"Cuando falta, cada Channel queda limitado a un solo Destination activo. Un ",[542,684,685],{"href":121},"Destination group"," puede contener hasta 20 miembros; esta licencia determina cuántos están activos a la vez. La Quantity aparece en el Control como ",[464,688,689],{},"Device.licensed.publishing_points",[486,691,692,697,699,702],{},[507,693,694],{},[418,695,696],{},"UDP Recovery",[507,698,554],{},[507,700,701],{},"Se usa como booleano — UDP-R se activa si la licencia existe",[507,703,704,705,707],{},"Activa el path de contribución UDP-R en el encoder. Los Channels ",[418,706,565],{}," que usan transporte UDP-R no pueden correr en un encoder sin esta licencia.",[568,709,711],{"id":710},"qué-ocurre-cuando-falta-una-licencia-de-encoder","Qué ocurre cuando falta una licencia de Encoder",[573,713,714,724,734],{},[576,715,716,719,720,723],{},[418,717,718],{},"C21LiveEncoder ausente."," El proceso encoder no arranca y registra ",[532,721,722],{},"\"Incorrect License\"",". El Control no puede despachar broadcasts a ese encoder.",[576,725,726,729,730,733],{},[418,727,728],{},"Multi Publishing Points ausente."," El encoder corre pero limita cada Channel a un único Destination simultáneo. El tope aparece como ",[464,731,732],{},"Device.licensed.publishing_points = 1"," en el detalle del Device.",[576,735,736,739],{},[418,737,738],{},"UDP Recovery ausente."," El encoder corre pero rechaza Channels de contribución UDP-R al arrancarlos.",[426,741,743],{"id":742},"gates-por-feature-a-nivel-aplicación","Gates por feature a nivel aplicación",[414,745,746],{},"Más allá de las licencias a nivel producto, dos features se filtran en la capa de aplicación:",[480,748,749,764],{},[483,750,751],{},[486,752,753,756,758,761],{},[489,754,755],{},"Feature",[489,757,491],{},[489,759,760],{},"Dónde se aplica",[489,762,763],{},"Qué ocurre sin ella",[502,765,766,811],{},[486,767,768,774,779,794],{},[507,769,770,771],{},"Tipo de Channel ",[418,772,773],{},"Youtube Live",[507,775,776],{},[464,777,778],{},"C21LiveYouTube",[507,780,781,782,785,786,789,790,793],{},"CRUD de Channel (",[464,783,784],{},"POST"," \u002F ",[464,787,788],{},"PUT"," en ",[464,791,792],{},"\u002Fc21apiv2\u002Fchannels",")",[507,795,796,797,799,800,803,804,806,807,810],{},"La opción ",[532,798,773],{}," queda oculta en el selector de tipo de Channel (",[464,801,802],{},"ChannelEditor.vue"," comprueba el flag de licencia). Las llamadas API que crean o convierten un Channel en ",[532,805,773],{}," devuelven ",[464,808,809],{},"APIf807",". Los Channels existentes siguen funcionando hasta que se editen.",[486,812,813,818,822,825],{},[507,814,815,816],{},"Integración con cuentas ",[418,817,194],{},[507,819,820],{},[464,821,551],{},[507,823,824],{},"Arranque del LMS Control",[507,826,827,828,830,831,613],{},"El tipo de Channel ",[418,829,565],{}," y sus Destinations cloud equivalentes no se aprovisionan. Consulta ",[542,832,194],{"href":200},[426,834,836],{"id":835},"quantities-por-device-expuestas-en-la-api","Quantities por Device expuestas en la API",[414,838,839,840,843],{},"Los campos Quantity de las licencias del encoder se exponen en el Control mediante ",[464,841,842],{},"Device.licensed",":",[480,845,846,859],{},[483,847,848],{},[486,849,850,853,856],{},[489,851,852],{},"Campo API",[489,854,855],{},"Licencia origen",[489,857,858],{},"Significado",[502,860,861,874,887],{},[486,862,863,867,871],{},[507,864,865],{},[464,866,661],{},[507,868,869],{},[464,870,627],{},[507,872,873],{},"Channels de encoding concurrentes máximos en este Device.",[486,875,876,880,884],{},[507,877,878],{},[464,879,689],{},[507,881,882],{},[464,883,669],{},[507,885,886],{},"Máximo de Destinations simultáneos por Channel.",[486,888,889,894,897],{},[507,890,891],{},[464,892,893],{},"Device.licensed.outputs",[507,895,896],{},"(Derivado de las licencias de encoder)",[507,898,899],{},"Máximo de salidas simultáneas que el encoder puede emitir.",[414,901,902,903,613],{},"Para el contrato completo de Device consulta ",[542,904,80],{"href":81},[426,906,908],{"id":907},"formato-del-fichero-de-licencia","Formato del fichero de licencia",[414,910,911,912,915,916,919,920,919,923,926],{},"El fichero de licencia es INI. Cada licencia es una sección ",[464,913,914],{},"[Product]"," cuyo nombre coincide con el nombre canónico (por ejemplo ",[464,917,918],{},"[C21LiveControl]",", ",[464,921,922],{},"[C21LiveEncoder]",[464,924,925],{},"[Multi Publishing Points]","). Cada sección lleva exactamente tres campos:",[480,928,929,939],{},[483,930,931],{},[486,932,933,936],{},[489,934,935],{},"Campo",[489,937,938],{},"Notas",[502,940,941,958,983],{},[486,942,943,948],{},[507,944,945],{},[464,946,947],{},"Expiration",[507,949,950,951,954,955,613],{},"Fecha de expiración. El valor centinela ",[464,952,953],{},"31-12-3000"," lo renderiza la API como ",[464,956,957],{},"Unlimited",[486,959,960,965],{},[507,961,962],{},[464,963,964],{},"Quantity",[507,966,967,968,970,971,973,974,919,976,919,978,919,980,982],{},"Entero. Para licencias medidas (",[464,969,627],{}," channels, ",[464,972,669],{},") es el tope. Para las solo-presencia (",[464,975,511],{},[464,977,527],{},[464,979,551],{},[464,981,778],{},") el valor se ignora.",[486,984,985,990],{},[507,986,987],{},[464,988,989],{},"Key",[507,991,992],{},"Payload firmado. El host valida la firma contra su MAC.",[414,994,995],{},"El mismo formato se sube por el formulario de licencia (pantalla automática cuando la instancia carece de licencia válida) y por el endpoint API descrito abajo.",[426,997,999],{"id":998},"administrar-licencias","Administrar licencias",[568,1001,1003],{"id":1002},"cómo-lo-expone-el-api","Cómo lo expone el API",[414,1005,1006,1009,1010,1012,1013,1015],{},[464,1007,1008],{},"getSystemLicenses"," devuelve cada licencia instalada con su producto, expiración (renderizada como ",[532,1011,957],{}," cuando el valor real es ",[464,1014,953],{},") y quantity. El Key se guarda en disco y no se devuelve en la respuesta.",[568,1017,1019],{"id":1018},"desde-la-api","Desde la API",[480,1021,1022,1038],{},[483,1023,1024],{},[486,1025,1026,1029,1032,1035],{},[489,1027,1028],{},"Operación",[489,1030,1031],{},"Método + ruta",[489,1033,1034],{},"operationId",[489,1036,1037],{},"Rol requerido",[502,1039,1040,1057,1073],{},[486,1041,1042,1045,1050,1054],{},[507,1043,1044],{},"Listar licencias instaladas",[507,1046,1047],{},[464,1048,1049],{},"GET \u002Fc21apiv2\u002Fsystem\u002Flicenses",[507,1051,1052],{},[464,1053,1008],{},[507,1055,1056],{},"System Administrator",[486,1058,1059,1062,1067,1071],{},[507,1060,1061],{},"Instalar \u002F reemplazar el fichero",[507,1063,1064],{},[464,1065,1066],{},"POST \u002Fc21apiv2\u002Fsystem\u002Flicenses",[507,1068,1069],{},[464,1070,470],{},[507,1072,1056],{},[486,1074,1075,1078,1083,1086],{},[507,1076,1077],{},"Comprobación rápida de validez",[507,1079,1080],{},[464,1081,1082],{},"GET \u002Fc21apiv2\u002Fcrud\u002Flicense",[507,1084,1085],{},"—",[507,1087,1088],{},"Cualquier usuario autenticado",[573,1090,1091,1118],{},[576,1092,1093,1095,1096,1099,1100,1103,1104,1106,1107,919,1109,1111,1112,1114,1115,613],{},[464,1094,470],{}," acepta un cuerpo ",[464,1097,1098],{},"multipart\u002Fform-data"," cuya parte ",[464,1101,1102],{},"file"," es el INI. El handler lee cada sección ",[464,1105,914],{}," y persiste ",[464,1108,947],{},[464,1110,964],{}," y ",[464,1113,989],{},". Cuando el fichero no contiene ninguna sección válida, la respuesta es ",[464,1116,1117],{},"SYSF008",[576,1119,1120,1122,1123,1126,1127,1129,1130,789,1133,1136,1137,785,1139,785,1141,1144,1145,613],{},[464,1121,1082],{}," devuelve ",[464,1124,1125],{},"{ valid: true | false }"," según si ",[464,1128,511],{}," está presente y activa. La UI usa este probe para renderizar el banner ",[532,1131,1132],{},"\"This section is not available without a product license.\"",[542,1134,1135],{"href":32},"On Air"," y páginas similares. Los verbos de mutación (",[464,1138,784],{},[464,1140,788],{},[464,1142,1143],{},"DELETE",") sobre esta ruta están explícitamente bloqueados con ",[464,1146,1147],{},"Method not allowed",[414,1149,1150,1151,1154,1155,1111,1158,1161,1162,613],{},"Para lecturas por Device (multiplexador legacy) consulta ",[464,1152,1153],{},"POST \u002Fc21apiv2\u002Fsystem\u002Fcommand"," con ",[464,1156,1157],{},"action: \"getLicenses\"",[464,1159,1160],{},"action: \"uploadLicense\""," documentadas en ",[542,1163,1165],{"href":1164},"\u002Fes\u002Fdevelopers\u002Fapi\u002Freference-system","API → System commands",[426,1167,1169],{"id":1168},"tratamiento-de-expiraciones","Tratamiento de expiraciones",[573,1171,1172,1188,1194],{},[576,1173,1174,1177,1178,1180,1181,1183,1184,1187],{},[418,1175,1176],{},"C21 Live Control."," El proceso revisa ",[464,1179,511],{}," (o ",[464,1182,527],{}," en una instalación standalone de Editor) en su main loop. Cuando el fichero deja de ser válido, el proceso registra ",[532,1185,1186],{},"\"License is not valid or has expired\""," y termina. La UI queda inaccesible poco después.",[576,1189,1190,1193],{},[418,1191,1192],{},"C21 Live Encoder."," El encoder lee su licencia al arrancar. Una expiración a mitad de ejecución de la licencia de encoder no se reevalúa hasta el siguiente reinicio, pero el resto de licencias del host (Multi Publishing Points, UDP Recovery) se leen por el mismo path y aplican en el siguiente reinicio del encoder.",[576,1195,1196,1199,1200,1203,1204,1206,1207,1209,1210,1212],{},[418,1197,1198],{},"Render de expiración."," ",[464,1201,1202],{},"Expiration: 31-12-3000"," se renderiza como ",[532,1205,957],{}," en la pestaña License y en la respuesta de ",[464,1208,1008],{},". El producto no muestra bandas de color de expiración ni avisos graduados — la pestaña License muestra la fecha y el centinela ",[464,1211,957],{},", y el chequeo en runtime es binario (válido \u002F no válido).",[426,1214,1216],{"id":1215},"faq","FAQ",[1218,1219,1221,1222,1224,1225,1227,1228,1231],"collapsible",{"name":1220},"¿Puedo correr Live Control sin C21LiveEditor?","Sí. El producto Live Control solo requiere ",[464,1223,511],{},". Cuando falta ",[464,1226,527],{},", la pestaña ",[532,1229,1230],{},"Recordings → Editor"," queda oculta y el flujo de exportación MediaCopilot no puede invocarse desde la UI, pero el resto de funcionalidad funciona.",[1218,1233,1235,1236,1238],{"name":1234},"¿Qué ocurre si mi C21LiveControl expira mientras estoy en el aire?","El proceso Live Control sigue hasta el siguiente chequeo periódico de licencia. Cuando el chequeo detecta que la licencia ya no es válida, registra ",[532,1237,1186],{}," y termina. Los Live streams ya en vuelo en el lado Encoder siguen emitiendo hasta que el Encoder pierde la conexión con el Control o su propia licencia expira.",[1218,1240,1242,1243,613],{"name":1241},"¿Sirve el mismo fichero de licencia en el Encoder y en el Control?","No. Cada host lleva su propio fichero de licencia vinculado a su propia MAC, y el Encoder y el Control aplican conjuntos distintos. Un appliance combinado Control + Encoder tiene una sola MAC y por tanto un solo fichero, pero el fichero contiene ambos conjuntos de secciones ",[464,1244,914],{},[1218,1246,1248,1249,1251,1252,1254,1255,1257,1258,1260,1261,1263,1264,1266,1267,613],{"name":1247},"¿Puedo ver la capacidad de Channels del Encoder desde la UI del Control?","Sí. Abre el Device en ",[542,1250,80],{"href":81}," y lee ",[464,1253,661],{}," — esa es la ",[464,1256,964],{}," de la licencia ",[464,1259,627],{}," del Encoder. ",[464,1262,689],{}," es la ",[464,1265,964],{}," de ",[464,1268,669],{},[1218,1270,1272,1273,1275,1276,1278,1279,1281],{"name":1271},"¿Por qué la creación de Channel Youtube Live falla con APIf807?","El host no lleva la licencia ",[464,1274,778],{},". El tipo de Channel sigue en el esquema por estabilidad de contrato, pero las mutaciones (crear \u002F convertir) se rechazan con ",[464,1277,809],{},". Los Channels existentes de tipo ",[532,1280,773],{}," siguen funcionando hasta que los edites.",{"title":1283,"searchDepth":1284,"depth":1284,"links":1285},"",2,[1286,1287,1288,1292,1295,1296,1297,1298,1302,1303],{"id":428,"depth":1284,"text":429},{"id":458,"depth":1284,"text":459},{"id":474,"depth":1284,"text":475,"children":1289},[1290],{"id":570,"depth":1291,"text":571},3,{"id":616,"depth":1284,"text":617,"children":1293},[1294],{"id":710,"depth":1291,"text":711},{"id":742,"depth":1284,"text":743},{"id":835,"depth":1284,"text":836},{"id":907,"depth":1284,"text":908},{"id":998,"depth":1284,"text":999,"children":1299},[1300,1301],{"id":1002,"depth":1291,"text":1003},{"id":1018,"depth":1291,"text":1019},{"id":1168,"depth":1284,"text":1169},{"id":1215,"depth":1284,"text":1216},"Las licencias de producto que controlan C21 Live Control y C21 Live Encoder, cómo se instalan, dónde se administran y qué ocurre cuando una falta o expira.","md",null,{},{"icon":206},{"title":339,"description":1304},"0M187yc2G6OVYOuys22cFQhSpT1IpN5ba8CRWe0TAsU",[1312,1314],{"title":334,"path":335,"stem":336,"description":1313,"icon":337,"children":-1},"Actualiza C21 Live Control y C21 Live Encoder — flujo, compatibilidad y rollback.",{"title":41,"path":348,"stem":349,"description":1315,"icon":350,"children":-1},"Programa contra C21 Live Control — la REST API en \u002Fc21apiv2 y el servidor MCP, ambos tras un único bearer token.",1782916473933]