正在运行Gstreamer的杀死子进程

问题描述 投票:0回答:1

我正在使用Jetson Nano,其想法是当按下按钮时播放视频。我目前正在通过等待按钮按下事件然后使用subprocess.call()运行Shell脚本来调用我编写的包含gstreamer命令以运行视频的Shell脚本来工作。

我的下一个目标是,即使按下按钮,也可以停止视频,甚至是中视频。做一些研究(又名搜索stackoverflow),似乎停止gstreamer视频的最好方法是告诉管道终止。根据我发现的内容,我的代码基本上如下:

import subprocess

p = subprocess.Popen("./open-video.sh")
time.sleep(2)
p.kill()

不会停止播放视频,我尝试过的其他变化如下(没有作用):

import subprocess, os
import signal

p = subprocess.Popen("./open-video.sh")
time.sleep(2)
os.kill(p.pid, signal.SIGINT)
import subprocess
p = subprocess.call("./open-video.sh")
p.kill()

open-video.sh的内容:

gst-launch-1.0 filesrc location=CES_AE_3D.mp4 ! qtdemux name=demux ! h264parse ! omxh264dec ! nvoverlaysink -e

感谢阅读。

python subprocess
1个回答
0
投票

杀死gst-launch-1.0进程,而不是运行gst-launch-1.0进程的脚本。您需要获取在执行Shell脚本时创建的pid。

© www.soinside.com 2019 - 2024. All rights reserved.