есть ли причина, по которой вам вообще нужен фрагментный шейдер? (Вы делаете пост-обработку видеоизображений?). Вам не нужно делать какие-либо шейдерные коды, чтобы получить видео, воспроизводимое с OpenGL.
Я бы использовал ffmpeg (фактически libavcodec) для декодирования видео. Для отображения фрейма требуется только текстура OpenGL и вызов glTexSubImage2D каждого фрейма для обновления.
Использование FFMPEG в C / C ++