Skip to content

This repository implements encryption of video using the AES algorithm, enabling secure and robust transmission of video.

License

Notifications You must be signed in to change notification settings

dungrup/video-encryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Encoding and Encryption using AES

This repository implements encryption of video using the AES algorithm, enabling secure and robust transmission of video. The raw image stream from the camera is first encoded using H.264 compression and the generated packets is encrypted using AES. This keeps the data secure when it is transmitted over a network. The ecypted packets is then decrypted and decoded to to get back the images captured by the camera.

Prerequisites

To run the examples in the repository, you are required to install the following:

FFmpeg: Download the required libs using the following link - https://ffmpeg.org/download.html

Video encoding and encryption

This is implemented in encoder.cpp

Compile and run the sample

  1. Compile the application:
make -f Makefile.enc clean && make -f Makefile.enc
  1. Run the application:
./encoder <path to yuv file> <number of frames to encode>

The YUV file should be a YUV420 video of 1920*1280 resolution.

Sample:

./encoder ./sample.yuv 120

The encoded packets are stored in outputs/plain directory. The packets are then encrypted and stored in outputs/enc directory

Video decryption and decoding

This is implemented in decoder.cpp

Compile and run the sample

  1. Compile the application:
make -f Makefile.dec clean && make -f Makefile.dec
  1. Run the application:
./decoder <path to folder> <num of frames>'

The "path to folder" indicates the folder containing the encoded + encrypted packets. This would have generated by encoder.cpp described above.

Sample:

./decoder ./outputs/enc/ 120

The decrypted and decoded frames will be stored in outputs/decrypt_images

About

This repository implements encryption of video using the AES algorithm, enabling secure and robust transmission of video.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages