Python 如何将多个VLC快照放入特定文件夹

Python 如何将多个VLC快照放入特定文件夹,python,png,vlc,snapshot,Python,Png,Vlc,Snapshot,这段代码运行得很好,但它会在我不想要的位置不断替换以前的快照。 如何在不替换上一张快照的情况下保持每秒拍摄一次快照,以及如何为这些png指定要保存的文件夹 player=vlc.MediaPlayer('rtsp://admin:888999@thesport.fujiko.biz:554/unicast/c3/s0/live') player.play() while 1: time.sleep(1) player.video_take_snapshot(0, '.snaps

这段代码运行得很好,但它会在我不想要的位置不断替换以前的快照。 如何在不替换上一张快照的情况下保持每秒拍摄一次快照,以及如何为这些png指定要保存的文件夹

player=vlc.MediaPlayer('rtsp://admin:888999@thesport.fujiko.biz:554/unicast/c3/s0/live')
player.play()

while 1:
    time.sleep(1)
    player.video_take_snapshot(0, '.snapshot.tmp.png', 0, 0)

这很简单,每次你得到一个帧,把它存储在不同的变量中,就像这样


正如一条注释所说,您需要更改每次后续保存的文件名。我将在循环中创建一个计数,然后将值格式化为作为文件名的字符串。例如:

player=vlc.MediaPlayer('rtsp://admin:888999@thesport.fujiko.biz:554/unicast/c3/s0/live')
player.play()

i = 0

while 1:
    time.sleep(1)
    player.video_take_snapshot(0, '.snapshot_{}.tmp.png'.format(i), 0, 0)
    i += 1

如果您只是指定一个目录名,而不是文件名,vlc将根据日期和时间为您创建一个唯一的文件名

i、 e。 file:///home/rolf/vlcsnap-2020-08-14-10h43m06s020.png file:///home/rolf/vlcsnap-2020-08-14-10h43m08s936.png

#Video Snapshot
def OnSnapShot(self,evt):
    media_state = self.player.get_state()
    if media_state.value < 3 or media_state.value > 4:
        return
    if os.path.isfile(self.currentlyplaying):
        dir_name = os.path.dirname(self.currentlyplaying)
    else:
        dir_name = self.home_dir
    snapshot_size = self.player.video_get_size(0)
    x=self.player.video_take_snapshot(0, dir_name,snapshot_size[0],snapshot_size[1])
    if x == 0:
        Notify(self,"Snapshot","Image saved in "+dir_name)

您可以更改文件名。