Projeto Caixa Preta • Intercalando vídeos

Precisava construir um vídeo alternando entre duas gravações produzidas por percursos completamente diferentes. De um lado, uma Axis P1354 gravando diretamente em H.264, a 1280×720 e 30 fps, registando o que acontecia sobre a mesa da instalação. Do outro, o sinal de vídeo proveniente de um DVD Player, manipulado sobre essa mesma mesa, capturado por um Doctor Video e gravado em 720×480. Mais do que juntar duas resoluções diferentes, interessava-me colocar em diálogo dois pontos de vista sobre o mesmo acontecimento: um mostrando os gestos, os dispositivos e o espaço da instalação; o outro mostrando a imagem que circulava entre esses dispositivos.

O primeiro passo foi preparar os dois ficheiros, recortando apenas os trechos que seriam utilizados na montagem.

ffmpeg -ss 00:00:30 -t 120 -i axis.mkv \
-c copy axis_trim.mkv
ffmpeg -ss 00:00:55 -t 120 -i doctor.mp4 \
-c copy doctor_trim.mp4

Em seguida, normalizei os parâmetros para que ambos pudessem ser utilizados no mesmo projeto. O Doctor Video gravava em 720×480 e apresentava uma taxa de quadros algo irregular, por isso optei por convertê-lo para 30 fps e inseri-lo num quadro de 1280×720 através de um pad, preservando a resolução original da imagem em vez de a ampliar artificialmente.

ffmpeg -i doctor_trim.mp4 \
-vf "fps=30,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black" \
-c:v libx264 -crf 20 -preset slow \
-c:a aac -b:a 192k \
doctor_720p30.mp4

Embora a gravação da Axis já estivesse em 1280×720 e 30 fps, também a recodifiquei para que os dois ficheiros partilhassem os mesmos parâmetros de vídeo e áudio.

ffmpeg -i axis_trim.mkv \
-vf "scale=1280:720,fps=30" \
-c:v libx264 -crf 20 -preset slow \
-c:a aac -b:a 192k \
axis_720p30.mp4

A montagem foi feita alternando segmentos de cinco segundos de cada vídeo. Em vez de criar dezenas de pequenos ficheiros intermédios, utilizei o filtro trim para selecionar cada trecho e o filtro concat para reuni-los numa única sequência.

À medida que a descrição da montagem crescia, tornou-se evidente que já não fazia sentido mantê-la diretamente na linha de comandos. Foi então que descobri a opção -filter_complex_script, que permite guardar toda a lógica do filtro num ficheiro de texto separado. O ficheiro alterna.flt passou a conter toda a sequência de cortes e concatenações.

Um pequeno trecho desse ficheiro tem este aspeto:

[0:v]trim=start=0:end=5,setpts=PTS-STARTPTS[v0];
[0:a]atrim=start=0:end=5,asetpts=PTS-STARTPTS[a0];
[1:v]trim=start=0:end=5,setpts=PTS-STARTPTS[v1];
[1:a]atrim=start=0:end=5,asetpts=PTS-STARTPTS[a1];
...
[v0][a0][v1][a1]...[v23][a23]
concat=n=24:v=1:a=1[v][a]

Com isso, a execução da montagem reduziu-se a um comando bastante simples:

ffmpeg \
-i axis_720p30.mp4 \
-i doctor_720p30.mp4 \
-filter_complex_script alterna.flt \
-map "[v]" \
-map "[a]" \
-c:v libx264 \
-crf 20 \
-c:a aac \
alternado.mp4

O resultado é um vídeo em que a imagem alterna ritmicamente entre dois fluxos distintos. A gravação da Axis documenta o que acontece sobre a mesa da instalação, enquanto o Doctor Video preserva o próprio conteúdo do circuito de vídeo manipulado durante a performance. A montagem permite que o espectador oscile continuamente entre observar o dispositivo em funcionamento e observar a imagem produzida por esse mesmo dispositivo.

Mais uma vez, chamou-me a atenção como o FFmpeg acaba por ocupar um lugar improvável no meu processo artístico. Embora seja visto sobretudo como uma ferramenta de conversão e transcodificação, revela-se igualmente útil como instrumento de montagem, experimentação e composição.

Projeto Caixa Preta • Testes de câmaras

Para realizar um teste de gravação de vídeo da câmera Axis 210, inicialmente foi necessário descobrir qual endereço IP ela estava utilizando na rede local. Para isso, foi utilizada o arp-scan em um computador com Linux MX, executando uma varredura na rede local para identificar os dispositivos conectados. Entre os dispositivos encontrados, foi possível localizar a câmera Axis.

Após acessar a interface web da câmera através do navegador, foram consultadas as configurações de vídeo e streaming numa página que dá exemplos de HTML para fazer o embed do vídeo numa página da web.

A partir dessas informações, foi possível identificar o endereço RTSP utilizado pela câmera para disponibilizar o fluxo de vídeo. Nesta versão da Axis 210, o fluxo é disponibilizado através do endereço:

rtsp://192.168.1.65:554/mpeg4/media.amp

Com o endereço RTSP identificado, foi utilizado o FFmpeg para capturar e gravar o fluxo de vídeo diretamente em um arquivo MP4. O comando executado foi:

ffmpeg -i rtsp://user:password@192.168.1.65:554/mpeg4/media.amp -c copy recording.mp4

Nesse comando, o parâmetro especifica a fonte de vídeo RTSP, enquanto instrui o FFmpeg a copiar o fluxo de vídeo recebido sem recodificação, reduzindo o uso de processamento e preservando a qualidade original do stream. Usei Ctrl +C no terminal para interromper a gravação 24 segundos depois. O resultado foi a criação do arquivo, contendo a gravação do vídeo capturado pela câmera através da rede local, esse arquivo foi enviado ao Youtube e está disponível aqui:

São apenas 20 quadros por segundo e resolução 640×480 pixels, mas o flicker do LED vermelho ficou lindo!!!

Vou usar essa câmara para gravar o que vai ocorrer em uma escultura que estou criando, a idéia é usar algo bem simples e leve, que possa estar em qualquer computador, o ffmpeg me veio a mente porque é meu software preferido!

Festival Zer01, La Rochelle

Nessa semana que antecede a Páscoa, vim com um grupo do Mestrado em Media Arts da Universidade do Minho (do qual sou aluno) para o Festival Zer01 em La Rochelle na França – um festival de arte híbrida e cultural digital. A semana de atividades aqui é parte de um BIP do Erasmus. BIP é Blended Intensive Program, um tipo de atividade de curta duração que permite o encontro de alunos de 5 ou mais escolas num determinado evento. Aqui um bom link que explica o que pode ser um BIP.

As atividades desse BIP compunham uma parte das atividades do Festival e essa parte foi intitulada Campus e aconteceu num casarão histórico em La Rochelle: Maison Henry II. Cada aluno que se candidata a participar do BIP precisa explicar o que vai fazer, apresentar, etc e tanto a instituição que envia o aluno, como a instituição que recebe o aluno, precisam validar essa apresentação e/ou atividade. Alguns criaram uma nuvem!

Junto ao Carlos A. Correia, eu vim a La Rochelle apresentar a performance de O Outro que Bate. A Maison Henry II fica a uns 50 metros da catedral de La Rochelle e dali podemos ouvir os sinos e assim fazer uma versão local da performance. A foto abaixo o Carlos fez durante um ensaio nosso aqui.

A organização do festival também preparou uma série de atividades para os participantes do Campus. Entre elas algumas conversas com artistas que estavam terminando de montar suas obras aqui para o festival. Em especial, a conversa com os artistas canadenses Peter Van Haaften e Michael Montanaro foi muito interessante, falamos de detalhes técnicos de instalações em geral, de como tornar certas obras mais integradas aos espaços onde estão sendo mostradas e falamos também de questões sobre como preparar certas obras para transporte e montagem em locais distantes. Com tantos festivais diferentes de arte digital nos cinco continentes, obras de grandes formatos precisam ser pensadas também levando em consideração seu transporte marítimo, por exemplo.

Antes da minha apresentação, aproveitei alguns detalhes que vieram à tona no ensaio e os dias aqui para refinar ainda mais o meu looper/sequencer em PureData (algumas atualizações já estão no meu Github, mas as de ontem à noite ainda não).

Adicionei ainda maneiras de misturar sons de diversas partes do patch e um sequenciador de baixo e outro de cliques. Preparei samples do som da chuva, dos sinos da Catedral da Sé e da Igreja de São Vicente em Braga. E depois fiquei treinando usar o “instrumento”.

Nossa apresentação correu bem e aqui tem um pequeno trecho gravado pela Diana Gil:


No fim foi uma semana muito intensa aprendendo palavras em línguas novas, pronuncia para nomes irlandeses, sobre a proximidade da Roménia e do Brasil, etc. Foi também um ótimo momento para repensar estratégias para o Piso, para minhas atividades em Braga e na mundo académico. E ainda descobri o Hydra, um sintetizador de vídeo que roda no browser ou num editor de texto chamado Pulsar-Edit. Em breve, um pouco mais sobre isso!

A bateria analógica do Eko Madrigale

Aos poucos foi ficando evidente que o orgão inteiro era volumoso demais para os espaço que eu tenho disponível. As idéias foram se acumulando e eu acabei optando por explorar maneiras de usar as partes mais interessantes dele.

Ainda com o órgão em funcionamento, usei um fio ligado a um aplificador para detectar de quais placas vinham quais sinais de áudio. Fui fazendo minhas anotações e analisando as possibilidades.

A parte da bateria é bem simples: uma placa gera uma série de pulsos em ritmos que podem ser modificados através de botões, uma outra placa serve apenas para aplicar um envelope aos pulsos, dando a eles um som específico de um instrumento.

A placa com tons de verde gera os pulsos e a placa castanha produz os envelopes. Achei 7 entradas na placa castanha e liguei um soquete banana a cada uma delas. Na placa verde localizei os ritmos e juntei fios a eles.

Fiz ainda uma série de experiências e percebi que são necessárias duas entradas distintas para criar o som de certos instrumentos. Encontrei também alguns pontos onde é possível fazer um bending desse circuito que gera pulsos.

Reduzi bastante as partes que usei para alimentar o circuito. Achei um DVD no lixo com uma fonte maneira e acabei por eliminar um 7805 e um transformador enorme. Coube tudo lá dentro e agora esquenta menos. De fora ficou a placa de uma bateria de criança que resolvi adicionar, mas isso ainda está sendo trabalhado, para que os pulsos disparem essa bateria também.

Julho e Agosto foram meses muito quentes aqui e acabei escondido na garagem fazendo essa e outra traquinagens. Para curtir os primeiros momentos com essa drum machine analógica, gravei uma faixa ruidosa que carinhosamente entitulei Onde de Calor.

Captura sonora

Tenho me divertido no mundo dos sons ultimamente e resolvi colocar em uso um gravador que eu tinha de época em que fazia vídeos de casamentos.

O gravador é simples, um Zoom H1n, e tem apenas uma entrada TRS 3.5mm. Queria explorar o mundo inaudível das ondas electromagnéticas com ele.

O primeiro microfone que fiz com uma bobina tirada de uma televisão que encontrei no lixo. Liguei a bobina num pré-amplificador, soldei tudo dentro de uma caixa, com pilhas, um cabo estéreo etc.

Com o tempo, percebi que essa caixa era ótima, mas um podia acomodar mais ideias. Criei uma bifurcação na entrada do pré-amplificador para poder trocar de microfone mais facilmente.

Inclusive descobri que podia usar elementos piezo conectados a essa caixinha!

Depois fui em busca de outras bobinas para fazer outros microfones eletromagnéticos. Achei uns eletroimãs que eu desmontei, separei algum cobre de uma outra bobina de TV, achei um pedaço de ferrite e fiz uma bobina pequena.

Comecei a ouvir os ruídos dos diversos aparelhos aqui de cada, da minha TV, do meu aquecedor, do roteador, do mostrador digital do forno elétrico, do telefone, dos carregadores de celular. As bobinas maiores captam o ruído de todo o dispositivo. Com as bobinas menores consigo isolar um ruído específico de uma parte dos dispositivos. Essa exploração é uma delícia.

Eko Madrigale • em processo

Comecei a fazer umas aulas online de piano. É uma delícia. Esse órgão tem sido um grande divertimento.

Estava agorinha fazendo os faders dançarem numa solução de álcool e removedor de gordura. Acabei fazendo essa imagem simbólica, mas que mostra um líquido ligeiramente amarelado da sujeira que saiu de dentro dessas peças.

Com sorte vão voltar a vida.

Descobri a tese do Peter Blasser, criador dos instrumentos Ciat-Lonbarde. E também seus paper circuits. Que viagem.