zayac/FFmpeg
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
This is a final course project in Information Security. It is a about steganography in video. We are modifying ffmpeg for these purposes. Contribution: Pavel Zaichenkov <[email protected]> Arseniy Zaostrovnikh <[email protected]> Rustem Feyzkhanov <[email protected]> ####### FFMPEG BUNDLE INSTALL ####### To build development version run from the project's directory: $ ./configure --disable-optimizations --enable-debug $ make ffmpeg In case using gdb for debugging, please run <prefix>_g executables for these purposes (i.e. ffplay_g, ffmpeg_g, etc.). They contain debugging information. ############## ENCODER ############## Steganography encoder is implemented in file 'libavcodec/mpeg12enc.c' (only MPEG1 version is implemented by now.) ------------------------------------ Encoding parameters are defined in lines 74-79. bound_level -- level's lower boundary in range about of [4..64]. bits_num -- number of *encoded* bits in a byte. Range {1, 2}. enable_log -- enable/disable logging. The default ffmpeg is used for encoding. Typical command looks like ./ffmpeg -i source.avi dest.mpg <-- to encode in default quality A usefult options is '-sameq' as well. Then the destination video is encoded in original quality. ./ffmpeg -i source.avi -sameq dest.mpg ------------------------------------ A secret message is stored in file 'secret.txt'. A destination video *must* be wih 'mpg' extension. ############## DECODER ############## in order to build myplay steganography decoder command: $ touch libavcodec/get_bits.h $ sh myplay-make.sh to use it write: $./myplay <"your coded video file"> 2> <"your log file"> After that, there will be created file buga.t containing all coded information. log file will contain additional information Valuable macro-constants in the file mplay.c: NUMBER_BITS_PER_LEVEL -- number of bits, encoded in each apropriate level LEVEL_TRESHOLD -- treshold, used to determind apropriate levels LOG_ENABLE -- enable/disable logging unimportant stuff, put 0 in order to update myplay binary file, after changing a constant, write just: $ sh myplay-make.sh ------------------------------------------------------------------------------- FFmpeg README ------------- 1) Documentation ---------------- * Read the documentation in the doc/ directory. 2) Licensing ------------ * See the LICENSE file.