Infra - Linux
Linux: Faça um incrível espetáculo de efeitos visuais com vídeo em tempo real
Se você possui uma placa de vídeo com captura, através deste documento será possível criar efeitos especiais como o do filme Matrix (desviar de balas em camêra lenta, se materializar em um determinado ponto e até o efeito dos caracteres escorrendo pelo vídeo). E tudo isto em tempo de execução.
por Alessandro de Oliveira FariaIntrodução:
Ao trabalhar com as funções da api do video4linux, constatei que existe numeroso projetos no mundo Linux que usam estas chamadas de funções.
O mais impressionante no projeto effectv, é consegui fazer com uma placa de baixo custo o que profissionais no mundo Windows desejam fazer com caríssimas placas de vídeo captura da pinnacle.
Abaixo segue um pequeno vídeo e imagens para demonstrar o que será possível fazer com este tutorial:
Filme com efeito de invisibilidade: http://www.netitec.com.br/linux/images/chameleon.mpg
Efeito Matrix
Efeito de invisibilidade
Efeito radioativo
Efeito deslocamento com rastro
Efeito de raios
Efeito de fantasma
Download e compilação:
Efetue o download dos fontes em http://prdownloads.sourceforge.net/effectv/effectv-0.3.9.tar.gz
Extraindo os arquivos:
cabelo@linux:~> cd programas/ cabelo@linux:~/programas> tar -zxvf effectv-0.3.9.tar.gz effectv-0.3.9/ effectv-0.3.9/ChangeLog effectv-0.3.9/COPYING :: :: :: :: :: :: :: :: :: effectv-0.3.9/v4lutils/README effectv-0.3.9/v4lutils/v4lutils.c effectv-0.3.9/v4lutils/v4lutils.h cabelo@linux:~/programas>
Compilando o projeto: Antes de continuar, vale a pena informar que precisamos da biblioteca SDL-Devel. Caso não encontre este pacote em sua distribuição, faça o download em http://www.libsdl.org/.
É requirito também o NASM que pode ser instalado da sua distribuição ou em http://nasm.sourceforge.net/.
cabelo@linux:~/programas> cd effectv-0.3.9/ cabelo@linux:~/programas/effectv-0.3.9> cabelo@linux:~/programas/effectv-0.3.9> make make[1]: Entering directory `/home/cabelo/programas/effectv-0.3.9/effects" make[2]: Entering directory `/home/cabelo/programas/effectv-0.3.9/effects" gcc -DUSE_NASM -DUSE_MMX -DUSE_VLOOPBACK -DVLOOPBACK_VERSION=91 -DDEFAULT_VIDEO_DEVICE=\""/dev/video0"\" -DI686 -march=pentiumpro -O3 -fomit-frame-pointer -funroll-loops -I.. -I../v4lutils `sdl-config --cflags` -Wall -c -o dumb.o dumb.c :: :: :: :: :: :: :: :: :: gcc -o effectv main.o screen.o video.o frequencies.o palette.o utils.o yuv.o buffer.o image.o vloopback.o effects/libeffects.a v4lutils/libv4lutils.a -lm `sdl-config --libs` make[1]: Leaving directory `/home/cabelo/programas/effectv-0.3.9" cabelo@linux:~/programas/effectv-0.3.9>
Executando o espetáculo:
Para executarmos o programa, para chamar o binário effectv com o parametro -channel 1 (video composto).
cabelo@linux:~/programas/effectv-0.3.9> effectv -channel 1 DumbTV OK. QuarkTV OK. FireTV OK. BurningTV OK. RadioacTV OK. StreakTV OK. BaltanTV OK. 1DTV OK. DotTV OK. MosaicTV OK. PuzzleTV OK. PredatorTV OK. SpiralTV OK. SimuraTV OK. EdgeTV OK. ShagadelicTV OK. NoiseTV OK. AgingTV OK. TransFormTV OK. LifeTV OK. SparkTV OK. warpTV OK. HolographicTV OK. cycleTV OK. RippleTV OK. DiceTV OK. VertigoTV OK. DeinterlaceTV OK. NervousTV OK. RndmTV OK. RevTV OK. RandomDotStereoTV OK. lensTV OK. DiffTV OK. BrokenTV OK. WarholTV OK. 36 effects are available. cabelo@linux:~/programas/effectv-0.3.9>
Após a execução do programa, aparecera a listas dos efeitos inicializados com sucesso. Abaixo, segue os comando para controlar os efeitos:
Principais parâmetros do programa:
effectv [opções] [nome do efeito]
Opções:
-device ARQUIVO
Nome do ARQUIVO device para o video4linux (padrão é /dev/video0).
-channel NUMERO
Determina o numero para o vídeo de origem (padrão is 0).
-norm {ntsc,pal,secam,pal-nc,pal-m,pal-n,ntsc-jp}
Determina o modo do vídeo(padrão é ntsc).
-freqtab
{us-bcast,us-cable,us-cable-hrc,japan-bcast,japan-cable,europe-west,europe-east,italy,newzealand,australia,ireland,france,china-bcast,southafrica,argentina,canada-cable,australia-optus}
Determina a frequência da sintonia da TV
-fullscreen
Executa o EffecTV em tela cheia.
-hardware
Usa a memória de vídeo (quando possível).
-doublebuffer
habilita o modo double buffering (quando possível).
-fps
Mostra o número de frames por segundo.
-size WxH
Determina a resolução de apresentação da imagem
-vloopback FILE
Usa o ARQUIVO device para vloopback device.
effect name
Executa apenas o efeito especificado.
Teclas de navegação e controle dos efeitos
Up/Down Mudança deefeito.
Right/Left Mudança do canal de TV.
Space Captura a imagem de fundo(para os efeitos FireTV, BurningTV, etc).
Mudança de modo(para os efeitos SpiralTV, TransFormTV)
ALT+Enter Tela Cheia.
TAB Vira na Horizontal.
Escape Sair
O recusro vloopback
O programa effetv suporte o recurso vloopbak, este recurso permite criar um ARQUIVO device virtual para ser utilizado por outros programas.
Resumindo para gravarmos os efeitos em mpeg podemos utilizar o seguinte truque com o vloopback:
$ effectv -vloopback /dev/video1 -channel 1
No comando acima é criado em /dev/video1, a saída do efeito processado.
$ ffmpeg -vd /dev/video1 -s 320x240 effect.mpg
Agora gravamos o efeito com o ffmpeg usando o resultado em /dev/video1.
Para utilizar este recurso, voce terá que instalar o módulo do kernel vloopback.o. Para maiores detalhes, acesse: http://motion.sourceforge.net/vloopback/
O download, encontra-se em http://motion.sourceforge.net/download/vloopback-0.91.tar.gz
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware