[{"data":1,"prerenderedAt":902},["ShallowReactive",2],{"navigation_docs_es":3,"-es-how-tos-source-synchronized-encoding":408,"-es-how-tos-source-synchronized-encoding-surround":897},[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":269,"body":410,"description":890,"extension":891,"links":892,"meta":893,"navigation":894,"path":270,"seo":895,"stem":271,"__hash__":896},"docs_es\u002Fes\u002F6.how-tos\u002F11.source-synchronized-encoding.md",{"type":411,"value":412,"toc":872},"minimark",[413,421,428,433,440,444,447,450,499,503,553,557,579,583,629,633,636,744,747,750,754,794,798,820,824,843,847,852,856,864,868],[414,415,416,420],"p",{},[417,418,419],"strong",{},"Available in:"," UI · API",[414,422,423,424,427],{},"Usa este how-to para configurar un par de encoders que produzcan ",[417,425,426],{},"salida bit-idéntica"," desde la misma fuente. Un origen o CDN aguas abajo puede entonces cambiar del entrypoint de un encoder al del otro segmento a segmento sin insertar una etiqueta de discontinuidad en el manifest, así los espectadores no vuelven a almacenar en búfer cuando un encoder falla.",[429,430,432],"h2",{"id":431},"cuándo-usar-esto","Cuándo usar esto",[414,434,435,436,439],{},"Live stream premium donde un fallo de un único encoder no debe producir un glitch visible al espectador — deportes, informativos, emisiones VOD-window premium, streams críticos para revenue publicitario. Para Live streams estándar con failover dirigido por operador, el toggle por-Destination en runtime de ",[437,438,31],"a",{"href":32}," suele ser suficiente.",[429,441,443],{"id":442},"cómo-funciona","Cómo funciona",[414,445,446],{},"Dos encoders ingestan la misma fuente y producen la misma salida empaquetada, segmento a segmento. La capa de empaquetado espera a la salida de transcodificación activa antes de arrancar (evitando datos viejos), elimina los índices byte-range por segmento que de otro modo diferirían entre encoders, y alinea las fronteras de segmento al intervalo de keyframes para que los dos conjuntos de segmentos sean intercambiables. Un origen que se suscribe a los dos entrypoints puede entregar cualquiera de los dos al reproductor; si uno cae, el siguiente segmento se sirve desde el otro y el reproductor nunca ve una discontinuidad.",[414,448,449],{},"SSE soporta dos modos de entrada:",[451,452,453,469],"table",{},[454,455,456],"thead",{},[457,458,459,463,466],"tr",{},[460,461,462],"th",{},"Modo",[460,464,465],{},"Fuente temporal para sincronización",[460,467,468],{},"Requisito de red",[470,471,472,486],"tbody",{},[457,473,474,480,483],{},[475,476,477],"td",{},[417,478,479],{},"SDI",[475,481,482],{},"Timecodes RP188 embebidos en la señal SDI.",[475,484,485],{},"Ninguno más allá del feed SDI.",[457,487,488,493,496],{},[475,489,490],{},[417,491,492],{},"Stream",[475,494,495],{},"Relojes de host sincronizados por NTP.",[475,497,498],{},"Ambos hosts encoder deben tener NTP. Ambos deben recibir el mismo stream UDP \u002F multicast sin re-stamping de paquetes.",[429,500,502],{"id":501},"prerrequisitos","Prerrequisitos",[504,505,506,517,532,539,546],"ul",{},[507,508,509,512,513,516],"li",{},[417,510,511],{},"Dos Devices"," del mismo tipo (los dos basados en GPU, o los dos en CPU) alcanzables desde la instancia de ",[417,514,515],{},"C21 Live Control",".",[507,518,519,520,523,524],{},"Una ",[417,521,522],{},"fuente compartida"," que ambos encoders puedan ingestar:\n",[504,525,526,529],{},[507,527,528],{},"Para modo SDI: ambos hosts encoder tienen acceso al mismo feed SDI (dos runs SDI paralelos desde la misma fuente, o un amplificador de distribución SDI).",[507,530,531],{},"Para modo Stream: ambos hosts encoder pueden hacer pull del mismo stream UDP \u002F multicast, y el sender upstream no hace re-stamping de paquetes.",[507,533,534,535,538],{},"Para modo Stream: ",[417,536,537],{},"sincronización NTP"," en ambos hosts encoder. La alineación del offset de grabación depende de ello.",[507,540,541,542,545],{},"Un ",[417,543,544],{},"Encoding"," con un keyframe interval estable. SSE deriva las fronteras de segmento de ese valor — cambiarlo tras el deploy desplaza la alineación.",[507,547,548,549,552],{},"Un origen o CDN aguas abajo que ",[417,550,551],{},"soporte failover por segmento"," entre dos entrypoints (orígenes CMAF o compatibles con DASH-IF; consulta la documentación de tu origen).",[429,554,556],{"id":555},"restricciones","Restricciones",[504,558,559,565,572],{},[507,560,561,564],{},[417,562,563],{},"Los marcadores SCTE y los timecodes deben propagarse de forma idéntica"," a ambos encoders. Cualquier divergencia en los cue points rompe la alineación.",[507,566,567,568,571],{},"En modo Stream el sender upstream ",[417,569,570],{},"no debe re-stampear paquetes",". Un relay que reescribe timestamps anula la redundancia.",[507,573,574,575,578],{},"Ambos encoders deben correr el ",[417,576,577],{},"mismo perfil de encoding"," — codec, bitrate, resolución, keyframe interval, modo HDR. El emparejamiento SSE es por encoding.",[429,580,582],{"id":581},"via-ui","Via UI",[584,585,586,591,597,601,604,608,615,619,622,626],"steps",{},[587,588,590],"h3",{"id":589},"configura-dos-devices","Configura dos Devices",[414,592,593,594,596],{},"Registra los dos Devices encoder en ",[417,595,80],{},". Asegura que comparten el mismo tipo y la misma clase de hardware.",[587,598,600],{"id":599},"crea-el-channel-y-encoding-compartidos","Crea el Channel y Encoding compartidos",[414,602,603],{},"Crea un Channel del tipo de entrada correspondiente (SDI para modo SDI, Stream para modo Stream) — ambos hosts encoder deben poder ingestarlo. Crea un Encoding con el codec, bitrate, resolución y keyframe interval que el par va a producir.",[587,605,607],{"id":606},"activa-sse-en-el-channel","Activa SSE en el Channel",[414,609,610,611,614],{},"Abre el editor del Channel y activa ",[417,612,613],{},"Sync Source Encoding",". Este flag le indica al lado encoder que cualquier broadcast sobre este Channel debe correr en modo SSE.",[587,616,618],{"id":617},"enlaza-el-live-stream-en-los-dos-encoders","Enlaza el Live stream en los dos encoders",[414,620,621],{},"Crea dos Live streams, ambos apuntando al mismo Channel, mismo Encoding y mismos Destinations, cada uno corriendo en uno de los dos Devices.",[587,623,625],{"id":624},"arranca-ambos-live-streams","Arranca ambos Live streams",[414,627,628],{},"Arranca los dos Live streams juntos. Los dos encoders comienzan a producir la misma salida empaquetada; el origen aguas abajo debería reportar ambos entrypoints como sanos.",[429,630,632],{"id":631},"via-api","Via API",[414,634,635],{},"El flag SSE vive en el Channel:",[637,638,643],"pre",{"className":639,"code":640,"language":641,"meta":642,"style":642},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X PUT \"https:\u002F\u002F\u003Ctu-host>\u002Fc21apiv2\u002Fchannels\u002F\u003CchannelId>\" \\\n  -H \"Authorization: Bearer \u003CYOUR_API_TOKEN>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"settings\": {\n      \"sync_source_encoding\": true\n    }\n  }'\n","bash","",[644,645,646,676,691,705,717,723,729,735],"code",{"__ignoreMap":642},[647,648,651,655,659,662,666,669,672],"span",{"class":649,"line":650},"line",1,[647,652,654],{"class":653},"sBMFI","curl",[647,656,658],{"class":657},"sfazB"," -X",[647,660,661],{"class":657}," PUT",[647,663,665],{"class":664},"sMK4o"," \"",[647,667,668],{"class":657},"https:\u002F\u002F\u003Ctu-host>\u002Fc21apiv2\u002Fchannels\u002F\u003CchannelId>",[647,670,671],{"class":664},"\"",[647,673,675],{"class":674},"sTEyZ"," \\\n",[647,677,679,682,684,687,689],{"class":649,"line":678},2,[647,680,681],{"class":657},"  -H",[647,683,665],{"class":664},[647,685,686],{"class":657},"Authorization: Bearer \u003CYOUR_API_TOKEN>",[647,688,671],{"class":664},[647,690,675],{"class":674},[647,692,694,696,698,701,703],{"class":649,"line":693},3,[647,695,681],{"class":657},[647,697,665],{"class":664},[647,699,700],{"class":657},"Content-Type: application\u002Fjson",[647,702,671],{"class":664},[647,704,675],{"class":674},[647,706,708,711,714],{"class":649,"line":707},4,[647,709,710],{"class":657},"  -d",[647,712,713],{"class":664}," '",[647,715,716],{"class":657},"{\n",[647,718,720],{"class":649,"line":719},5,[647,721,722],{"class":657},"    \"settings\": {\n",[647,724,726],{"class":649,"line":725},6,[647,727,728],{"class":657},"      \"sync_source_encoding\": true\n",[647,730,732],{"class":649,"line":731},7,[647,733,734],{"class":657},"    }\n",[647,736,738,741],{"class":649,"line":737},8,[647,739,740],{"class":657},"  }",[647,742,743],{"class":664},"'\n",[414,745,746],{},"Cuando el valor por-Channel no está definido, una constante global del deploy puede activar SSE de forma general (detalle de instalación — coordínalo con tu representante Cires21).",[414,748,749],{},"Una vez activado el flag, los dos Live streams que ingestan este Channel a través de Devices distintos corren sincronizados por defecto.",[429,751,753],{"id":752},"notas-de-empaquetado","Notas de empaquetado",[504,755,756,763,770,781,784,791],{},[507,757,758,759,762],{},"La duración de segmento la dirige el ",[417,760,761],{},"keyframe interval"," del Encoding. Donde haya concatenación configurada, varios segmentos alineados a keyframe se agrupan en el segmento final entregado.",[507,764,765,766,769],{},"Las master playlists HLS omiten la etiqueta ",[644,767,768],{},"EXT-X-START"," — requerido para compatibilidad con reproductores basados en FFmpeg.",[507,771,772,773,776,777,780],{},"Las playlists HLS llevan una etiqueta ",[644,774,775],{},"EXT-X-PROGRAM-DATE-TIME"," en ",[417,778,779],{},"cada segmento",", anclada al wall-clock y derivada del índice del segmenter de la fuente.",[507,782,783],{},"Como ese date-time por segmento es idéntico en todos los encoders que ingestan el mismo Channel, un origen aguas abajo (AWS MediaPackage v2, por ejemplo) ancla todas las renditions al mismo instante.",[507,785,786,787,790],{},"Los MPDs DASH ponen ",[644,788,789],{},"suggestedPresentationDelay"," para que el reproductor quede un número determinista de segmentos por detrás del live edge.",[507,792,793],{},"Para salidas CMAF \u002F fMP4, los índices byte-range por segmento se eliminan para que los dos streams de encoder queden byte-comparables.",[429,795,797],{"id":796},"verificar","Verificar",[504,799,800,807,810,817],{},[507,801,802,803,806],{},"Ambos encoders publican segmentos con ",[417,804,805],{},"timestamps coincidentes"," al mismo tiempo nominal.",[507,808,809],{},"Para salidas CMAF \u002F fMP4, los bytes de segmento de un encoder coinciden con los del otro (compara una muestra manualmente si tu origen no lo expone directamente).",[507,811,812,813,816],{},"El log de failover del origen registra un swap por segmento ante un fallo de encoder con ",[417,814,815],{},"ninguna discontinuidad de manifest"," vista por el reproductor.",[507,818,819],{},"Durante una parada controlada de un encoder, el reproductor aguas abajo no vuelve a almacenar en búfer.",[429,821,823],{"id":822},"cross-links","Cross-links",[504,825,826,833,838],{},[507,827,828,832],{},[437,829,831],{"href":830},"\u002Fes\u002Fconfiguration\u002Fencodings#color-hdr","Encodings → Color & HDR"," — el keyframe interval que dirige las fronteras de segmento vive en el perfil de Encoding.",[507,834,835,837],{},[437,836,80],{"href":81}," — registra los dos Devices encoder que formarán el par.",[507,839,840,842],{},[437,841,31],{"href":32}," — toggle por-Destination en runtime para el caso más sencillo de failover dirigido por operador.",[429,844,846],{"id":845},"faq","FAQ",[848,849,851],"collapsible",{"name":850},"¿Tienen los dos encoders que estar en el mismo modelo de hardware?","Deben correr la misma pipeline de encoding (codec, bitrate, resolución, keyframe interval, modo HDR), pero estrictamente no tienen que estar en hardware idéntico. En la práctica, los deploys emparejan iguales con iguales (dos NVENC, dos NETINT, dos solo-CPU) porque las características temporales por encoder afectan a cuán a menudo se mantiene la alineación a nivel byte.",[848,853,855],{"name":854},"¿Funciona SSE entre data centres?","Sí en modo Stream, siempre que ambos hosts encoder puedan hacer pull del mismo stream UDP \u002F multicast y los dos estén sincronizados por NTP. Los dos encoders no necesitan vivir en la misma LAN. El modo SDI es por definición local porque el feed SDI es local.",[848,857,859,860,863],{"name":858},"¿SSE reemplaza al toggle por-Destination en runtime?","No — apuntan a fallos distintos. SSE protege contra un fallo del lado encoder; el toggle por-Destination en runtime (",[644,861,862],{},"runtimeTogglePublishings",") protege contra un fallo del lado destino. Muchos deploys usan ambos.",[848,865,867],{"name":866},"¿Pueden los dos encoders correr Encoding groups distintos?","No. Los encodings deben ser los mismos en ambos lados del par — la alineación byte depende de parámetros de encoding idénticos. Usa un único Encoding (o Encoding group) y enlázalo a los dos Live streams.",[869,870,871],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":642,"searchDepth":678,"depth":678,"links":873},[874,875,876,877,878,885,886,887,888,889],{"id":431,"depth":678,"text":432},{"id":442,"depth":678,"text":443},{"id":501,"depth":678,"text":502},{"id":555,"depth":678,"text":556},{"id":581,"depth":678,"text":582,"children":879},[880,881,882,883,884],{"id":589,"depth":693,"text":590},{"id":599,"depth":693,"text":600},{"id":606,"depth":693,"text":607},{"id":617,"depth":693,"text":618},{"id":624,"depth":693,"text":625},{"id":631,"depth":678,"text":632},{"id":752,"depth":678,"text":753},{"id":796,"depth":678,"text":797},{"id":822,"depth":678,"text":823},{"id":845,"depth":678,"text":846},"Ejecuta dos encoders contra la misma fuente para que un packager o CDN pueda hacer failover por segmento entre los dos entrypoints sin discontinuidad en el manifest.","md",null,{},{"icon":272},{"title":269,"description":890},"HoKlt2mMr1pzIADMsgq4wb5MH0JH9buS9hjRtXLFzNw",[898,900],{"title":264,"path":265,"stem":266,"description":899,"icon":267,"children":-1},"Sacar al aire una emisión pública de YouTube Live como fuente de un Live stream.",{"title":274,"path":275,"stem":276,"description":901,"icon":34,"children":-1},"Emite un Channel de radio como un Live stream donde la pista visual es una imagen o clip corto programable, el audio es siempre el directo, y la imagen se puede sustituir sin interrumpir el audio.",1782916470477]