加密视频的断点续播实现
林__临 2014-12-15 06:02:46 加密的一段视频文件,每次读取一段数据后按照解密规则解密成ts流,送入第三方播放器开始播放,第三方播放器缓存比较大,而且解密速度大于播放速度,可以获取当前pts,但是无法获取播放器缓存数据大小,现在需要实现断点续播,首先对播放器的缓存最大值有个估算值,不会超过30s,所以暂时是这样实现的:
文件file0和file1, 每隔30s记录一次解密的文件位置,比如30s的时候记录到file0,1min记录到file1,1min30s记录到file0,一次类推,记录的内容时当前播放的pts和当前解密的文件位置,然后断点续播的时候,取pts小的文件,根据记录的解密文件位置跳转并重新解密。
这样基本可以实现要求,但是问题很多:1、记录的pts是上次播放的pts,而不是断点位置的pts;2、断点续播的位置跟实际停止的位置相差比较大,0-1min中之间。
请问各位,有没有更好的方式实现这个功能呢?