One of the biggest advantages of a software based encoder is configurability. However, in order to achieve the highest performance possible, this implementation will be closely tied to the underlying hardware. This will imply that the customization that the application provides will be somewhat limited. However, even with these limitations, the software will be sufficient for the vast majority of applications. The software makes two important assumptions. The first is that the user is quite familiar with MPEG concepts, the second is that the user is experienced as a Unix user and is capable of performing basic administrative tasks.
In the context of completing the project, a risk is the limited availability of MPEG resources. Although there is much web based information on the subject, textbooks on the subject (which would provide centralized, complete, and accurate coverage of the topic) are severely limited. Furthermore, it is assumed that adequate hardware can be found and used for the development and testing of the project. The hardware needed is very widely available, so this should not pose a problem.