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 código-fonte aberto live555 é o SDK usado para implementar a função de transmissão de mídia streaming. Use o play Common.cpp na pasta teSTProgs no SDK para projetar o módulo de transmissão do decodificador de IP TV e, junto com o módulo de reprodução, constitui o reprodutor de mídia de streaming do processo de decodificador de IPTV. playCommon. cpp é uma ponte que conecta o servidor e o cliente. Seu princípio de funcionamento é que quando o cliente solicita dados do servidor, ele obtém as informações de descrição do SDP do URL do servidor e cria uma sessão multimídia baseada no SDP e, finalmente, reproduz o fluxo de dados.
introduziu o processo de design do reprodutor de mídia de streaming de set-top box IPTV, usando a função de playCommON.cpp em código-fonte aberto live555, combinado com o design da estrutura de software do set-top box IPTV, desenvolveu o módulo de transmissão do set-top box IPTV . Em seguida, o módulo de transmissão é conectado ao middleware por meio da fila de mensagens e ao mesmo tempo é conectado ao módulo de reprodução por meio da função de entrada do módulo de reprodução e, finalmente, constitui o reprodutor de streaming de mídia do decodificador de IPTV. O player foi testado e tem desempenho estável.
Design de reprodutor de mídia de streaming de decodificador de 1 IPTV
1. 1 estrutura de software de set-top box IPTV
O código do software do set-top box é dividido em 4 partes: driver de hardware, sistema operacional, middleware, camada de aplicativo.
1) O driver de hardware conecta o hardware subjacente e o sistema operacional superior. 2) Sistema operacional O código-fonte livre Linux é usado aqui. 3) Middleware A camada de adaptação de software que isola a camada de aplicativo superior do sistema operacional e hardware subjacentes. Os módulos principais do middleware incluem principalmente: (1) Navegador: Obtenha a URL do servidor e exiba a página EPG correspondente. (2) Gerenciamento da interface gráfica do usuário: fornece funções gráficas, como controle da interface do usuário (como botões, listas) e desenho de imagem gráfica para aplicativos. 4) A camada de aplicação realiza a reprodução de arquivos de mídia de áudio e vídeo.
1.2 Estrutura do sistema de reprodutor de mídia de streaming de set-top box de IPTV
No código-fonte aberto Live555, playCommon.cpp realiza a função de usar um computador como um terminal de recebimento, receber e jogar com o software VLC e, finalmente, exibi-lo no computador. O conteúdo da pesquisa é integrar playCommon.cpp ao código de software do decodificador e, finalmente, realizar a função de usar o decodificador de IPTV como terminal receptor e reproduzi-lo e exibi-lo na TV. Isso apresenta novos requisitos para o design do código: por um lado, playCommon.cpp obtém a URL do servidor inserindo rtsp: // endereço IP local: número da porta / nome do arquivo a ser reproduzido na coluna RTSP do VLC . Adquirido. Porém, para o set-top box IPTV, a URL obtida pelo módulo de transmissão é a URL correspondente quando o usuário seleciona o programa no EPG por meio do controle remoto. Esta URL é lida pelo navegador no middleware, portanto é necessário conectar o middleware e o módulo de transmissão em pé. Por outro lado, o fluxo de dados enviado por playCommon.cpp é recebido e reproduzido por meio do VLC. Para decodificadores de IPTV, o fluxo de dados enviado pelo módulo de transmissão é recebido e reproduzido por meio do módulo de reprodução. Portanto, é necessário conectar o módulo de transmissão e o módulo de reprodução.
Para conectar o middleware, o módulo de saída e o módulo de reprodução, uma fila de mensagens é projetada para realizar a comunicação de dados entre esses três módulos. Além disso, pt hread create () também foi projetado no programa para criar o thread rt spmain () para realizar a simultaneidade do programa.
1.3 Análise da estrutura do programa
1.3.1 Módulo de transmissão.
1) função principal (1) void initMsgQ () inicializa a fila de mensagens. dataQid representa a fila de mensagens de dados, que contém alguns dados transmitidos na rede. Finalmente, os dados na fila de mensagens são enviados ao jogador por meio da função void send data to player (). msgkeyQid representa a fila de mensagens do valor da chave da mensagem. O módulo de transmissão recebe o comando de valor-chave de controle remoto obtido do middleware e o envia ao jogador para realizar as operações de avanço rápido, retrocesso rápido, parada e reprodução. fromeMiddleQid representa a fila de mensagens do middleware. O módulo de transmissão recebe a URL enviada do middleware como o endereço de destino quando o jogador cliente solicita dados do servidor. playerStateQid representa a fila de mensagens do estado de reprodução. O módulo de transmissão é usado para enviar e receber o estado do player e para controlar se o player está sob demanda, ao vivo ou no time shift. (2) phread_create (& g_session_thread_info, & tattr, (void * (*) (void *)) rtsp_main, (void *) & urlInform); Crie o tópico rtsp_main (). Certifique-se de que a comunicação da fila de mensagens e a transmissão da mídia de streaming sejam executadas simultaneamente.
2) função rtsp_main. (1) recvMiddlewareMsg (fromeMiddleQid, url): O valor do url passado do middleware é atribuído à variável url. (A definição de url é concluída no middleware, portanto, ela precisa ser obtida do middleware); (2) Função playCommon.cpp: Quando o cliente envia uma solicitação ao servidor, o servidor responde à solicitação, cria uma sessão de mídia e reproduz o fluxo de dados. (3) main_player_entry (gTrans. Primeiro Criar): O cliente recebe o fluxo e chama a função de entrada do jogador para inicializar o jogador. (4) void send_data_to_player (): chama o jogador, envia os dados recebidos da Internet para o jogador e começa a jogar.
|
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