背景
自打开了博客以后,一直在写技术说明文,今天打算写点程序以外的东西换换味口。前段时间在某鱼上以 300 元的价格入手了一套完整的 gopro3 运动摄像头,带一张 32G SD 卡,两块备用电池,一个无线遥控,以及 N 多配件:
相机本身支持 720p~4K 分辨率,不过 4K 的时候帧数已经比较渣了 (12.5 fps),最合适的还是 1080p,能到 24 帧及以上。
据说 gopro3 虽老 —— 最新的 gopro 版本已经到 10,不过价钱也非常感人,达到了 3000 —— 画质也能完爆两三百的行车记录仪,于是想将它改造为一个摩托车记录仪,下面是探索的过程。
手机 App 连接
套件中自带 SD 读卡器,拍摄完的照片和视频可以直接在笔记本电脑读取 (要有 SD 卡插口),不过这种方式需要开电脑,使用起来不是特别方便,好在 gopro3 已经支持手机 App 连接,在 App 商城中下载一个名为 GoPro Quik 的软件即可。
第一次连接稍微费了点功夫,需要将 gopro3 的 wifi 连接设置为 app 模式并启动,手机侧需要开启蓝牙并配对,之后连上 gopro 的 wifi 就可以了 (以后打开 App 就会直接连接相机 wifi,不需要额外设置了)。在 wifi 列表里找了一圈,果然发现一个新增 wifi,但是名字有点奇怪 :luoquanyou,报着试试看的态度连接了一下,果然没有成功:
需要输入密码,想想也是,不能随便让别人访问你拍摄的内容是吧。网上搜了下,说默认密码是 goprohero,进不去;试了下 12356,不行;问了下卖家,对方表示时间长了忘记了,并安抚我说没有手机 app 也可以下载数据,最后提醒我快点确认收货,一次无效沟通。不过咱也是搞 IT 出身的,虽然装电脑不是特别在行,破解个 wifi 密码那还不是分分钟的事儿 ?
果然在网路上搜到了重置 gopro wifi 的方法,其实就是直接从官网下载固件 wifi 包,在电脑端通过文件复制覆盖 SD 卡中的内容,达到重置出厂设置的目的,顺便也就把 wifi 重置了。按照操作步骤一步步执行,走到下载文件这步空气凝固了:
“下载更新” 按钮一直是灰的,鼠标移上去是禁止标志。一开始以为是自己的网慢,耐心的等待了几分钟,然鹅没有任何变化;怀疑是 firefox 的锅,毕竟只有 4% 的用户在使用了,切换 chrome,然鹅没有改观;怀疑是 linux 笔记本有问题,换 windows 本试,然鹅结果一样…
做工如此精致的官网,你不能坑我啊。切换思路,看看网上有没有 mirror 站点,果然又搜到一篇文章,作者已经把下载好的 gopro3 固件上传到了 csdn,可以直接下载,然鹅需要 50 C币,果断放弃,之前被赚 C 币折磨的阴影还在,不能再掉坑里一次了~
就在一愁莫展的时候,无意间看到一篇文章,说 wifi 设置位于 setting.in 的文件,浏览 SD 卡文件,果然在根目录有这么个文件,打开一看:
代码语言:javascript复制{"current_password":"","token":"","wifi_ap":{"ssid":"luoquanyou","password":"12345678"},"wifi_networks":[]}
wifi 密码居然明文写在上面,真是踏破铁鞋无觅处,得来全不费功夫~
使用密码 12345678 成功连上了 wifi,话说这和我之前的尝试就差了两个数字嘛,好像明白了暴力破解为什么长盛不衰。
gopro3 的软件开发者留了一个安全漏洞,作为同行很好奇新版本是否修复了这个问题。不过转念一想,即使 wifi 配置加了密,在 SD 卡随时可以被取走的情况下,这种安全性又有什么意义?除非可以物理锁住 SD 卡,如果能做到这一步的话,wifi 密码也是可以保证安全的,逻辑闭环,哈哈,没毛病~
本来想换一个 wifi 名和密码的,但是 SD 卡是只读的,不能手动更改。算了,不折腾了,就这样凑合着用吧。
浏览 SD 卡文件,还发现卖家大爷的几张影像,看起来像是二手贩子,对 gopro 研究的还是不够啊,卖便宜了 :)。
这是我离卖家最近的一次,好在分辨率不高,相当于自动打码了…
配置
gopro 作为专业的运动相机,擅长拍摄运动过程中几个精彩的片段,不适合做长时间的记录工作,要将它改造为行车记录仪,还需要做一翻针对性的配置,主要分为供电与存储两个方面。
供电
制约长时间记录的瓶颈首先是供电问题,单使用电池的场景下,一块电池大概只能支持半个小时 (21 min 实测),骑行过程中又不方便换电池,相当于每半个小时要停车一次,这是不能接受的。于是考虑使用车载 USB 供电方案,在这种情况下只要车子有电,gopro 就不会断电,而行驶过程中电瓶会不断充电,因此可以理解为无限续航。不过一旦接上电源线,就给 gopro 带来两个限制:
- 安装位置
- 外层防护壳的选择
第一个问题好理解,因为有线,所以不方便装在头盔、手臂等位置,只能安装在车子头部靠充电口近的地方,好在记录仪本身就是要装在这个位置,这个没有多大影响;
第二个问题是因为 gopro 配备的几个壳子中,以防水壳居多,为了达到官方宣称的 60 米深度的防水能力,除了几个防水按钮外就没有其它接口了,导致它只能使用电池供电:
还有几个防水壳在后面开了很大的“天窗”来改善散热和麦克音效,但它们在电源接口处都没有预留充电线出口:
这样就只剩下面这个壳子可选了:
单薄的像个塑料片儿,考虑到摩旅途中遇雨的概率不低,这东西基本没有防水能力。另外为了接充电线,需要打开侧仓盖,时间久了灰尘也会进入机体,真不是一个好的解决方案。于是在某宝上搜索"gopro 充电防水壳",居然真的有卖:
不过价格感人,小 100 块一个,果断放弃。先这样凑合用着。
如果有人想用它作汽车行车记录仪,就不存在这种烦恼了:车内没有必要使用防水壳,还能增强散热性能,一举两得。另外说到散热,这机器长期开着录影是真的烫手,如果加上防水壳,不清楚会不会过热。
最后补充一点,虽然相机可以通过电源线直接供电,但行驶过程中的颠簸可能导致供电线接触不良,偶发的断电会导致 gopro 直接停机,因此还是保留相机内的电池作为接力电源为好。特别在断电后日期会被重置,而通过 gopro 那几个小按钮设置日期将是一件非常费力的事。
存储
长时间记录的另一个瓶颈是 SD 卡存储空间。gopro 默认的模式是按 start 键开始录影,再次按 start 键或存储写满时停止。循环录影模式可以在存储写满时覆盖最旧的记录文件,从而只记录最近的一段影像。
这个功能的基础是视频文件分片,使用 1080p 24 帧的测试结果是,15 分钟一个文件分片 (6.6 G 左右),32 G 容量最多可以写 1 小时 15 分钟。降低分辨率并不能显著降低记录时长,因为帧数相应的提升了,以 960p 为例,最低帧数提高到了 50,720p 也差不多。
提高 SD 卡容量是一个办法,gopro3 最多支持 64G 的存储卡,相对 32G 能提升一倍的记录时长。实地测试不同的分辨率在 32 G 容量下的最长记录时间列表如下:
fps/resolution | 720p | 720p super | 960p | 1080p | 1080p super | 1440p | 2.7k | 4k | WVGA |
---|---|---|---|---|---|---|---|---|---|
12 | 96 (17:9) * | ||||||||
12.5 | 92 * | ||||||||
24 | 105 | 120 | 120 | 92 (17:9) * | |||||
25 | 210 | 120 | 120 | 90 * | |||||
48 | 120 | 120 | 120 | 140 * | 140 | ||||
50 | 200 | 105 | 120 | 135 | 140 * | ||||
100 | 140 * | 140 * | |||||||
240 | 240 * |
对上面的数据做个简单说明:
- 单位分钟 (min)
- 空白表示对应分辨率不支持相应的 fps
- 设置在 TV 设备上观看视频的模式 (NTSC/PAL) 会影响分辨率对应的 fps,上表列出的是 PAL 模式下的 fps,适合非北美地区的 TV 设备
- 标星号的 fps 不支持循环录影功能
- 夜晚纯黑的场景下,录影文件大小并没有明显变化,gopro 显然没有进行视频压缩,因此上面的数据相对还是比较准的
可以看到有些分辨率在提升 fps 的情况下,记录时长还提升了 (1080p 24fps->25fps),经过分析,发现某些 fps 除了生成原始视频本身,还会生成低分辨率预览视频,导致占用空间上升。真是不试不知道,一试吓一跳…
作为行车记录仪,循环录影是硬要求,排除掉不支持的 fps,再按记录时长排序,只有下面两种设置时长能超过 200 min:
- 720p * 50:200 min
- 1080p * 25:210 min
如果希望记录更多帧,可以选 720p;如果希望记录画面更清晰,可以选 1080p。WVGA 方式可以达到最长的时长 240 min,如果一次旅程不超 4 小时,选择这个配置就比较香了,同时它也达到了最大的记录帧数 240 fps,据说明书讲,WVGA 格式记录了原始 (RAW) 画面,想发挥后期制作能力的人不妨试试。
杂项
gopro 除了录影功能外,还有以下功能:
- 拍照
- 连拍
- 延时摄影
- 回放
和车载记录仪没什么关系的就不多说了,重点说一下与录影相关的设置:
- 一键模式 (one button):开机自动录影
- 照片像素:12M Wide/7M Wide/7M Medium/5M Wide (M:百万像素) ,一般默认 12M
- 遥控模式:将相机 wifi 模式设置到遥控器,可以通过单独的遥控按钮控制相机,例如在录影过程中抓拍,注意这种情况下是不能用 App 连接相机的,相机只能在两种 wifi 模式中选择一种工作
- 高级设置:
- 相机正反朝向 (Camera Orientation):反着放相机,可以拍出正向的画面,方便某种独特的机位
- 边拍边录 (Simultaneous Video And Photo):录影的同时以固定间隔拍照,注意只有一些特定的分辨率支持该特性
- 点测光 (Spot Meter):从一个灯光较暗的空间进入明亮环境时得到更好的画面,例如出隧道时。注意打开这个选项会导致循环录影失效
- 数字谐调 (Protune):发挥相机全部潜力,录制高质量低压缩的画面,开启这个选项会导致循环录影和边拍边录模式失效,打开这个选项会使能以下选项:
- 白平衡 (White Balance)
- 感光度上限 (ISO Limit )
- 色彩 (Color Profile)
- 锐度 (Sharpness)
- 曝光值补偿 (Exposure Compensation)
Protune 的 5 个高级选项常见于单反相机的设置,这里不专业就不多说了。大部分高级设置支持的分辨率有限,特别是影响循环录影的开启,所以我一般不开启它们。其中比较有用的是边拍边录,可以避免为了看一两帧照片而下载巨大的视频文件了,不过这个功能和遥控拍照有些重复。最后说一下为什么不上遥控器,主要是这东西续航有限也需要接电源,安装起来还挺麻烦,不想把车把弄的太乱。
安装
相机就绪后,就可以上车了,刚好车上有装手机支架球头,可以直接安装:
将相机放在了紧靠风挡中间的部分,可以获取最佳视野及最好防护,另外也不遮挡仪表显示,perfect!
最后来一段拍摄效果,看看 1080p 的分辨率效果如何:
(观看视频请点击https://www.bilibili.com/video/BV1sd4y1D7dF?p=1&share_from=ugc&share_medium=android&share_plat=android&share_session_id=c9768d5e-75af-45ea-97d1-37fa71509d4d&share_source=COPY&share_tag=s_i×tamp=1659199977&unique_k=4p4rWhu)
参考
[1]. gopro hero 3 运动相机更新固件重置wifi密码的实操教程
[2]. GoPro Hero3 银狗 最终固件,可重置WiFi
[3]. 你说会有人用GoPro当行车记录仪吗?
[4]. GoPro是怎样让用户wifi密码沦陷的
[5]. gopro 官网
[6]. GoPro HERO 3 中文说明书【GoproCN】.pdf
[7]. GoPro使用教程,GoPro玩家初级攻略
[8]. GoPro 如何设置感光度