4

在我有趣的项目中,我正在从 youtube 下载视频文件,并写入本地磁盘上的文件。同时我也想玩。目的是将文件缓存在本地磁盘上,以便当我想再次观看视频时,应用程序可以在本地播放它,从而节省带宽。

我正在使用Python 3.3.1,PyQt4/PhononLibVLC。到目前为止,我能够做以下事情:

  • 给定一个 youtube观看url,我可以下载视频文件,然后使用 PyQt4/Phonon 和 LibVLC 独立播放。它不是流媒体

  • 由于 LibVLC 支持流媒体,我可以通过流媒体播放给定的 url。

第二个非常接近我想要做的,但由于它不会将文件保存在磁盘上,下次我无法在本地播放相同的视频。

我正在寻找一些关于如何从这里开始的指南。特别是,如何从仍在写入的不完整文件中播放视频。

我完全可以使用任何 API(可以完成这项工作),只要它是:

  • Python 3.3.1(最好)
  • C
  • C++。

如果我目前的方法不正确或使问题比实际更困难,我也在寻找替代方法。

4

1 回答 1

1

VLC 支持播放不完整的文件,因此如果您需要一些非阻塞 I/O 和/或并行代码,您应该能够开始下载,并且在写入足够数量后,使用 LibVLC 开始回放。根据使用的压缩算法,您可能需要足够的缓冲,以便缓冲区中始终保留几秒钟的数据——如果我没记错的话,一些更现代的算法会记录前后的增量和索引信息。

您可能会收到一些警告/错误消息/异常,但我不会认为它们是致命的——让播放质量成为您的指南!

这有点类似于上面评论中的一些建议,也与@abarnert 所说的很多内容有关,在较小程度上与@StackedCrooked 的一些交流有关。

于 2013-05-14T09:16:55.483 回答