背景

自打开了博客以后,一直在写技术说明文,今天打算写点程序以外的东西换换味口。前段时间在某鱼上以 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 卡文件,果然在根目录有这么个文件,打开一看:

{"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 的分辨率效果如何:

(观看视频请点击图片)

参考

[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 如何设置感光度

使用二手 gopro 做行车记录仪的更多相关文章

  1. ios小型服务器环境配置

    之前买的一台二手iphone4退役了,上闲鱼上一看,就值200,而且耳机声音也有点轻,估计买不了什么钱 于是网上看看能不能有什么废物利用的法子,看到说做行车记录仪的,有说做git服务器的,感觉挺有兴趣 ...

  2. 相机标定/校正(Camera Calibration)

    以前DIP課程有做過Camera calibration,這次因為用Gopro做Visual SLAM,所以又要撿一下校正的過程.主要還是張正友的方法. OpenCV: 用OpenCV自帶的Sampl ...

  3. 毕业设计代做,各种系统微服务项目ssm项目,员工管理系统,微信小程序,购物商城,二手商城系统,销售系统,等等

    毕业设计代做,各种系统,微服务项目,ssm项目 小程序,商城等,期末作业等都可以,价格好说,长期接单, 有项目说明书,软件介绍相关文档,答辩的时候包过,知识点对接好,给你讲解等, 毕业设计代做,各种系 ...

  4. [archlinux][hardware] ThankPad T450自带SSD做bcache之后的使用寿命分析

    这个分析的起因,是由于我之前干了这两个事: [troubleshoot][archlinux][bcache] 修改linux文件系统 / 分区方案 / 做混合硬盘 / 系统转生大!手!术!(调整底层 ...

  5. 一个赴美的应届毕业生Kevin,在美国做程序员的访谈

    作者MUM计算机   转载请注明 在国内IT市场人才日渐饱和且竞争激烈的今天,作为一名代号996的程序猿,你是否也会对赴美工作心生向往呢?作为国内普通院校的应届本科生年薪就能轻松破40万 (人民币), ...

  6. 基于SSM框架贺州学院校园二手交易平台设计与实现

    前言 这个是我当时的毕业论文,分享出来,给同学们参考. 绪论 随着中国新四大发明的诞生,网购成了千千万万网友们购物的新方式,新的购物方式促进商业的发展,但随着人们生活水平的提高,许多新购置的物品用了没 ...

  7. 你的产品适不适合做微信小程序?你需要这篇产品逻辑分析

      自2017年1月9日张小龙宣布万众瞩目的“微信小程序”正式上线了.以名字看,感觉像是突出了“将你的程序接入微信”的意思. 我们此前分析过微信的功能迭代节奏:一般微信重要的功能规划周期,大约会在在9 ...

  8. 创业成本?亲身经历告诉你做一个app要多少钱

    导语:作为一名苦逼的移动互联网创业者,被外行的朋友们问及最多的问题是“做一个网站需要多少钱?”或者“做一个APP需要多少钱?” 作为一名苦逼的移动互联网创业者,被外行的朋友们问及最多的问题是“做一个网 ...

  9. 大家来找茬:富连网今天中午抢购二手iPhone时网站无法访问的问题

    前几天在新闻区看到富士康卖二手iPhone的新闻,今天又看到说今天中午12点开抢.一大早就发现富连网无法访问了.前几天刚看到新闻的时候注册了个账号进去看了看,发现页面加载速度非常慢,今天中午基本无法打 ...

随机推荐

  1. Unicode和中午互转

    import java.io.UnsupportedEncodingException; public class TestUnicode{ /* * 中文转unicode编码 */ public s ...

  2. Java_Scanner的使用

    目录 Scanner对象 scanner.next()和scanner.nextln()的区别 scanner.hasNext()和scanner.hasNextln() Scanner拓展 视频课程 ...

  3. 使用 Nocalhost 开发 Rainbond 上的微服务应用

    本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤. Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以 ...

  4. XtraBackup 搭建从库的一般步骤及 XtraBackup 8.0 的注意事项

    搭建从库,本质上需要的只是一个一致性备份集及这个备份集对应的位置点信息.之前介绍的几个备份工具(MySQL中如何选择合适的备份策略和备份工具)均可满足. 这里,我们重点看看如何基于 XtraBacku ...

  5. django框架11

    内容概要 用户登录之后跳转到用户登录之前想要访问的页面 django操作cookie补充 django操作session django操作session补充 CBV添加装饰器 django中间件 自定 ...

  6. 互联网公司目标管理OKR和绩效考核的误区

    最近看了一篇关于「谷歌放弃OKR,转向全新的GRAD系统」的文章,我转到了研发效能DevOps的微信群里,结果引起了大家热烈的讨论,正好我们也在使用 OKR,所以也来谈谈我的理解以及我们应用起来的实际 ...

  7. .NET中检测文件是否被其他进程占用

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月2日. 一.检测文件是否被进程占用的几种方式 在.NET中主要有以下方式进行检测文件是否被进程占用的几种方式: 通过直接打开文件等 ...

  8. 聊聊 C# 方法重载的底层玩法

    最近在看 C++ 的方法重载,我就在想 C# 中的重载底层是怎么玩的,很多朋友应该知道 C 是不支持重载的,比如下面的代码就会报错. #include <stdio.h> int say( ...

  9. 【Redis】集群请求命令处理

    集群请求命令处理 在Redis的命令处理函数processCommand(server.c)中有对集群节点的处理,满足以下条件时进入集群节点处理逻辑中: 启用了集群模式,通过server.cluste ...

  10. 手把手教你实现一个Vue无限级联树形表格(增删改)

    前言平时我们可能在做项目时,会遇到一个业务逻辑.实现一个无限级联树形表格,什么叫做无限级联树形表格呢?就是下图所展示的内容,有一个祖元素,然后下面可能有很多子孙元素,你可以实现添加.编辑.删除这样几个 ...