我彻底检查了我的代码以使用 popen,但仍然没有获得新的 MP4 文件。
如果我在终端 MP4Box 中手动输入它。
但是当我运行下面的代码时,它不会引发任何错误。所以我很困惑什么不起作用。
这两个定义用于 tkinter GUI 按钮。
global now
#put widgets here
def picapture():
try:
global now
debugLog.insert(0.0, "Date Initialization Done\n")
now = datetime.datetime.now().strftime("%F_%X")
debugLog.insert(0.0, now + "\n")
camera.start_preview(fullscreen=False,window = (200,0,1100,640))
camera.start_recording('/home/pi/' + now + '.h264')
except:
print(traceback.format_exc(limit=10))
def stopcapture():
try:
global now
camera.stop_recording()
camera.stop_preview()
MP4Box_Command = ['MP4Box', '-add', now + '.h264', '-0', now + '.mp4']
convert = subprocess.Popen(MP4Box_Command, stdout=PIPE, bufsize=1, universal_newlines=True)
except subprocess.CalledProcessError as e:
raise RunTimeError("Commmand '{}'return with error (code {}): {}".format(e.cmd,e.returncode,e.output))
except:
print(traceback.format_exc(limit=10))