从 torrent 下载时检查视频文件是否可以播放

Check if video file is ready for playing while being downloaded from torrent

我是 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 提前谢谢你们:)

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