Video Format, Encoding and Keyframe rates
Format
New devices will likely support the newest Format but if you want your app to run across ALL devices, using the latest format might not be the best idea.
Supported video format:
- H.264 video, up to 1.5 Mbps, 640 by 480 pixels, 30 frames per second, Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
- H.264 video, up to 768 Kbps, 320 by 240 pixels, 30 frames per second, Baseline Profile up to Level 1.3 with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
- MPEG-4 video, up to 2.5 Mbps, 640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
Encoding and keyframe rates
Encoding of video depends on the source video. Basically the number of keyframes gets divided by the number of FPS of the video and that decides how far apart the Keyframes of the encoded video are.
These are important for Fast Forward & Rewind.
Here are some examples:
Default Keyframe set in Encoder: 120 keyframes
- Source video #1 is 24 FPS: 120 keyframes/ 24 FPS = every 5 second keyframe
- Source video #2 is 30 FPS: 120 keyframes/30 FPS = every 4 second keyframe
- Source video #3 is 15 FPS: 120 keyframes/15 FPS = every 8 second keyframe
One suggestion is to have different encoding settings for the different FPS in the source videos. The different encoding setting should only differ in the number of total keyframes. That will give your encoded videos a consistent encoded rw/ff interval.
An example if you want all videos to have 5 seconds interval between keyframes:
Expected every 5 seconds keyframe:
- Source video #1 is 24 FPS: 120 keyframes/ 24 FPS = every 5 second keyframe
- Source video #2 is 30 FPS: 150 keyframes/30 FPS = every 5 second keyframe
- Source video #3 is 15 FPS: 75 keyframes/15 FPS = every 5 second keyframe