我可以使用raspberry-pi 3终端执行mjpg-streamer。
下面是我使用的命令。
mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"
现在我想在python 3上执行它。所以我尝试使用os.system()
和subprocess.call()来执行它,但是它执行失败,并且在运行代码后网络摄像头出错,因此我必须重新启动raspberry-pi 3.当代码像os.system()
时,即使os.system('python3 test.py')
也能很好地工作。
是否可以使用pathon 3代码执行mjpg-streamer?
下面是我的代码。
import os
os.system('mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"')
答案 0 :(得分:3)
您可以尝试使用允许保存stdout和stderr的子进程:
import subprocess
### define the command
command = 'mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 800x448" -o "output_http.so -p 8090 -w /usr/local/share/mjpg-streamer/www/"'
### execute the command and save stdout and stderr as variables
output, error = subprocess.Popen(command, universal_newlines=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
,您将把stdout保存在“输出”中,将“ stderr”保存在“错误”变量中。
顺便说一句:建议使用listed format