то, что вы намереваетесь сделать, может быть немного сложнее, чем вы себе представляете ...
Для того, чтобы видео инструменты показывались как действительный файл, который действительно может быть воспроизведен, вы должны понимать соответствующие форматы файлов.
в форматах файлов изображений, таких как растровое изображение или png, заголовок является фактическим заголовком, другими словами, определенной структурой, обычно в начале файла, которая описывает следующее ...
с видеоформатами это то же самое, но ... не ...
Существуют разные форматы контейнеров, и то, что вам нужно сохранить, и то, что вы можете зашифровать, может отличаться от одного к другому ...
например, mpg (формат, который вы найдете на DVD) может содержать множество потоков, которые (afaik) могут быть распределены по нескольким файлам, причем каждый файл содержит различные заголовки в разных местах (оглавление, заголовки для каждого видео). и аудио поток и т.д ...)
для этих форматов вам фактически придется декодировать заголовки и вычислять позиции (и длины) других заголовков ...
так что ... даже просто найти заголовки - это часть работы ... которую нужно выполнить один раз для каждого поддерживаемого формата файла, а есть несколько ... https://en.wikipedia.org/wiki/Video_file_format
хорошо, а затем мы оставляем заголовки, скремблируем остальные, и у нас есть воспроизводимые зашифрованные видео, верно?
... к сожалению ... Нет ...
далее: кодирование / сжатие видео и аудио
вам действительно нужно понять, как кадры и аудиосэмплы сжимаются и кодируются ... потому что программное обеспечение, которое будет распаковывать и воспроизводить изображения и аудио, на самом деле нуждается в допустимых потоках, в зависимости от кодировки, включая контрольные суммы и коды исправления ошибок. ..
но подождите ... разве мы не можем просто, скажем так ... перекодировать все в какой-то простой формат без большей части этого дерьма, а затем сделать что-то простое, например пропустить первые X байтов и после этого кодировать?
конечно, но, пожалуйста, помните, что оригинальная кодировка была там по причине ... возможно, видео предназначалось для воспроизведения на определенных устройствах, которые ожидают определенных кодировок -> видео не будет воспроизводиться там
хорошо, но мы не можем снова перекодировать, как мы делали раньше?
конечно ... но, скорее всего, будет небольшая проблема с размером файла ...
видео кодировки обычно используют своего рода сжатие ... например, используя свойство видео, которое от одного кадра к другому обычно не меняет все пиксели ... если мы просто кодируем каждые несколько кадров и промежуточные значения, мы можем хранить одно и то же видео так, чтобы было меньше места для хранения ... или мы могли бы использовать стандартные сжатия, такие как zip ... да ... верно ... не с зашифрованными данными ... вам будет очень трудно сжать зашифрованные данные, или сэкономьте место с дельта-подходом ... прочитайте энтропию и как сжатие работает для этого ...
о, и еще одна вещь о перекодировании после шифрования: если вы когда-нибудь захотите расшифровать, вам лучше убедиться, что новое кодирование может быть полностью изменено без потери информации ... не все кодеки без потерь
так ... почему это должно быть играбельно? стоит ли усилий?