Como reproduzo um arquivo de vídeo no OpenGL?

9

Existe uma biblioteca que me permita carregar um arquivo de filme e reproduzi-lo em um aplicativo OpenGL? Ou talvez apenas um exemplo de código que alguém tenha por aí? Eu também estou usando GLUT, se isso faz diferença. Eu acho que o formato do arquivo não importa, embora atualmente meu filme esteja no formato AVI.

Jimmy Miller
fonte
Eu adoraria ver alguma lib que usa ffmpeg e suporta literalmente tudo.
precisa saber é

Respostas:

4

Bem, há este tutorial muito antigo que reproduz um vídeo AVI usando a função fixa GL e a API do Windows.

Não recomendo usar essa configuração, pois está muito desatualizada, mas o conceito é basicamente válido. Obtenha cada quadro do vídeo e use-o para atualizar uma textura OpenGL. Que simples.

Se você tiver problemas de desempenho, poderá começar a pensar em otimizar com coisas como Pixel Buffer Objects .

glampert
fonte
Honestamente, o "Windows" não é bom o suficiente. Se alguém não suporta todas as plataformas, está prejudicando todo mundo, dando à Microsoft o poder que não merece.
Lolums 11/09/15
@Lolums, supondo que você esteja 100% comprometido com a plataforma, acho que é bom usar uma API específica do sistema. Mas sim, escrever código portátil deve ser o padrão. Mesmo se você usar uma API de plataforma, pelo menos, escreva um invólucro fino sobre ela para evitar vazamentos nos detalhes da implementação e facilitar futuras necessidades de portabilidade.
glampert
1

Se você estiver feliz em usar o formato ogg theora, poderá usar a biblioteca TheoraPlay. Há um plug-in totalmente funcional para o mecanismo Duality aqui que você pode usar para referência - https://github.com/Andrea/DualityOgvPlayerPlugin . Funciona com opengl.

BraveSirAndrew
fonte