【发布时间】:2014-10-16 18:18:09
【问题描述】:
最近我正在尝试使用 AR.drone 2.0 进行基于视觉的控制。第一步我遇到了一个问题,就是将从无人机看到的视频导入我的电脑。我在网上搜索,有一个图书馆叫libardrone。我尝试使用它,但是当我执行初始化的第一步时。我写了
drone = libardrone.libardrone.ARDrone(True)
问题出现在安装ffmpeg。我实际上在我的路径中安装并设置了ffmpeg\bin,但我不知道为什么它总是跳出这个错误
错误原来是
Traceback(最近一次调用最后一次):
File "C:\Python27\dronetest.py", line 7, in <module>
drone=libardrone.ARDrone(is_ar_drone_2=True,hd=True)
File "C:\Python27\lib\site-packages\libardrone\libardrone.py", line 126, in __init__
self.network_process = arnetwork.ARDroneNetworkProcess(com_pipe_other, is_ar_drone_2, self)
File "C:\Python27\lib\site-packages\libardrone\arnetwork.py", line 45, in __init__
self.ar2video = ar2video.ARVideo2(self._drone, libardrone.DEBUG)
File "C:\Python27\lib\site-packages\libardrone\ar2video.py", line 37, in __init__
self.h264 = h264decoder.H264Decoder(self, drone.image_shape)
File "C:\Python27\lib\site-packages\libardrone\h264decoder.py", line 82, in __init__
raise Exception("You need to install ffmpeg to be able to run ardrone")
Exception: You need to install ffmpeg to be able to run ardrone
h264decoder.py中的相关代码是
if (H264Decoder.which('ffmpeg') is None):
raise Exception("You need to install ffmpeg to be able to run ardrone")
....
def which(program):
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
fpath, fname = os.path.split(program)
if fpath:
if is_exe(program):
return program
else:
for path in os.environ["PATH"].split(os.pathsep):
path = path.strip('"')
exe_file = os.path.join(path, program)
if is_exe(exe_file):
return exe_file
return None
【问题讨论】:
标签: python c django python-2.7 ffmpeg