个人背景:野生写代码的,纯兴趣爱好,编码既不是工作,也不是科班,连培训班都是蹭网课。
需求:买了个小米的摄像头,不支持 ONVIF ,但是当视频录制到 128M 就形成文件,支持存到 smb 上,想写个 web 页面方便查看。后端 express ,前端 vue3 。简单说就是播放一堆 mp4 文件。
实现:视频录制格式是 hvc1+opus 。
1 ,开始用 video 来播放没问题。copilot 帮助下很快前后端搭起来,可以根据日期选择播放视频文件。
2 ,考虑安全,前后端都加了 jwt 认证,但是 video 请求视频文件不支持带 headers.Authorization token 。
3 ,咨询 copilot ,推荐转成 blob ,这样可以了带认证了,但是 blob 必须一次把 128M 都读回来才能播放。
4 ,再咨询 copilot 如何分片,推荐了 mediasource 配合 range ,实现快速播放。
5 ,copilot 再次提示 chrome 的 mediasource 实现不支持 hvc1 ,果然 chrome 提示不支持的类型;换了 safari 的确是可以不缓冲直接播放了。
6 ,copilot 建议在后端 ffmpeg 转码以后再推出来,可是后端只是台 J1900 ,转 4k 的码比播放速度还慢。这条路也不通。
7 ,copilot 又推荐了 m3u8 的切片方法,看起来挺复杂了,感觉搞不定。
现在只有退回原点,取消认证,直接用 video 播放。看看 copilot 的帮扶道路,你说他没用吧,后面每个知识点都是现学的,但是最后还是没解决问题。
1
lscho 3 天前
个人理解:
AI 是自动驾驶,但是并不能解决你的行程规划、途经点、最优解问题。 如果你提前确定好需求,要根据日期选择播放视频文件,要加 jwt 认证,加分片播放,后端服务器性能低、要求高性能接近,你还会有后面的这些问题吗? 你只给 ai 说了目的地,他当然只能给你多条路线一个一个试咯。 |
![]() |
2
dfkjgklfdjg 2 天前
header 里面没有,可以考虑把 token 放到 Cookies 里面,请求的时候浏览器会自动携带。
|