Challenge Overview
Project Name : FrameSkipper
Develop a software module for reducing the frame rate of live video stream from CCTV IP camera
*FrameSkipper requirements:
- It should reduce the frame rate of both h.264 and mpeg4(part2) live video stream.
- The video stream is assumed to have only I-frame and P-frame.(No B-frames)
- It should be less CPU intensive the transcoding a video stream(decode, reduce frame, and re encode)
- The frame rate of the input video stream can vary while it is being inputed.
- It should take “Output frame rate” as an input using dll parameter.
- It should output h.264/mpeg4 frame as its output which can be decoded using “ffmpeg decoder”.
- To achieve the necessary performance it can skip frames as 1/2, 1/3, 1/4, 1/5, 1/6 ... 1/10 frames from the original frame rate.
*FrameSkipper.dll Module Input
- H.264 frame (1~30 fps)
or
MPEG4-ES frame (5~30 fps)
- Output fps parameter (1~30fps)
*FrameSkipper.dll Module Output
- H.264 frame (1~30 fps, less than input framerate)
- or
- Mpeg4-ES frame (1~30 fps, less than input framerate)
*Deliverables
- FrameSkipper.dll (shared dll, 32bit and 64bit)
- Source and document
- Sample project source
- Tested sample media files.
*Development Environment
- OS (compatible with both windows7 32bit and 64bit)
- VisualStudio 2010 C++ (C++11 compatible),
- STL,
- boost(1.49 or higher),
- additional native library can be used
*Testing Environment
- live555 (latest version), http://www.live555.com/
- ffmpeg 0.11.x, http://www.ffmpeg.org/
(Please create your own test videos using ffmpeg and provide them to us.)
*h.264 supported profiles (http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC)
FrameSkipper should support all profiles that “live555” and “ffmpeg” supports
- Constrained Baseline Profile (CBP)
- Baseline Profile (BP)
- Main Profile (MP)
- Extended Profile (XP)
- High Profile (HiP)
- Progressive High Profile (PHiP)
- Constrained High Profile
- High 10 Profile (Hi10P)
- High 4:2:2 Profile (Hi422P)
- High 4:4:4 Predictive Profile (Hi444PP)
- High 10 Intra Profile
- High 4:2:2 Intra Profile
- High 4:4:4 Intra Profile
- CAVLC 4:4:4 Intra Profile
- Scalable Baseline Profile
- Scalable Constrained Baseline Profile
- Scalable High Profile
- Scalable Constrained High Profile
- Scalable High Intra Profile
*mpeg4 supported profile (http://en.wikipedia.org/wiki/MPEG-4_Part_2)
- MPEG-4 Part 2 Advanced Simple Profile (ASP)