#coding:utf-8
import time
import os
import datetime
import subprocess
def live_video():
file_name = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S.mp4') # 开启录屏
live_video = subprocess.Popen('ffmpeg -f gdigrab -i desktop -vcodec libx264 -pix_fmt yuv420p {} -y'.format(file_name),shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
time.sleep(10) # 录制10秒
live_video.stdin.write('q'.encode("GBK")) # 发送命令,停止录屏
live_video.communicate() # 发送数据到标准输入
live_video()
【 在 Machael 的大作中提到: 】
: 有多条shell命令要执行, 想用python创建一个shell进程, 一条一条执行
: 不想用&&合并成一条, 一个是因为命令有点长, 一个是中间还要做一些判断
: subprocess.run()和subprocess.popen()都是执行完shell进程就结束了, 有没有方法创建一个shell进程, 连续执行, 根据反馈stdout和stderr送新的命令, 最后全部执行完再给信号结束?
: ...................
--
FROM 119.131.204.*