PyQt QMediaPlayer使用部分(并非全部)视频文件前帧

2024-09-29 23:24:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Wndows平台上使用PyQt QMediaPlayer创建的自定义视频播放器中遇到了视频逐帧移动问题。我希望视频向前或向后推进一帧,然后在我单击按钮时暂停

视频可以来自各种摄像机,包括SD、HD和4K。一些视频帧向前或向后,没有任何问题。然而,我有两个不同摄像机的视频,当向前或向后取景时,视频会结巴。一台摄像机的视频文件扩展名为.MOD,另一台摄像机的文件扩展名为.MTS。当向前或向后分幅14-16帧时,这些视频保持暂停,然后视频跳转到当前帧,我假设这是一个关键帧

我的QMediaPlayer和VLC Codec信息实例中的getMetaData方法为这两个视频中的编解码器提供了稍微不同的值。Herename是以下两种代码的编码值:

^{tb1}$

我的视频帧前后移动,没有任何问题:

^{tb2}$

是否有一个解决方案,使我的脚本可以正确地向前和向后帧?这是我在视频播放器类中向前帧的方法

def frame_forward(self):
    if self.player.state() == QMediaPlayer.PausedState:
        now = self.player.position()
        self.player.setPosition(now + self.msecs)
        self.player.play()
        self.player.pause()

Tags: 方法self视频平台sd播放器按钮now

热门问题