Capturar um frame de video e salvar em BMP

Delphi

FireMonkey

29/06/2024

Olá, preciso capturar um frame de vídeo e salvar em BMP.

o vídeo poderá ser um MP4, AVI, MOV, MKV ou outra extensão.

eu teria que abrir o arquivo de vídeo, fazer um "TakeShot" de um frame e salvar em BMP

o mediaplayer do firemonkey só abre AVI então não dá pra usar ele.

Talvez teria que usar um componente externo, uma api do windows?

Alguém teria alguma ideia de como fazer isso?
Alberto

Alberto

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

29/06/2024

Capturar um frame de um vídeo não é uma tarefa simples. Cada vídeo pode utilizar um CODEC diferente e a decodificação do arquivo nem sempre é simples.

Existem alguns componentes que fazem essa decodificação e, a cada frame decodificado, chamam uma rotina passando as informações da imagem. Se você utilizar um componente deste tipo, será mais fácil.

Uma alternativa seria tentar capturar o desktop onde o vídeo está sendo reproduzido. Você pode utilizar a rotina "getdc(0)", para capturar o device context do desktop e utilizar a rotina bitblt() para efetuar a cópia da imagem para o seu bitmap. Ao final, deve utilizar o "releasedc()" para liberar o device context.
GOSTEI 0
POSTAR