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.mkvffmpeg -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.
















