注意
生成的视频没有声音!只有图片序列。
忘了在哪看到的原理,已经找不到出处了,另外结果可能是失败了,显示器刷新率不够,有时间再好好研究
缺点
本文只是演示原理,没有对左右摄像头做相应的变换,两个摄像头的图像可能不在同一个平面,并且带有倾斜角度。
https://blog.csdn.net/weixin_39266208/article/details/121319790中提供了对齐的方法。
原理
使用双目摄像头拍摄图像,然后输出一个mp4文件,交错输出左右摄像头的图片,帧率设置120以上,这样人眼分辨不出来差别,同时看左右摄像头的图片,就有立体感了,要求显示器刷新率要支持到120以上,否则没办法达到预期效果,我用小米6手机播放,感觉还可以。注意摄像头的移动速度,因为摄像头的拍摄速度可能比较低,再受系统性能的影响,如果达不到120fps,相当于把好几秒压缩成1s,看起来会移动的非常快,所以要很缓慢的移动摄像头。
代码
我这里使用的是淘宝买的usb摄像头模组。
# video2 video3是插上usb线之后多出来的,使用的时候使用video2,video3的出现是为了支持某些额外的东西,暂时还没有研究怎么使用,当前代码用不上
ls /dev/video*
video0 video1 video2 video3
v4l2-ctl --list-formats-ext -d 2
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 640x240
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s