Сначала вы должны получить то, что видео.Между данными на диске (или полученными из сети) и конечными пикселями кадра, отображаемого в окне (фактическое изображение одного кадра), существует алгоритм (если ваше видео не является просто «последовательностью» несжатых изображений),Как только вы сможете поставить себя посередине (чтение декодированных данных), вы можете изменить данные.Но затем вы должны вернуть их в исходный формат, то есть часто, если не всегда, сжатые данные с помощью сложного алгоритма с потерями, который легко уничтожит ваши «введенные» скрытые биты, если вы не настолько умны, чтобы избежать выборакак вы тщательно продумываете поток.
Та же проблема существует для сокрытия данных в изображение jpeg (известные методы используют коэффициенты DCT, которые каким-то образом сохраняются в конечном формате файла jpeg).В Google вы можете найти ссылки типа this , которые я не проверял, но идея, как сказано, известна, и вы можете найти ресурсы по ней.
Скрытие данных в видео, возможно, не такотличается, но это, как вы можете видеть, не так прямолинейно, как введение его в несжатый или сжатый без потерь изображение / текст / звук / что угодно.
Возвращение к возможности «видеть» видео как «биты»: как только вы загружаете видеофайл, когда вы декодируете его, возможно, кадр за кадром (используйте библиотеку ...), вы получаете байты;извлечение и модификация битов - это вопрос классных операций, таких как сдвиг, битовая и / или / или.Чтобы иметь представление о том, что может означать декодирование видеофайла, вы можете выполнить поиск исходного кода проигрывателей (например, mplayer) и кодека, который он может использовать (если вы хотите получить подробную информацию, но на самом деле вас интересует только использованиекодек, как сделал бы игрок).