问题标签 [pygst]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
9 浏览

python - Gstreamer 不会连续播放相同的视频

我正在使用在 Nvidia Jetson nano 上播放的 PyGST 和 Gst.parse_launch 编写 Gstreamer 管道。管道播放 4k 视频并在运行时淡入淡出视频。

我的问题是管道不会连续播放相同的视频。它会一个接一个地播放不同的视频。淡入淡出功能也运行良好。

这是问题的描述:

该管道第一次使用示例视频,例如 video_1.mp4。当我再次播放相同的视频时,它会卡在第一帧,停留在该帧并在几秒钟后退出该过程。

如果我播放 video_1.mp4,然后播放不同的视频,例如 video_2.mp4,那么管道将毫无问题地工作。如果在此之后我播放 video_1.mp4 那么它也会一直播放。

video_1.mp4 的持续时间为 10 秒。如果我在 5 秒处停止 video_1.mp4 并再次播放视频,将显示 video_1.mp4 的第一帧,它将在该帧等待 5 秒,然后在前一个管道停止的同一点继续解码视频.

我怀疑播放同一视频时缓冲区运行时间尚未重置为 0。我不确定为什么会发生这种情况,我将管道设置为 NULL,并尝试在视频完成后进行搜索位置 0 并刷新管道中的元素以将时钟时间重置回 0。也许是语法或我的方式我实施它是不正确的。

下面的这个线程创建管道

下面的另一个线程启动和停止管道。这是在单独的线程中完成的,因为 Gstreamer 通常以阻塞模式运行。

这些是发生错误时的 Gstreamer 调试日志

这些是您播放不同视频并且管道重置后的日志(管道正常工作)