Спасибо всем за ансеры.Я парень, который использовал много разных подходов.
Я написал свой собственный Videoplayer, используя openGL + FFMPEG, который мог воспроизводить mp4 и расшифровывать каждый кадр в GPU с помощью шейдеров.Я также экспериментировал с другими возможными решениями, такими как потоковая передача с веб-сервера с использованием VLC.(VLC предлагает какое-то шифрование / дешифрование при работе с потоками) и yada yada yada.
Также одним из решений было использование 4 медиаэлементов (WPF), и фактическое видео было фактически разделено на 4 области, и каждая область была повернута, поэтому видео не было доступно для просмотра.Загрузив видео в 4 медиаэлемента, вы можете наметить, какую часть вы хотите показать, а также повернуть его обратно.Но, честно говоря, MediaElement - это плохо.
Тем не менее, я точно понял, что сказал RomanR.Я построил граф DirectShow с использованием mp4splitter, ffdshow, videorenderer и изменил исходный фильтр mp4splitter.Чтение происходит в BaseSplitter / AsyncReader.cpp (просто измените функцию SyncRead), который использует mp4splitter.
Если вы хотите реализовать его самостоятельно, просто используйте проект MPC-HC и измените фильтры так, как вам нравится.Мне потребовалось некоторое время, чтобы обойти концепцию DirectShow, но как только вы ее поняли, она стала отличным оружием.
http://sourceforge.net/apps/trac/mpc-hc/