在标准的x86 linux下已经有相应的软件可以实现DVD播放,比如VLC播放器,之所以要自己写,是因为要用到嵌入式平台的机顶盒上,我们的目的就是要编写一个在机顶盒上可以播放dvd的软件。
使用的库为libdvdnav,其依赖库包括libdvdread、libdvdcss。
这个页面可以找到前2个http://dvdnav.mplayerhq.hu/ 另外一个libdvdcss。
在这3个库中,libdvdnav主要实现dvd章节跳转、菜单管理等功能,libdvdread主要负责读取并解析dvd文件,而libdvdcss则负责解密。
基本上使用这3个库就可以实现任意章节跳转及提取功能。
在libdvdnav中有个demo叫menus.c的文件,稍作修改,即实现按照选择项播放的功能,比如把文件输出修改为
管道,然后使用播放器读取管道进行播放,测试时可以先在x86下使用ffmpeg配合sdl显示视频内容。