FMUSER Transmitir vídeo e áudio sem fio mais fácil!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanês
ar.fmuser.org -> árabe
hy.fmuser.org -> armênio
az.fmuser.org -> Azerbaijão
eu.fmuser.org -> Basco
be.fmuser.org -> bielorrusso
bg.fmuser.org -> búlgaro
ca.fmuser.org -> catalão
zh-CN.fmuser.org -> Chinês (simplificado)
zh-TW.fmuser.org -> chinês (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> dinamarquês
nl.fmuser.org -> holandês
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandês
fr.fmuser.org -> francês
gl.fmuser.org -> galego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemão
el.fmuser.org -> grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> hebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> húngaro
is.fmuser.org -> islandês
id.fmuser.org -> indonésio
ga.fmuser.org -> irlandês
it.fmuser.org -> italiano
ja.fmuser.org -> Japonês
ko.fmuser.org -> coreano
lv.fmuser.org -> letão
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedônio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltês
no.fmuser.org - norueguês
fa.fmuser.org -> persa
pl.fmuser.org -> polonês
pt.fmuser.org -> português
ro.fmuser.org -> romeno
ru.fmuser.org -> russo
sr.fmuser.org -> Sérvio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> esloveno
es.fmuser.org -> espanhol
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandês
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> vietnamita
cy.fmuser.org -> Galês
yi.fmuser.org -> iídiche
O sistema de transmissão ao vivo de áudio e vídeo é um sistema de engenharia complexo. Para conseguir uma transmissão ao vivo com atraso muito baixo, é necessária uma complexa otimização de engenharia de sistema e familiaridade com os vários componentes. Aqui estão algumas dicas comuns de ajuste:
Otimização de codificação
1. Certifique-se de que o codec ative a configuração de atraso mínimo. Codec geralmente tem switch de otimização de baixa latência, especialmente para H.264. Muitas pessoas podem não saber que o decodificador H.264 armazenará em cache um certo número de quadros de vídeo antes de exibi-los. Para vídeo com resolução QCIF (176 × 144), ele armazenará em cache 16 quadros e, para vídeo 720p, armazenará em cache 5 quadros. Para a primeira leitura de quadro, esse é um grande atraso. Se você não usar H.264 para codificar e compactar seu vídeo, certifique-se de não usar quadros B, isso também terá um impacto maior no atraso, porque a decodificação de quadros B no vídeo depende do quadros de vídeo antes e depois, o que aumentará o atraso.
2. O codificador geralmente tem o atraso causado pelo controle do código, que também é chamado de atraso de inicialização ou tamanho do buffer do VBV. É considerado como o buffer entre o codificador e o fluxo de bits do decodificador, que pode ser definido para o menor possível ou reduzir o atraso sem afetar a qualidade do vídeo.
3. Se o primeiro atraso for apenas otimizado, mais quadros-chave podem ser inseridos entre os quadros de vídeo, para que o cliente possa decodificar o fluxo de vídeo o mais rápido possível após recebê-lo. No entanto, se precisarmos otimizar o atraso cumulativo no processo de transmissão, devemos usar o mínimo de quadros-chave possível, ou seja, quadros I (o GOP torna-se maior). No caso de garantir a mesma qualidade de vídeo, quanto mais quadros I, maior será a taxa de bits e mais largura de banda de rede necessária para a transmissão, o que significa que o atraso cumulativo pode ser maior. Este efeito de otimização pode não ser óbvio no sistema com segundo retardo, mas será óbvio no sistema com 100 ms ou retardo ainda menor. Ao mesmo tempo, tente usar o codec acc-lc para codificar o áudio. Embora o he-acc ou he-acc 2 tenha alta eficiência de codificação, leva mais tempo para codificar e o atraso de transmissão causado por um volume maior de áudio tem menos impacto na transmissão do fluxo de vídeo.
4. Não use o formato de compactação de vídeo MJPEG, pelo menos use o formato de compactação de vídeo MPEG4 sem quadro B (perfil simples) e, melhor ainda, use o perfil de linha de base H.264 (x264 também tem uma chave de otimização "tune zerolatency"). Essa otimização simples pode reduzir a latência porque pode codificar vídeo com taxa de quadros total a uma taxa de bits mais baixa.
5. Se ffmpeg for usado, reduza os valores de "- tamanho da sonda" e "- duração da análise", que são usados para monitoramento de informações de quadro de vídeo e tempo de monitoramento. Quanto maiores forem os dois valores, maior será o impacto no atraso de codificação. Na cena ao vivo, não é nem mesmo necessário definir o parâmetro de duração de análise para o stream de vídeo.
6. A codificação de taxa fixa CBR pode eliminar a influência do jitter da rede até certo ponto. Se a codificação de taxa variável VBR puder ser usada, ela pode economizar alguma largura de banda de rede desnecessária e reduzir certos atrasos. Portanto, sugere-se que o VBR seja usado para codificação tanto quanto possível.
Otimização do protocolo de transporte
1. Tente usar RTMP em vez do protocolo HLS baseado em HTTP para transmissão entre nós de servidor, o que pode reduzir o atraso geral de transmissão. Isso é voltado principalmente para os usuários finais que usam HLS para jogar.
2. Se o usuário final usa RTMP para reproduzir, a transcodificação deve ser realizada no nó receptor próximo ao final do streaming, de modo que o stream de vídeo transmitido seja menor do que o stream de vídeo original.
3. Se necessário, o protocolo UDP personalizado pode ser usado para substituir o protocolo TCP e a retransmissão de perda de pacote no link de rede fraco pode ser eliminada, o que pode reduzir o atraso. Sua principal desvantagem é que a transmissão e distribuição de fluxo de vídeo personalizado com base no protocolo UDP não é universal o suficiente e os fabricantes de CDN suportam o protocolo de transmissão padrão. Outra desvantagem é que pode haver respingos ou borrões causados pela perda de pacotes (falta de referência de decodificação de quadro chave), o que exige que a parte da personalização do protocolo faça um bom trabalho no controle da perda de pacotes com base no UDP.
Otimização da rede de transmissão
1. Introduzimos a rede de streaming em tempo real, que é um novo tipo de rede de transmissão de rede com nós auto-organizados. Não é apenas adequado para a otimização da transmissão da rede multi-operadora doméstica, mas também adequado para as necessidades de muitas transmissões ao vivo no exterior.
2. Armazene o GOP atual no nó do servidor e coopere com o player para otimizar o tempo de abertura do vídeo.
3. O servidor registra a taxa de quadros de segundo nível e a taxa de código quando cada fluxo de vídeo flui para cada link em tempo real e monitora a flutuação da taxa de código e da taxa de quadros em tempo real.
4. O cliente (fluxo push e reprodução) obtém o nó ideal atual em tempo quase real ao consultar o servidor (uma vez a cada 5 segundos), e o nó de falha atual e a linha estão offline em tempo quase real.
Otimização de streaming e reprodução
1. O sistema pode armazenar dados em cache antes de enviar dados. A afinação deste parâmetro também precisa encontrar um equilíbrio.
2. O controle de buffer do player também tem uma grande influência no primeiro atraso do vídeo. Se apenas o primeiro atraso for otimizado, os dados podem ser decodificados imediatamente quando chegam no caso de 0 buffer. Mas em um ambiente de rede fraco, a fim de eliminar o impacto do jitter da rede, é necessário definir um determinado cache, então precisamos encontrar um equilíbrio entre a estabilidade da transmissão ao vivo e a otimização do primeiro atraso aberto, e ajustar o tamanho de buffer otimizado.
3. Estratégia de buffer dinâmico do jogador, que é uma versão aprimorada do controle de cache do jogador acima. Se escolhermos apenas entre 0 cache e cache de tamanho fixo para encontrar um equilíbrio, eventualmente escolheremos um cache de tamanho fixo, o que não é justo para 100 milhões de usuários de terminais de internet móvel. Suas diferentes condições de rede determinam que o cache de tamanho fixo não é totalmente adequado. Portanto, podemos considerar uma "estratégia de buffer dinâmica". Quando o player é ligado, usamos uma estratégia de buffer muito pequena ou até mesmo zero. O tamanho do buffer da próxima fração de tempo é determinado pelo tempo consumido para baixar o primeiro vídeo. Ao mesmo tempo, a rede atual é monitorada em tempo real durante o processo de reprodução, e o tamanho do buffer é ajustado em tempo real durante o processo de reprodução. Desta forma, o primeiro tempo de abertura pode ser muito baixo e a influência do jitter da rede pode ser eliminada tanto quanto possível.
4. Estratégia de jogo de taxa dinâmica. Além da estratégia de ajustar dinamicamente o tamanho do buffer, também podemos usar as informações da rede de monitoramento em tempo real para ajustar dinamicamente a taxa de bits no processo de reprodução. No caso de largura de banda de rede insuficiente, podemos reduzir a taxa de bits para reprodução e reduzir o atraso.
O texto acima faz parte das técnicas de otimização de baixa latência. Na verdade, quando otimizamos a baixa latência, não focamos apenas na "baixa latência", mas tentamos alcançar a baixa latência sob a condição de que outras condições não afetem a experiência do usuário. Portanto, seu conteúdo envolve uma ampla gama de tópicos.
|
Digite o e-mail para obter uma surpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanês
ar.fmuser.org -> árabe
hy.fmuser.org -> armênio
az.fmuser.org -> Azerbaijão
eu.fmuser.org -> Basco
be.fmuser.org -> bielorrusso
bg.fmuser.org -> búlgaro
ca.fmuser.org -> catalão
zh-CN.fmuser.org -> Chinês (simplificado)
zh-TW.fmuser.org -> chinês (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> dinamarquês
nl.fmuser.org -> holandês
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandês
fr.fmuser.org -> francês
gl.fmuser.org -> galego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemão
el.fmuser.org -> grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> hebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> húngaro
is.fmuser.org -> islandês
id.fmuser.org -> indonésio
ga.fmuser.org -> irlandês
it.fmuser.org -> italiano
ja.fmuser.org -> Japonês
ko.fmuser.org -> coreano
lv.fmuser.org -> letão
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedônio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltês
no.fmuser.org - norueguês
fa.fmuser.org -> persa
pl.fmuser.org -> polonês
pt.fmuser.org -> português
ro.fmuser.org -> romeno
ru.fmuser.org -> russo
sr.fmuser.org -> Sérvio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> esloveno
es.fmuser.org -> espanhol
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandês
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> vietnamita
cy.fmuser.org -> Galês
yi.fmuser.org -> iídiche
FMUSER Transmitir vídeo e áudio sem fio mais fácil!
Contato
Endereço:
No.305 Sala HuiLan Edifício No.273 Huanpu Road Guangzhou China 510620
Categorias
Newsletter