265编码的rtsp流推流至rtmp服务器,采用http-flv后无法播放问题分析

最近项目中用到了rtsp推流,由于采用web播放,所以推流到rtmp服务器,然后采用http-flv拉流,由于摄像头采用的是h265编码,所以网上专门找了一个easyplayer.
https://github.com/tsingsee/EasyPlayer
https://github.com/tsingsee/EasyPlayer.js
结果发现对于h265编码的flv流,前端webH5播放器可以播放20481536的视频但是无法播放38402160分辨率的视频。
第一想法觉得是不是丢包了,首先通过网页下载视频:
在播放器网页按F12键,获取flv流地址,然后重新打开网页输入,比如如下网址
http://172.0.8.36:9975/rtp/traffic.flv
然后就会下载视频,中途的时候暂停,一分钟后再继续,就可以完成视频的下载了,如果不暂停,流一直会下载的。
比如下载的视频h265.flv。
视频下载好用ffmpeg打开(该ffmpeg编译的时候支持了265),结果发现打不开,报错,

[flv @ 0x5616feca8900] Could not find codec parameters for stream 0 (Video: none ([12][0][0][0] / 0x000C), none): unknown codec Consider increasing the value for the 'analyzeduration' and 'probesize' options

后来查看发现是ffmpeg不支持flvH265协议,注意flvh265和h265裸流是两回事,这个可以参考:

直播流媒体协议中,HLS和RTMP协议是两大主流协议。而众所周知的原因,RTMP在许多年前就已经停止拓展和更新,因此标准一直无法支持HEVC的编码格式。目前国内的CDN还有金山云等已经对RTMP进行了标准扩展,播放器上ijkplayer也扩展了该修改。

ps:
https://blog.csdn.net/smallhujiu/article/details/81703434
https://www.pianshen.com/article/26551860041/

FLV文件格式官方规范详解

然后通过flv视频分析软件打开,
flvAnalyser
265编码的rtsp流推流至rtmp服务器,采用http-flv后无法播放问题分析_第1张图片然后flv提取ES流,将其保存为raw.h265,然后用VLC打开流,发现流是否可以打开,我这里可以打开,说明流本身没问题,问题出在播放器身上了,所以问题定位在播放器上。

你可能感兴趣的:(笔记,音视频资料)