видео файл + фрагментный шейдер под Linux - PullRequest
1 голос
/ 11 ноября 2009

из Windows (MSVC ++ 2005): Какой SDK или аналогичный вы рекомендуете портировать приложение C ++ (DirectShow + Direct3D) для Linux воспроизведения видеофайлов + с использованием фрагментных шейдеров?

Tom

Ответы [ 3 ]

2 голосов
/ 11 ноября 2009

Вам нужно использовать OpenGL.

Несколько советов по реализации:
- Чтобы добиться хорошей производительности вы нужно убедиться, что хорошая видеокарта драйвер установлен.
- Если вы не знакомы с OpenGL начни с 'Красной книги' - OpenGL Руководство по программированию
- Вам может понадобиться скачать последний заголовок расширения отсюда http://www.opengl.org/registry/
- Библиотека GLEW может помочь вам в выявление доступных расширение.
- Включите файл GL / gl.h и glext.h в ваш проект
- Ссылка на динамическую библиотеку opengl драйвера: /usr/lib64/libGL.so или simmilar

2 голосов
/ 11 ноября 2009

есть ли причина, по которой вам вообще нужен фрагментный шейдер? (Вы делаете пост-обработку видеоизображений?). Вам не нужно делать какие-либо шейдерные коды, чтобы получить видео, воспроизводимое с OpenGL.

Я бы использовал ffmpeg (фактически libavcodec) для декодирования видео. Для отображения фрейма требуется только текстура OpenGL и вызов glTexSubImage2D каждого фрейма для обновления.

Использование FFMPEG в C / C ++

1 голос
/ 24 января 2010

Я бы также проверил инфраструктуру gstreamer в linux, если вам нужно портировать более сложное приложение DirectShow. у него также есть своего рода график для воспроизведения мультимедиа. это совершенно другое, но если у вас есть опыт и необходимость сложного режиссуры, то вы увидите некоторую аналогию.

и gstreamer также имеет плагин opengl для эффектов изображений и шейдеров ....

http://www.gstreamer.net/ http://www.gstreamer.net/releases/gst-plugins-gl/0.10.1.html

...