使用FFmpeg管道捕获摄像头画面始终获取空帧的问题求助
使用FFmpeg管道捕获摄像头画面始终获取空帧的问题求助
我现在在做一个项目,需要用Python脚本调用FFmpeg命令捕获摄像头画面,然后通过管道把帧数据传到自己的处理函数里,但不管怎么试,拿到的都是空帧!各种Stack Overflow的方案我都试过了,还是没解决,急死个人!
我的代码如下:
ffmpeg_command = 'ffmpeg -f v4l2 -framerate 25 -video_size 960x540 \ -pix_fmt yuyv422 -i /dev/video0 \ -f rawvideo \ -pix_fmt yuyv422 \ pipe:' pro = subprocess.Popen(ffmpeg_command.split(), stdout=subprocess.PIPE, shell=True) while True: raw_frame = pro.stdout.read(960*540*3) # 我这里试过各种可能的数值,都没用 frame = np.frombuffer(raw_frame, dtype=np.uint8) frame = frame.reshape((960,540, 3)) # 这里直接报错,因为raw_frame是空的
我实在搞不清自己到底哪里错了:
- 读取字节数的时候,我试了好几种不同的数值,结果每次拿到的raw_frame都是空的
- 转成numpy数组再reshape的时候,直接就因为数组为空抛出异常
有没有大佬能帮忙排查下问题?万分感谢!
备注:内容来源于stack exchange,提问作者sar5050
相关产品推荐
相关产品推荐

