从torrent下载时,检查视频文件是否已准备好播放

时间:2015-02-17 17:57:11

标签: python video gstreamer kivy libtorrent

我在python中很新。 我编写了一个程序,使用libtorrent通过torrent下载视频文件。我已将其设置为顺序下载,因此所有部件都按正确的顺序下载,以便在下载视频时观看该视频。 我得到的问题是下载开始后该文件无法立即播放。有时应该下载10mb,有时候30mb,然后才能开始视频观看。 我的想法是,这是因为缺少一些元数据。 我的问题是关于检查文件是否可以播放的方法。有关实现这一点的任何建议我搜索了很多但还没找到任何东西。 我使用python 2.7(2.7因为它与libtorrent兼容),libtorrent,kivy框架1.8和内置视频播放器,据我所知使用gstreamer。 可以在github上检查源代码:https://github.com/dpitkevics/stream-ies?files=1 重要文件是main.py,lib / downloader.py 提前谢谢你们:)

1 个答案:

答案 0 :(得分:1)

我建议使用元数据提取工具,例如Hachoir。如果该工具能够成功读取元数据,则该文件很可能无法访问。但是 - 你不一定要在那时开始播放。你也需要缓冲。元数据将为您提供内容长度;通过torrent的文件大小和下载速度,您可以计算出需要多少缓冲区来确保无缝播放。如果正确缓冲,并且容器中的流是交错的,这应该确保您始终拥有开始播放所需的数据。