Як відтворити відеофайл у OpenGL?


9

Чи існує бібліотека, яка дозволить мені завантажити файл фільму і відтворити його у програмі OpenGL? А може, просто зразок коду, який хтось лежав? Я також використовую GLUT, якщо це має значення. Я думаю, що формат файлу не має значення, хоча наразі мій фільм знаходиться у форматі AVI.


Мені б хотілося побачити ліб, який використовує ffmpeg та підтримує як буквально все.
акалтар

Відповіді:


4

Ну, є цей дуже давній підручник, який відтворює відео AVI, використовуючи фіксовану функцію GL та API API.

Я не рекомендую користуватися цією установкою, оскільки вона дуже застаріла, але концепція в основному справедлива. Отримайте кожен кадр відео та використовуйте його для оновлення текстури OpenGL. Це просто.

Якщо у вас виникли проблеми з продуктивністю, ви можете почати думати про оптимізацію з такими речами, як Pixel Buffer Objects .


Чесно кажучи, лише "Windows" недостатньо хороший. Якщо хтось не підтримує всі платформи, то вони завдають шкоди всім іншим, надаючи Microsoft сили, якої вони не заслуговують.
Лолум

@Lolums, якщо припустити, що ви на 100% віддані платформі, то я вважаю, що добре використовувати API, що відповідає системі. Але так, написання портативного коду повинно бути за замовчуванням. Навіть якщо ви користуєтеся платформою API, принаймні напишіть на ньому тонку обгортку, щоб уникнути протікання деталей щодо впровадження та полегшення майбутніх потреб у перенесенні.
glampert

1

Якщо ви із задоволенням використовуєте формат ogg theora, тоді ви можете скористатися вкладкою TheoraPlay. Тут є повністю функціонуючий плагін для двигуна Duality, який ви можете використовувати для довідки - https://github.com/Andrea/DualityOgvPlayerPlugin . Він працює з opengl.


1

По-перше, ви можете перевірити ці питання / відповіді. Я не знаю, скільки з них є специфічними для iOS, але вони можуть допомогти:

Крім того, limitz / AV3D є дещо останнім проектом C ++, який використовує libavcodec для передачі фільму в текстуру OpenGL

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.