Eu já tinha descrito como usar aceleração de hardware pra juntar imagens jpeg e criar um vídeo em usando a GPU para renderizar vídeo. Mas o texto todo abordou apenas os testes que fiz no laptop que tinha na época, com GPU integrada Intel.
E como fazer o mesmo com NVIDIA?
Aqui está a receita de bolo direta:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -r 1 -i G%04d.JPG -c:v h264_nvenc -b:v 5M -pix_fmt cuda output.mp4
Simples assim ele gera uma grande image output.mp4, que depois eu uso no kdenlive.
Claro que não é assim tão simples. É preciso ter os arquivos da GoPro gerados no padrão G0000.JPG, G0001.JPG, etc.
O que faço então é copiar todos os arquivos que vou precisar dentro do mesmo diretório (uso Gwenview pra isso). E depois eu rodo o seguinte script:
#! /usr/bin/env bash counter=0 for img in G*.JPG do serial=$(printf "%04d" $counter) new_name="G${serial}.JPG" echo "$img => $new_name" mv $img $new_name counter=$((counter++)) done ffmpeg -hwaccel cuda -hwaccel_output_format cuda -r 1 -i G%04d.JPG -c:v h264_nvenc -b:v 5M -pix_fmt cuda output.mp4
E pronto. Imagem gerada em output.mp4 pra ser usada no kdenlive.
Como eu não consegui fazer o kdenlive funcionar bem com a placa NVIDIA, é mais rápido fazer essa primeira geração assim via ffmpeg mesmo.
O script está disponível no GitHub:
https://github.com/helioloureiro/homemadescripts/blob/master/render-video-from-gopro-photos.sh