0

我正在使用 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

谢谢阅读。

4

1 回答 1

0

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

于 2019-12-04T17:12:49.250 回答