前一段时间给IP摄像头和USB摄像头加入RTMP推流支持,支持将音视频推送到直播平台做直播。甚至YouTube也能推过去,前提是你要有个好梯子😀就能实现上图的效果,网络状况好的时候好不错,延迟10秒以上。如果是自己搭推流服务器(像nginx-rtmp或者srs)或者使用国内直播云延迟可以控制到1~2秒以内,使用Flash播放器甚至可以降低到1秒。

实现这个的目的是想直播FPV,即通过采集卡把图传接收的画面通过USB摄像头App显示在手机上的同时推送到直播平台😀苦于搬了房子附近没场子飞四轴,就没直播FPV改为家庭监控用了,自己架一个RTMP推流服务器,把旧手机放家里,运行IP摄像头App进行推流,即使家里没有公网IP也能查看家里情况。

IP摄像头和USB摄像头app共用RTMP推流的代码,视频使用H.264编码,音频使用AAC编码,支持根据网络状况自动调整码率,网络状况差时会自动丢帧,以保证延迟。当遇到网络切换或者连接暂时中断时,会自行重连,直到重新连接到推流服务器或者用户自行断开连接。该推流算法自行实现,经过二月份户外4G网络测试效果不错(消耗了近2G流量,刚好二月份移动送流量),即使在户外也能通过4G网络使用IP摄像头或者USB摄像头进行RTMP推流直播。

++++++++++++++++++++++++++++++



IP摄像头 for Mac发布,至此,IP摄像头已经可以在Windows,Android和iOS还有Mac平台上运行了!

IP摄像头 for MacMac版IP摄像头底层使用了和iOS版IP摄像头近乎一致的代码,UI部分因为两者差异全部重写。目前除了不支持OneDrive和rtmp,rtsp协议外其它功能与另外几个平台一致,包括运动检测、FTP上传等,另外如果你外接多个摄像头,还可以在多摄像头之间切换,具体可以前往Mac App Store查看介绍,欢迎使用😀!

其实写这个APP的目的是因为没钱买FPV雪花屏,所以打算用便宜的图像采集卡挂手机,把手机显示屏当FPV显示屏用。找了一个开源项目得到了驱动UVC图像采集卡的方法,顺便也可以驱动USB摄像头,再把IP摄像头这个APP里面的服务器端搞过去,然后就诞生了USB摄像头😁😁😁😁

通过USB摄像头app连接外置摄像头


通过USB摄像头App连接图像采集卡 FPV的效果

有稍微明显的延迟,使用小蚁运动相机的av输出会有0.2秒的延迟经过传输总的有0.33秒左右,用CCD摄像头则不会感觉到延迟但是我不玩穿越,而且飞得很慢,主要看前面有没障碍物(前一段时间判断错误撞电线杆,掉花丛,没事,拿起来继续飞😂),影响不大。使用小蚁运动相机的av输出会有0.2秒的延迟经过传输总的有0.33秒左右,用CCD摄像头则不会感觉到延迟。下面这张是加了OSD的效果,用App的拍照功能抓取。

用USB摄像头 app 进行FPV拍照

相比普通雪花屏可以录像,抓拍,直接分享朋友圈!

关于App

《USB摄像头》可以让你的手机通过USB-OTG接口连接USB摄像头或视频采集卡,支持录像或者拍照,甚至变成包含双向音频支持的无线IP摄像头并用于安全监控,你可以使用浏览器(例如 IE, Chrome, Firefox) 查看或者用于QQ视频聊天,当然《IP摄像头》这个APP也可以查看。它还支持用户名和密码认证,默认情况下用户名和密码都是admin,您可以在设置里面进行修改。

它支持基于运动检测的自动录像,所拍摄的录像还能自动上传到FTP服务器!

提示:仅支持UVC网络摄像头和UVC兼容设备!!!(如视频采集卡)并且需要Android 4.4及上版本(4.4以上的内核uvc驱动比较好)。
双向音频需要 IP摄像头 app 你可以从 http://app.xiaomi.com/detail/59398 下载
USB摄像头 可以从小米商店下载 http://app.mi.com/detail/338972

要是外接摄像头的话像电视盒子比较合适,例如用电视盒子+摄像头+app来安全监控,手机的话就没什么必要外接摄像头了,采集卡还差不多。这个App同时是用来解决IP摄像头这个App不能使用外接USB摄像头的问题,如果你要用电视盒子来做安全监控,选择《USB摄像头》吧😁😁

附飞机的照片……

我的四轴飞行器

飞机

新版IP摄像头的H.264视频流除了可以用IP摄像头本身的查看器查看外,也能用PC上的VLC播放器查看,不过这时候只有视频没有音频。

方法简单!

点击VLC播放器的工具->偏好设置,在弹出的对话框中点击左下角 显示设置 的全部,找到 输入/编解码器->去复用器,在右侧的去复用模块选择 H264视频去复用器!最后点击保存,关闭对话框。

lc1

VLC

确保设备跟PC处于同一个局域网,在设备上运行IP摄像头,点击底部的打开IP摄像头服务器。在VLC播放器上,点击 媒体->打开网络串流(N),输入IP摄像头上显示的H.264视频地址,点击播放,可能会弹出用户名和密码输入框,输入IP摄像头的用户名密码即可。缓冲一两秒后VLC就会开始播放IP摄像头传输过来的实时视频了。

VLC正在播放IP摄像头的实时视频

VLC正在播放IP摄像头的实时视频

可能会遇到不断缓冲的状况,这是因为VLC默认的H.264帧率是25帧,受限于设备和网络性能,IP摄像头可能达不到这个帧率,可以手动设置H.264的帧率。在刚才的偏好设置里面,点击 输入/编解码器->去复用器 底下,选择H264,在右侧可以找到 每秒帧数 ,可以自己尝试合适的帧数,这里选择10帧,保存,再次打开网络串流试试看。不行再改……

VLC默认的H.264帧率是25帧

目前手头上的设备只有iPad mini 2和Win10 PC上的IP摄像头可以达到23帧左右,Lumia 925可以达到12~14帧,荣耀3C移动乞丐版可以达到11~12帧。

现在三个平台的IP摄像头已经支持H.264格式的视频传输了,是MJPEG所需带宽的1/7左右。各个平台的IP摄像头版本如下,Android版本8.0、Win10 UWP版本7.0.0.0和iOS版本3.0,坑爹的是正值App Store放假,目前可以安装到的iOS版IP摄像头是2.3版,3.0版还在排队审核中……免费版倒是上架了,但是不支持H.264😂😂😂😂。

iOS版IP摄像头的H.264支持

Android版IP摄像头的H.264支持

UWP版IP摄像头的H.264支持

UWP版IP摄像头的H.264支持

同时,IP摄像头查看器默认会使用H.264视频进行传输,如果服务器端不支持H.264则会自动使用MJPEG格式(例如连接到先前版本的IP摄像头服务器或者MJPEG格式的IP摄像头)。还可以使用VLC播放器查看IP摄像头服务器的H.264视频流后续会写一篇说明

特别的Android版IP摄像头的录像和运动检测可以支持Android 4.3以下系统了,也就是不限制Android版本。4.3以下系统会使用软件编码方式实现录像和运动检测,只要机器不太老,都能流畅编解码。实测手头的荣耀3C移动乞丐版MT6582的SoC可以达到13~15帧左右,跟MJPEG差不多。感觉这个开启显示帧率后可以测试机器的性能😁😁😁😁

为什么要加入H.264支持

前一段时间折腾n2n(不懂的朋友可以谷歌、百度一下),连接了老家和本地位于内网的设备,然后就测试了一下IP摄像头的传输状况,发现MJPEG很消耗带宽,加上老家使用铁通、本地使用校园网络,速度很慢,所以就想到H.264……然后谷歌到cisco的OpenH264做软编解码(OpenH264适合做实时编码,比较容易统一各个平台,至少我不觉得目前三个平台有好用的视频实时编码API,iOS上则使用硬件编码器实现H.264编码,速度比其它平台快),发现效率很高(有neon、SSE优化),有些机器上比JPEG编码还快,然后低版本Android的H.264编码问题也解决了(心里一个梗啊)……然后新版本又诞生了😂😂😁😁

下载链接

Android版IP摄像头

UWP版IP摄像头