Problems with Java
The aim for this week was to try and develop some method of encoding information in a video - this was quite an ambitious aim to be achieved over the course of a single week.
Until this point, I used a Java library called Xuggler, a wrapper for the FFmpeg C/C++ library. This tool worked well when I was experimenting with some video manipulation tasks (overlaying text, etc.). However, this tool was somewhat limited. I was only able to work with frames as actual bitmap objects. The underlying raw frame data was not exposed. This needs to be exposed to be able to calculate transforms etc. LSB techniques do not work with lossy compression - my experimentation proved this.
I have therefore changed tactics and will now be working in C/C++ to develop my steganography tools. This will allow me to interface with FFmpeg directly.
Two options
I have two options for video encoded at the moment - H.264 and MPEG. If possible, I would like to work with H.264 because this format is popular for encoding HD video. Alternatively, I could work with MPEG (Motion JPEG). For H.264, I will need to investigate integer transforms, and for MPEG, I will need to investigate Discrete Cosine Transform.