python使用ffmpeg推流出现OSError: [Errno 2] No such file or directory
具体错误如下:
Traceback (most recent call last):
File "test.py", line 23, in <module>
pipe = subprocess.Popen(command, shell=False, stdin=subprocess.PIPE
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
错误出现场景:使用python开子进程,执行ffmpeg推流命令时候出现的
import cv2
import subprocess
rtmp = r'rtmp://***'
cap = cv2.VideoCapture(0)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
sizeStr = str(size[0]) + 'x' + str(size[1])
command = ['ffmpeg',
'-y', '-an',
'-f', 'rawvideo',
'-vcodec','rawvideo',
'-pix_fmt', 'bgr24',
'-s', sizeStr,
'-r', '25',
'-i', '-',
'-c:v', 'libx264',
'-pix_fmt', 'yuv420p',
'-preset', 'ultrafast',
'-f', 'flv',
rtmp]
pipe = subprocess.Popen(command, stdin=subprocess.PIPE)
while cap.isOpened():
success, frame = cap.read()
if success:
if cv2.waitKey(1) & 0xFF == ord('q'):
break
pipe.stdin.write(frame.tostring())
cap.release()
pipe.terminate()
解决办法:
查阅了网上没有一个有用的,要不就是乱写,要不就是求助,我在stackoverflow查到了如下解决办法,我使用成功解决问题,可以当作各位小伙伴的借鉴。
sudo ln -s /usr/bin/python /usr/local/bin/python
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)