Скорее всего, вы хотите использовать некоторую библиотеку для этого. Это может быть довольно сложно, если вы планируете сделать это самостоятельно. Я попытаюсь проиллюстрировать это, перечислив шаги, необходимые для этого.
Сначала вам необходимо выяснить, какой видеокодек используется в MP4. Если вам повезет, это H.264, но файлы MP4 могут содержать множество разных видеокодеков. Вы можете найти спецификацию H.264 здесь: https://www.itu.int/rec/T-REC-H.264-201704-I/en (более 700 страниц)
Затем вам нужно использовать извлеченный кадр и декодировать его в соответствии со спецификацией H.264
Если кадр не является I-кадром, вам может потребоваться просмотреть предыдущие кадры для его декодирования. Возможно, вам придется взглянуть на несколько предыдущих кадров.
Если вам не повезло, что видео содержит B-кадры, вам может понадобиться смотреть на будущие кадры в дополнение к предыдущим кадрам, чтобы декодировать его.
Вы смотрите на очень большой проект, который делает это только с файлами H.264, и тогда он охватывает только некоторые файлы MP4 и далеко не все. Вам будет гораздо лучше использовать что-то вроде ffmpeg или аналогичный фреймворк для этого.
Если по какой-то причине вы не можете использовать ffmpeg, вы можете посмотреть https://msdn.microsoft.com/en-us/library/windows/desktop/dd940436 (использование C # подразумевает, что вы используете Windows).