Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Atualização de imagem com LUA

5 de Outubro de 2009, 15:59 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 150 vezes

Pessoal,

Tenho uma câmera IP que envia a cada 10 segundos uma imagem para um servidor, ao qual eu tenho acesso via http. Gostaria de apresentar essa imagem na TV, fazendo o refresh para mostrar sempre a imagem mais atual.

Estou tentando fazer usando o lua com o seguinte código:

______________________________

local delay = 10000

function redraw()
    width, height = canvas:attrSize()
    img = canvas:new('http://servidor/ipcam1.jpg')
    canvas:compose(0, 0, img) -- desenha na pos.(0,0) da região
    canvas:flush()

end


local function handler(evt)
    redraw()
    event.timer(delay, handler)   
end

event.register(handler)

___________________________

O problema é que esse código sempre retorna

ImagePlayer::renderImage Warning! Can't render 'http://servidor/ipcam1.jpg', file not found!

Existe outra maneira de fazer isso?

 

Abraço,

Thiago

Autor: Thiago Regal da Silva


2020 comentários

  • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
    6 de Outubro de 2009, 17:58

     

    Pessoal,

    Alguém tem alguma idéia?

    Abraço,

    Thiago

    • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
      16 de Junho de 2010, 15:30

       

      Thiago, ainda fiz os testes aqui, mas talvez se voce consiga o efeito que voce quer criando um arquivo html, com uma tag IMG apontando para a imagem no servidor, toda vez que voce startar o html ele busca a imagem atual.

      Ha a opcao por IFrame tbm mas tambem nao tenho certeza se o STB virtual ou o Proview estao suportando.

       

      • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
        16 de Junho de 2010, 16:42

         

        Ok, fiz o teste.

        Nó de midia HTML funciona.

        Para quem quiser testar:

        Criei um arquivo Html como a seguir: ( o link é real, atualiza a imagem a cada minuto )

        <html>

        <head></head>

        <body>

        <img src="http://camera.touchngo.com/alaskacam(r).jpg" />  

        </body>

        </html>

        Basta "startar" o arquivo no ncl e a imagem sera carregada. Sempre que fizer stop e start a imagem é novamente carregada do servidor.

        Via IFrame nao esta funcionando, seria interessante caso o link nao for arquivo de imagem.

         

        • 32849101179badbf9342ada1adc916c4?only path=false&size=50&d=404Alexandre Costa(usuário não autenticado)
          21 de Junho de 2010, 15:28

           

          Olá Günter,

          preciso atualizar dados de um xml na tela. A mesma coisa que vc está fazendo com imagens.

          Porém, quando uso a classe tcp.lua para pegar o xml no servidor e  atualizar os dados usando o canvas do lua e o event.timer a aplicação parece entrar em loop e trava.

          será que vc pode disponbilizar teu código?

           

          Obrigado desde já!

          • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
            23 de Junho de 2010, 14:08

             

            Oi Alexandre, talvez eu nao tenha entendido sua questao, mas creio que o seu problema nao é bem esse. O problema estava apenas na atualizacao dinamica de imagens remotas. Quando se trata de dados, o procedimento via tcp funciona bem.

            Quanto ao codigo, é o que esta ali na mensagem mesmo, nessa solucao nem uso script lua, apenas uma midia html e o documento ncl.

            Se nao for isso, detalhe mais sua questao.

            abraco,
            Günter

    • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
      6 de Outubro de 2009, 18:26

       

      Thiago, uma possível solução seria ter uma mídia para um arquivo html local que tem uma tag img com src direcionando para a imagem no servidor web. Isso testei e funciona. Não consegui apresentar uma página html externa simplesmente colocando a url no src de uma mídia. Não sei se isto é permitido. Se alguém souber, por favor, informe. O grande problema é que, mesmo dando um stop e start na mídia periodicamente, ele não recarrega o arquivo html. Assim, ele vai apresentar a mesma imagem, mesmo que esta tenha sido alterada no servidor. Não conheço nenhuma forma de resolver isso. Não sei se é um bug do player html ou de qualquer outro componente, característica específica ou limitação.

      Tinha lido em um artigo sobre NCLua a respeito do atributo playerLife de um descriptor, mas não mudou nada.

      • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
        7 de Outubro de 2009, 9:32

         

        Manoel,

        Obrigado pela resposta. Mas a questão é que eu preciso atualizar a imagem periodicamente, o que não seria possível usando um html direcionando para a imagem.

        Pensei em fazer uma chamada http e gravar o arquivo de imagem obtido na resposta, mas o problema é que estou usando o STB proview rodando com o middleware da RCA e ele não permite a gravação em arquivo, segundo o suporte.

        Será que mais alguém tem alguma idéia? É intrigante como uma coisa tão simples parece tão difícil de implementar usando NCL e Lua.

         Abraço,

        Thiago

        • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
          7 de Outubro de 2009, 9:37

           

          Mesmo a imagem sendo atualizada constantemente, vc pode ter um html que direciona para ela. Se fizer isso e abrir o HTML num navegador no PC, recarregando ele periodicamente, verá que será mostrada a imagem personalizada. O mesmo poderia ser feito em nclua. Vc poderia parar e reiniciar a mídia html. O problema é que a mesma não está sendo lida novamente, mesmo o arquivo HTML tendo sido gerado em runtime.

          • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
            7 de Outubro de 2009, 9:41

             

            Sim, mas esse é o problema. Ainda que eu consiga carregar a imagem usando um html, não vou conseguir atualizar, pois o stop-start não recarrega o arquivo. O que eu preciso mesmo é que a imagem seja atualizada dinamicamente.

            • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
              7 de Outubro de 2009, 10:44

               

              Você tentou colocar a URL em um objeto imagem e dar o start/stop?

               

              • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
                7 de Outubro de 2009, 11:16

                 

                Fiquei interessado em ver isso funcionar. Não funciona também. Tenho um script nclua que usa o event.timer para startar uma âncora no nó lua, que pára e reinicia a imagem cujo src é uma url externa, mas não atualiza. O problema é que a mídia só é lida uma vez.

                • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
                  7 de Outubro de 2009, 11:21

                   

                  É...testei e também não funcionou. A mídia é lida apenas uma vez e não faz
                  refresh com as operações de start/stop.

                  2009/10/7

                  > Forum: Linguagem Lua
                  > Thread: Atualização de imagem com LUA
                  > Author: Manoel Campos da Silva Filho
                  > Posted: 2009-10-07 11:16:24.337077-03
                  >
                  > Fiquei interessado em ver isso funcionar. Não funciona também. Tenho um
                  > script nclua que usa o event.timer para startar uma âncora no nó lua, que
                  > pára e reinicia a imagem cujo src é uma url externa, mas não atualiza. O
                  > problema é que a mídia só é lida uma vez.
                  >
                  > Recebendo correspondência demais? Gerencie suas notificações em:
                  > www.​soft​ware​publ​ico.​gov.​br/n​otif​icat​ions​/man​age
                  >

                  • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
                    13 de Outubro de 2009, 12:22

                     

                    Olá, pessoal.

                     

                    Ninguém tem alguma idéia para resolver esta questão? Ainda não consegui arrumar uma maneira de fazer isto, e as soluções testadas não funcionaram.

                    Alguém tem mais alguma idéia?

                     Abraço

                    Thiago

                    • 11fe8f35b9e7063de5f14dd0ab44baa4?only path=false&size=50&d=404Árisson Leal(usuário não autenticado)
                      15 de Outubro de 2009, 23:13

                       

                      Oi Thiago,

                       Nessa thread o Roberto comenta uma possível solução que pode ser útil pra você.

                      • 28020d010634a30d355461551cb83668?only path=false&size=50&d=404Thiago Regal da Silva(usuário não autenticado)
                        16 de Outubro de 2009, 8:29

                         

                        Olá, Arisson,

                         O problema é que eu teria que gravar o arquivo em "disco" e depois utilizá-lo como src da mídia ou usando um canvas:new no Lua. Entretando, o STB proview com o middleware da RCA, que é onde eu preciso fazer funcionar o programa, não suporta gravação de arquivos e nem usar um arquivo de vídeo como src (dizem que não está na especificação).

                         Estou chegando à conclusão que não é possível fazer isso no NCL/LUA. A especificação é fraca nesse sentido. É meio chato, pois não é algo tão "diferente" e nem complexo.

                        Acho que a solução é esperar sair a implementação do GingaJ, se é que sai um dia....

                         Abraço,

                        Thiago

                        • 11fe8f35b9e7063de5f14dd0ab44baa4?only path=false&size=50&d=404Árisson Leal(usuário não autenticado)
                          16 de Outubro de 2009, 10:59

                           

                          Também estou querendo exibir uma imagem recuperada de um servidor web, mas não estou encontrando uma saída.

                          Se eu conseguir alguma solução eu posto por aqui.

                           []'s

                        • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
                          27 de Outubro de 2009, 0:22

                           

                          Oi Thiago,

                             o problema q vc está tendo nao é a especificação. Lembra que vc comentou que tentou dar um stop/start na media. Pois esta eh a solução para o seu problema!

                             Tlvz voce esteja tendo dificuldades com alguma implementação do Ginga que nao reflete isso! Observe q este nao eh um problema do padrao, nem de uma especificação fraca. Esse é um problema de implementação, que nao está seguindo o padrao inteiramente.

                            Inclusive a implementação disponĩvel aqui não está refletindo esta funcionalidade. Mas isso eh algo q jah estamos trabalhando para a proxima versao (graças a sua ajuda)!

                          • E2c8aa5935b571e7613f87f58e150d12?only path=false&size=50&d=404italo matos(usuário não autenticado)
                            12 de Maio de 2010, 8:14

                             

                            Eu consegui fazer imagem sobre demanda da seguinte forma:

                            1) Envio uma requisição para a URL da imagem usando tcp;

                            2) Gravo um arquivo temporario no STB com o response ( tirando o cabecalho http, claro)

                            3) Depois basta mandar renderizar a imagem temporaria na tela com canvas.

                             

                            Testei no STB da Proview com a versão de firmware 1.6.7, e funcionou perfeitamente.

                            • 49b94670a089dfa9aea15ed3e81e513c?only path=false&size=50&d=404Bruno Lima(usuário não autenticado)
                              12 de Maio de 2010, 9:58

                               

                              Como já foi discutido você como autor da aplicação não tem como escrever no sistema de arquivo.

                            • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
                              15 de Junho de 2010, 13:53

                               

                              Ola Italo,

                              o seu passo 3, "renderizar a imagem", qual o metodo canvas que voce utilizou? o pixel()? se sim, voce poderia explicar como "montou" a imagem?

                               

                              abraco,

                              Günter

                               

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo