修改mplayer,使其支持在线无缝播放多个flv片段

      最近在做mplayer的在线视频播放,由于现在很多网站的的视频节目都被分割了一个个片段,而mplayer可以通过playlist方式播放片段,但每个片段都需要重新缓冲,这里我想在第一个片段下载完成后,立即开始将第二段视频数据缓存,在此还需修改 network.c http.c 等多个文件已实现同服务器连接,提前下载数据。

      现将过程介绍如下,希望能给需要的人做个参考。

1. 修改 cache2.c文件 ,使其支持在第一片段下载完成后进行第二片段缓存。

2. 修改 mplayer.c 文件, 编写open_playlist_file函数,使其可以通过playlist方式得到播放列表的url地址。

3. 在第一段视频缓冲结束后,开始通过url地址与服务器进行连接并下载数据,这里要把视频数据头剥离掉,以免解码器不认数据。

4. 修改generate_video_frame函数,通过读取下一包数据的pts与当前包pts比较,解决音视频不同步问题。

5. 在全部数据播放完后需要控制mplayer的播放状态,退出播放。

 

基本思路就这些,具体细节太多了,不过有了思路一切都好办,呵呵。。。 一起努力!

 

你可能感兴趣的:(修改mplayer,使其支持在线无缝播放多个flv片段)