前面在Ubuntu下测试了FFMpeg推流到windows,最近,实时将摄像头视频流推送到服务器的需求;
摄像头
翻箱倒柜后,蚁哥翻出了2002年USB相机,试着先推出它的视频流。
usb摄像头
相机是免驱动的,接收Ubuntu主机上后,先看看摄像头是否被系统发现,输入ls /dev/video*”:
查看设备
发现有两个视频设备,然后需要一个工具来验证是否可以打开摄像头,这一次,蚁哥选择了一个叫做蚁哥的工具camorama使用以下命令sudo apt-get install camorama安装完成后,用以下命令启动摄像头camorama -d /dev/video0”:
打开摄像头
OK,相机打开了,接下来,在windows上进入nginx-1.7.11.3-Gryphon在窗口输入目录cmd调出命令窗口,敲入start nginx”,运行nginx然后输入服务nginx.exe -t检查服务是否正常启动。
启动Nginx服务
然后推流摄像头的视频:
在Ubuntu敲入下面的指令敲入下面的指令ffmpeg -i /dev/video1 -f flv rtmp://192.168.1.105:1935/live/stream开始推流(记得把它推开(记得把IP用自己的服务器地址代替地址),windows中VLC在播放器中,串流地址使用rtmp://127.0.0.1/live/stream0播放:
推流视频1
测试图像出来了!但是延迟很大,大概是10s左右,让蚁哥想起拨号上网下载图片的感觉。
查资料,用下面这句话代替命令。ffmpeg -f video4linux2 -r 30 -s 640*480 -i /dev/video0 -vcodec h264 -f flv rtmp://192.168.1.105:1935/live/stream0”,几个参数的含义如下:
-f:输出格式;
-r:帧速率;
-s:画面宽*高;
-i:输入流;
-vcodec: 设置视频编解码器
再次测试,延迟较小,约5秒。
推流视频2
这次测试是对的USB相机的推流,但延迟还是太大,不能满足需求,需要继续优化。
推流视频2这次测试是对的USB相机的推流,但延迟还是太大,不能满足需求,需要继续优化。希望有过类似经历的朋友也能在评论区给蚁哥提供一些想法和方案,谢谢!电脑知识