【发布时间】:2021-05-14 17:36:09
【问题描述】:
我正在尝试从 POE 流式摄像头读取数据并写入文件。我使用以下命令从命令行运行它:
ffmpeg -y -i rtsp://admin:admin@192.168.1.200 -acodec copy -vcodec copy out.mp4
当我按下 Ctrl+C 时,它会退出:
Exiting normally, received signal 2.
我可以查看保存的文件。
我需要用 Python 包装它。从在线阅读来看,使用 subprocess 库似乎是最好的。这是最基本的代码:
import ffmpeg
from subprocess import Popen
import signal
import time
handle = Popen("ffmpeg -y -i rtsp://admin:ambi1234@192.168.1.200 -acodec copy -vcodec copy out.mp4",shell=True)
time.sleep(5)
handle.kill()
# handle.send_signal(signal.SIGINT) # This doesn't work either
我看到的行为是5s后脚本退出了,但是ffmpeg还在工作。无论我发送多少次 ctrl+C,它都会继续。关闭终端会停止它,但文件无法播放。
如何彻底终止进程?
【问题讨论】: