The MP4Box application provided in the Gpac software package support media file (such as *.mp4) encryption as stated in their manual:
MP4Box can be used to encrypt or decrypt media streams in a more or less format-agnostic manner, according to the ISMA E&A and OMA DRM 2.0 specifications. An XML language is used by MP4Box to get/set the encryption parameters.
Command line to add the encryption data to an existing mp4 file could be like the following:
MP4Box -isma -crypt kobudo-rei-uto_ismacrypt.xml kobudo-rei-uto_isma.mp4
The XML file referred as “kobudo-rei-uto_ismacrypt.xml” has the following content:
<?xml version="1.0" encoding="UTF-8" ?>
<ISMACryp>
<ISMACrypTrack
trackID="1"
key="0x180031a348c14d401143be02fe7708f5"
salt="0xd0763edaa9d9bd2a"
scheme_URI="urn:gpac:isma:encryption_scheme"
kms_URI="self"
selectiveType="5" />
</ISMACryp>
The resulting media file is attached.
Output of the command:
MP4Box -info 1 kobudo-rei-uto_isma.mp4
is the following:
Track # 1 Info - TrackID 1 - TimeScale 30000 - Duration 00:00:04.500
Media Info: Language "Undetermined" - Type "vide:encv" - 135 samples
Handler name: GPAC ISO Video Handler
MPEG-4 Config
Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 784 x 320 - Profile High @ Level 4.1
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 784 x 320
Decoding Buffer size 10863 - Average bitrate 873 kbps - Max Bitrate 968 kbps
No stream dependencies for decoding
StreamPriority 0
*Encrypted stream - ISMA scheme iAEC (version 1)
scheme location: urn:gpac:isma:encryption_scheme
KMS location: key in file
Selective Encryption: Yes
Initialization Vector size: 32 bits
Computed info from media:
Total size 503484 bytes - Total samples duration 4500 ms
Average rate 983 kbps - Max Rate 969 kbps
Also the output of the help items of the MP4Box executable is attached for easier viewing.