[英]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.