在我有趣的项目中,我从youtube下载视频文件,并写入本地磁盘上的文件。同时我想玩它。目标是将文件缓存在本地磁盘上,这样当我想再次看到视频时,应用程序可以在本地播放,从而节省带宽。
我正在使用Python 3.3.1
,PyQt4/Phonon
和LibVLC。到目前为止,我能够做到以下几点:
鉴于youtube watch 网址,我可以下载视频文件,然后使用PyQt4 / Phonon和LibVLC独立播放。它不是流媒体。
由于LibVLC支持流式传输,我可以通过流媒体播放给定的网址。
第二个非常接近我想做的事情,但由于它没有将文件保存在磁盘上,下次我无法在本地播放相同的视频。
我正在寻找一些如何从这里开始的指导方针。特别是,如何播放仍在写入的不完整文件中的视频。
我完全可以使用任何API(完成工作),只要它是:
如果我目前的方法不正确或者问题比实际问题更困难,我也在寻找替代方法。
答案 0 :(得分:1)
VLC支持播放不完整的文件,因此,如果您需要一些非阻塞的I / O和/或并行代码,您应该可以开始下载并在写入足够的数量后使用LibVLC开始播放。根据使用的压缩算法,您可能需要缓冲,以便缓冲区中始终有数秒的数据 - 如果我没记错的话,一些更现代的算法会记录前进和后退的增量和索引信息。 / p>
您可能会收到一些警告/错误消息/例外,但我不认为它们是致命的 - 让播放质量成为您的指导!
这有点类似于上述评论中的一些建议,也与@abarnert所说的很多内容有关,在较小程度上与@StackedCrooked交换了一些。