JeffMony / MediaSDK

The library is working for downloading video while playing the video, the video contains M3U8/MP4
Apache License 2.0
269 stars 59 forks source link

M3U8不从第一个ts开始播 #9

Closed missu263 closed 4 years ago

missu263 commented 4 years ago

求教一个问题: 【背景】:基于AndroidVideoCache实现本地代理对M3U8视频格式的缓存处理,就是本地会预下载第一个ts的文件,实现播放器(IJKPlayer)的秒开 【实现】:播放器设置的播放URL为 127.0.0.1/https://xxxx.m3u8,本地代理去请求https://xxxx.m3u8拿到playlist,这个时候会将playlist的每个ts片的地址也改为127.0.0.1/https://xxxx.ts,然后将这部分数据通过连接播放器的socket返回给播放器,后续本地代理会再收到127.0.0.1/https://xxxx.ts的请求 【碰到的问题】:上述实现过程还只是本地代理发送真正的请求,然后把网络流的数据通过播放器连接来的socket原封不动的返回。但是实际的播放过程中,发现播放器发起的ts请求,不是从第一个ts片开始请求播放(随机的)。这导致播放就乱了,而且最后播放器出现一直缓冲。 这里面会不会是因为播放器内部收到的http header不正确导致的啊,因为代理写入的response header为: "HTTP/1.1 200 OK\n" + "Accept-Ranges: bytes\n"