V2EX 前天 20:05
[问与答] 来个音视频大佬给指明方向,感激不尽
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

一款车载行车记录仪APP在升级HTTPS过程中,发现与记录仪之间的点播视频流出现异常,表现为视频播放卡顿,每播放2秒就需要缓冲1分钟。尽管APP已信任记录仪的自签名证书,且其他HTTPS请求正常,公开HTTPS链接播放无误,但视频回放时错误频发。使用ffplay播放也出现类似的“Stream ends prematurely”和“IO error:End of file”等提示。初步判断可能与记录仪硬件或SSL/TLS握手处理有关,但具体原因尚不明朗,需要音视频领域专家协助。

🚗 **HTTPS升级与视频流异常:** 行车记录仪APP在迁移至HTTPS协议时,遭遇了视频点播流的严重问题,表现为播放2秒卡顿1分钟,这极大地影响了用户体验,表明在HTTPS环境下,视频数据传输的完整性或连续性受到了干扰。

🔒 **证书信任与请求成功:** APP已在代码中配置信任记录仪的自签名证书,并且所有非视频流的HTTPS请求(如API调用)均能正常进行,公开的HTTPS链接也能流畅播放,这排除了APP整体HTTPS客户端能力的问题,并将焦点集中在视频流特有的传输机制上。

📉 **错误日志与播放器差异:** Mac端的ffplay测试结果与APP内部表现一致,均出现“Stream ends prematurely”和“IO error:End of file”等错误,暗示问题可能出在TLS/SSL层对视频流的特殊处理或数据包的完整性校验上。然而,IINA播放器却能正常播放,这可能与其使用了特殊的解码或网络传输优化技术有关,增加了问题的复杂性。

❓ **问题根源的推测:** 尽管错误提示指向了数据流的中断,但问题根源仍不明。怀疑可能源于记录仪硬件在处理HTTPS视频流时的性能瓶颈或兼容性问题,也可能是ijkplayer在处理自签名证书和视频流时的SSL/TLS握手或数据分块方面存在未知的bug,导致数据流无法被正确、完整地接收和解码。

公司是做车载行车记录仪 APP 的。在升级 HTTPS 的过程中,APP 和记录仪之间的点播视频流总是报错:1:[ERROR] [URLContext] error:00000000:lib(0):func(0):reason(0)2:[ERROR] [URLContext] Stream ends prematurely at 41074926, should be 251658240

已知:1,记录仪都是自签名证书,APP 已经在代码里信任。2,和记录仪之间的其他 HTTPS 请求都能正常进行,且 APP 能正常播放公开测试的 HTTPS 链接。但是和记录仪 HTTPS 之间视频回放会出错。具体表现为:视频播 2S 要缓冲 1 分钟的样子。3:用 Mac 端 ffplay 命令播放,同样会 error:[ tls @ 0x600002858000 ] Error in the pull function.sq=0BItls @ Ox600002858000 ] IO error:End of file[ https @ 0x600003154580 ] Stream ends prematurely at 286720, should be 142944860Itls @ 0x600002858000 ] The specified session has been invalidated for some reason.

根据错误提示,个人感觉是记录仪硬件的问题可能性较大,因为大多数播放器播放,都会加载不出来,但 IINA 就能播出来,不知道使用了什么黑科技。

现在人比较迷茫,因为我也搞不清楚问题到底是出在 APP 还是记录仪。ijkplayer 已经编译 ssl 版本不知道多少次了

希望音视频大佬指点一二,,助我走出困局。感激!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

行车记录仪 HTTPS 视频流 ijkplayer SSL/TLS
相关文章