;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Marcel Rizzo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Copa do Mundo feminina de 2023 pode ter transmissão por streaming da Fifa

Pia Sundhage, técnica da seleção brasileira, durante sorteio dos grupos da Copa do Mundo de 2023 - Joe Allison/Getty Images
Pia Sundhage, técnica da seleção brasileira, durante sorteio dos grupos da Copa do Mundo de 2023 Imagem: Joe Allison/Getty Images

Colunista do UOL

25/10/2022 04h00

A Fifa avalia a transmissão da Copa do Mundo feminina 2023 para todo o mundo por seu streaming, o Fifa+. O torneio ocorrerá entre 20 de julho e 20 de agosto do ano que vem, na Austrália e na Nova Zelândia. Para o Brasil, a Globo já detém os direitos em TVs aberta e fechada (SporTV) e internet.

No sábado (22) foram sorteados os grupos do torneio e o Brasil caiu no F, com França, Jamaica e o vencedor da repescagem mundial que terá Paraguai, Papua Nova Guiné, Panamá e Taiwan - a definição do último integrante será em fevereiro.

As informações sobre os direitos de transmissão do Mundial foram readas aos membros do Conselho da Fifa em reunião na manhã de sábado em Auckland, na Nova Zelândia, noite de sexta ada no horário de Brasília. A direção da Fifa planeja a transmissão por seu streaming depois de encontrar dificuldade em vender o torneio a alguns países pelo preço que acha justo.

Seria o primeiro torneio "classe A" da Fifa com alcance global pelo streaming lançado em abril de 2022, que tem o gratuito em todo o mundo. Algumas competições já apareceram na plataforma, como as Copas femininas sub-20, em agosto, e sub-17, que está em andamento neste momento na Índia, para teste principalmente de ibilidade.

A Copa do Mundo masculina do Qatar, entre novembro e dezembro, a princípio, não terá transmissão pelo Fifa+.

Negociação

A menos de nove meses do início da Copa do Mundo da Austrália e da Nova Zelândia, a Fifa vendeu os direitos para TV, rádio, mobile e internet a empresas de 160 países, número considerado baixo — a Copa do Qatar, por exemplo, tem o evento negociado a 219 territórios.

Mercados importantes como Reino Unido, Portugal e China não tiveram empresas que adquiriram o torneio até o momento e, hoje, a única maneira dos moradores dessas regiões assistirem aos confrontos seria pelo Fifa+.

Internamente, a Fifa tem reclamado que as propostas recebidas são baixas já que o futebol feminino teve um crescimento expressivo de audiência nos últimos anos — a Copa de 2019 na França teve 30% a mais de espectadores considerando várias plataformas do que a anterior em 2015, no Canadá.

Os principais contratos de direitos de transmissão da Fifa terminaram em 2022, inclusive com o Grupo Globo. Para a Copa feminina de 2023, a emissora carioca e a federação internacional fecharam um novo contrato que retira, por exemplo, exclusividade para streaming. Para as demais plataformas, como TVs aberta e fechada, a Globo mantém direitos exclusivos e pode, inclusive, vender a outras empresas caso queira.