簡體   English   中英

ffmpeg rtsp 不會從 Python 子進程終止

[英]ffmpeg rtsp does not terminate from Python subprocess

我正在嘗試從 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,它都會繼續。 關閉終端會停止它,但該文件無法播放。

如何干凈地終止該過程?

這是有效的:

import os
os.killpg(os.getpgid(handle.pid), signal.SIGINT)```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM