使用mplayer查看摄像头

在mplayer中查看摄像头,可使用如下命令:


mplayer tv:// -tv driver=v4l2:device=/dev/video0:input=0:outfmt=bgr24:width=640:height=480:fps=25 -vo x11


当然,前提是你已经安装了摄像头驱动。

在mplayer中查看YUV格式的图片,可使用如下命令:

mplayer -demuxer rawvideo -rawvideo w=320:h=240:format=yuy2 qvga.yuv -loop 0


由于是raw data文件,文件中只包含图像数据,参数需由命令行提供,如width,height和format。
注意format的可选项有:420:yv12 i420
                                  422:yuy2 uyvy
可用如下命令查看所支持的format

mplayer -rawvideo format=help


-loop 0为循环播放。



最近随着chatroulette、tinychat等的Flash P2P视频应用的普及突然想念起以前Win下softcam之类的软件Google了一圈找到个AVLDAnother Video Loopback Device。[请翻墙]

AVLD是作为内核模块起作用的挂载avld就会生成/dev/videoX于是Flash、Pidgin、Skype(貌似不行)就能打开这个设备作为摄像头;而AVLD的输入则是对/dev/videoX文件的写入可以用mencoder、ffmpeg之类的工具把其他视频流转换特定格式后写到/dev/videoX这就完成整个“虚拟”的过程了。

我在Archlinux下用yaourt从AUR里面安装avld很快很方便下面一些例子命令:

#把自己加入video组方便以后写video设备
sudo gpasswd -a boypt video
 
#挂载avld模块
sudo modprobe avld
 
#查看video设备我的本本自带的摄像头是video0虚拟的为video1
ls -l /dev/video*
 
#设置虚拟摄像头的分辨率等参数后面输入的视频必须跟这参数一致否则会报错报错信息运行dmesg|tail查看
echo "width=320 height=240 fps=25" > /dev/video0
 
#用mencoder给虚拟摄像头写入数据
#其中-vf的scale参数设置输出的分辨率format设置视频颜色参数;
#读取端的颜色参数需要跟这里一致画面才正常
#-ss参数可以设置视频从某时间开始播放
mencoder "myvideofile.avi" -cache 8192 -nosound -ovc raw -vfscale=320:240,format=rgb24 -of rawvideo -o /dev/video1-ss 0:5:0
 
#从另外的终端运行mplayer查看输出
mplayer tv:// -tv "driver=v4l:device=/dev/video1:noaudio:outfmt=rgb24"
上面echo的命令是可以动态修改虚拟摄像头的输出参数的也可以在挂载时候用参数设置;默认挂载的参数是320x240。
其中fps帧速可以有如下取值:

fps= 0:不设置帧速输出帧速跟写入的一致;
fps > 0:固定输出某个帧速;
fps < 0:帧速由输出程序决定(当没有输出读取程序就暂停)。
因为摄像头设备同时只能被一个程序读取退出mplayer后可以打开视频Flash或者其他摄像头应用查看效果。

 

PS:尝试使用ffmpeg对X11抓屏发送到摄像头没完全成功理论上的命令应该如下:

ffmpeg-y -t 30 -f x11grab -qscale 2 -r 15 -s 1024x768 -i :0.0 -s 320x240 -f rawvideo-vcodec rawvideo -pix_fmt rgb24 /dev/video1
即对X进行1024x768, 15fps的抓图转换成320x240大小按rawvideorgb24方式写到video1,这样的效果仅仅是更新目标图像上面一部分可能跟ffmpeg的rawvideo输出设置有关但还没找出什么原因。

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值