HairCAPTURE – Utilizando captura de vídeo em C++ (sem segredos)

Quando iniciei as pesquisas em V4L (Vídeo for Linux), percebi que não faria sentido (em termos comerciais) um profissional estudar todos os conceitos para desenvolver tal aplicações. Sendo assim trabalhei em um projeto paralelo para facilitar os meus futuros projetos de manipulação de vídeo ao vivo e acabei disponibilizando este trabalho para a comunidade.

[ Hits: 31.759 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 12/10/2005 | Blog: http://assuntonerd.com.br


Introdução



A biblioteca libhairCAPTURE (http://lhaircapture.sourceforge.net ou http://libhaircapture.codigolivre.org.br) é uma biblioteca de objetos escrita em C++, criada para facilitar o desenvolvimento de aplicações que manipulam vídeo ao vivo. Os métodos trabalham com chamadas da API V4L (Video for Linux) versão 1. Os recursos da biblioteca SDL foram utilizados para proporcionar recursos visuais junto à exibição do vídeo ao vivo. Abaixo, alguns recursos:
  • Traçar gráficos primitivos;
  • Exibir imagem com transparência;
  • Escrever texto em tempo real sobre o vídeo ao vivo;
  • Exibição de imagem ZoomOut (efeito picture-to-picture);
  • Exibição em janela ou tela cheia.


Futuras implementações:
  • Transmissão de quadros via TCP/IP;
  • Armazenamento de quadros em discos e/ou em banco de dados;
  • Alternar automaticamente os canais de TV e entradas de vídeo;
  • Geração de arquivos de vídeo em formato MPEG;
  • Filtros de efeitos em tempo real.

Dependências:
  • SDL (Multimídia):http://www.libsdl.org
  • SDL-devel (Desenvolvimento);
  • SDL_ttf (Fonte True-Type);
  • SDL_gfx (Gráficos primitivos);
  • SDL_gfx-devel (Desenvolvimento).

Agradecimentos:

A conclusão deste trabalho somente foi possível graças à compreensão e incentivo da minha esposa Gisele Faria, às documentações enviadas por Alan Cox, ao constante apoio do Fábio e da comunidade Viva o Linux, Lucas do LinuxDicas e o parceiro Davidson Paulo (autor do Guia Bozolinux), que assumiu a coordenação da documentação do projeto.

Para visualizar o resultado, veja o vídeo no link abaixo:
    Próxima página

Páginas do artigo
   1. Introdução
   2. Download e instalação
   3. Compilando e testando os exemplos do pacote de desenvolvimento
Outros artigos deste autor

Utilize qualquer Tablet/Smartphone como monitor estendido sem fio no GNU/Linux

Solução open source para clínicas médicas

Fim da era PC: Transformando o seu celular em computador de mesa!

Dominando o apt-get no Conectiva

Permitindo o uso da internet usando o login do SAMBA

Leitura recomendada

Visualizador de sistema de arquivos tridimensional

Da criança problema até o abacaxi

Teoria das Formas e o Aumento da Usabilidade

Os bons tempos voltaram! Revivendo e revisitando o WindowMaker

Cinelerra no Ubuntu - Instalando e configurando para melhor desempenho

  
Comentários
[1] Comentário enviado por removido em 13/10/2005 - 11:47h

mestre cabelo.... sempre aprontando!!!

[2] Comentário enviado por HunterNetBR em 13/10/2005 - 18:02h

Ae amigo,

Muito boa a idéia... tentei fazer aqui mas deu não... ta dando erro na hora de compilar os exemplos...

g++ -c example01.cpp
example01.cpp:8:28: funcoesCAPTURE.h: No such file or directory
example01.cpp: In function `int main(int, char**)':
example01.cpp:19: error: `HAIR' undeclared (first use this function)
example01.cpp:19: error: (Each undeclared identifier is reported only once for
each function it appears in.)
example01.cpp:19: error: parse error before `::' token
example01.cpp:22: error: `video1' undeclared (first use this function)
example01.cpp:36: error: `cout' undeclared in namespace `std'
example01.cpp:37: error: `cin' undeclared in namespace `std'
make: *** [capture] Error 1

Oque pode estar acontecendo?

[3] Comentário enviado por CABELO em 13/10/2005 - 18:28h

me parece que foi instalado apenas o pacote hairCAPTURE-devel

o pacote hairCAPTURE tbm deve ser instalado.

[4] Comentário enviado por HunterNetBR em 13/10/2005 - 18:37h

ops... instalei o pacote hairCAPTURE-devel agora deu o erro:

root@hunternet:~/haircapture/usr/share/hairCAPTURE# make
g++ -c example01.cpp
In file included from example01.cpp:8:
/usr/include/funcoesCAPTURE.h:21:35: SDL/SDL_gfxPrimitives.h: No such file or directory
/usr/include/funcoesCAPTURE.h:22:30: SDL/SDL_rotozoom.h: No such file or directory
make: *** [capture] Error 1

[5] Comentário enviado por CABELO em 13/10/2005 - 19:18h


SDL e SDL-devel : http://www.libsdl.org/download-1.2.php

SDL_ttf : http://www.libsdl.org/projects/SDL_ttf/

SDL_gfx e SDL_gfx-devel:
http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/

[6] Comentário enviado por cristianodts em 05/10/2006 - 10:49h

Olha Cabelo tem lido os seus artigos. Fantástico!!! Meus parabéns. Eu estou a cada dia que passa desde de 1998 que o Linux é um software de futuro, tem revolucionado e vai crescer cada vez mais, e bom quando se tem profissionais, amigos como vc para podermos compartilhar informações sobre este universo grande do linux.. valeu... um abraço... qq coisa podermos trocar informação...

[7] Comentário enviado por maurin em 13/02/2008 - 11:47h

Gostaria de realizar uma pergunta.

Tenho uma distro Fedora 8 64 bits em minha maquina.

Como nao existe um rpm para essa distro para a lib do cabelo, tentei compilar o fonte para gerar o .so

Verifiquei que a versão do Fedora 64 utiliza uma versão antiga do SDL_gfx, que não possui muitos dos headers da versão atualizada, alguns inclusive utilizados nesta lib como SDL_gfxPrimitives.h.

Alguem ja tentou utilizar ou compilar esta lib no fedora 64?
Existe alguma solução possivel para esse problema?


Agradeço a atenção!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts