首页 > 其他分享 >ZLMediaKit实现拉取摄像头(海康协议)编码为H265并使用flv.js播放时提示:FLV:Unsupported codec in video frame:12

ZLMediaKit实现拉取摄像头(海康协议)编码为H265并使用flv.js播放时提示:FLV:Unsupported codec in video frame:12

时间:2023-08-23 16:56:30浏览次数:75  
标签:ZLMediaKit H265 frame rtsp js flv 海康 播放 摄像头

场景

开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245

按照上面流程进行拉取摄像头的rtsp流并转流使用flv.js播放时提示:

DemuxException: type - CodeUnsupported,info - Flv: Unsupported codec in video fram:12

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、这里拉取的是海康威视的摄像头的rtsp流。

海康威视rtsp流格式为:

rtsp://admin:123456@ip:554/h264/ch1/main/av_stream

这里admin是账户,123456是密码,修改Ip和端口,这里拉取h264编码格式的主流。

这里一开始未考虑摄像头编码是H265的情况导致出现问题。

但是这里使用

rtsp://admin:123456@ip:554/h264/ch1/main/av_stream

以及

rtsp://admin:123456@ip:554/h265/ch1/main/av_stream

都能使用vlc等软件播放。

但是在使用flv.js进行播放时提示如上。

2、在仔细核对了ZLMEediaKit的流程和接口以后,发现拉流接口等均返回正常

 

但是使用对应的flv的地址进行播放时失败,在vlc中提示:

VLC无法判别此音频或视频解码器

 

3、为了解决该问题,首先使用ffmpeg模拟出来一个海康协议的rtsp流

Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/132317435

然后使用模拟的rtsp流地址

执行以上流程,发现能正常播放。

所以大概率是摄像头本身的问题。

查看官方flv.js的说明,发现其特征为:

FLV container with H.264 + AAC / MP3 codec playback
Multipart segmented video playback
HTTP FLV low latency live stream playback
FLV over WebSocket live stream playback
Compatible with Chrome, FireFox, Safari 10, IE11 and Edge
Extremely low overhead, and hardware accelerated by your browser!

 

 4、于是登录该海康威视摄像头,查看其编码格式

配置-视音频-视频-视频编码,果然为H265

 

将其修改为H264之后,播放正常

 

 

标签:ZLMediaKit,H265,frame,rtsp,js,flv,海康,播放,摄像头
From: https://www.cnblogs.com/badaoliumangqizhi/p/17652136.html

相关文章

  • WebRTC 支持H265探索之路
    截至目前为止,参考了大量的文献和博客,都通过datachannel进行码流的传输,然后在浏览器端重新实现解码和渲染,因此意味着WebRTC不再具有任何的研究价值,还不如自身实现通过websocket对码流的传输,相比WebRTC庞大的体量,暂时不会做任何的调整。相信在专利面前,Google不会做任何的改善,还有UDP......
  • 【pandas小技巧】--DataFrame的显示参数
    我们在jupyternotebook中使用pandas显示DataFrame的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期。这时,就需要调整pandas显示DataFrame的方式。pandas为我们提供了很多调整显示方式的参数,具体参见文末附录中的链接。本篇介绍几个我经常用到......
  • vue-draggable跨iframe拖拽
    环境vue3"vuedraggable":"^4.1.0"物料区<draggableclass="dragArealist-groupcomponents-draggable":list="material":group="{name:'formGroup',pull:'clone',put:fals......
  • SignalR实战:在.NET Framework和.NET Core中如何使用SignalR?
    官网文档:ASP.NETCoreSignalR入门|MicrosoftLearnSignalR开源代码:SignalR·GitHub很多小伙伴问:在前后端分离项目中,后端是.NETCore前端是Vue如何使用SignalR?在前后端不分离项目中,.NETFrameworkMVC项目中又如何使用SignalR技术呢?那就来看看下面这篇文章吧!本文主要介绍Signa......
  • OpenCV|FFmpeg – OpenCV cv::Mat与FFmpeg AVFrame的相互转换
    1 OpenCV cv::Mat与FFmpeg AVFrame相互转换最近在处理OpenCV采集摄像头图片然后使用ffmpeg编码为h264裸流,之后再将h264裸流转换为OpenCVcv::Mat进行显示的问题,在这个过程中,如何将OpenCV的cv::Mat转化为FFmpegAVFrame在进行h264编码,以及如何将h264解码后的AVFrame转换为cv::......
  • Selenium+python,切换frame,定位元素出现NoSuchElementException异常
    在某邮箱登录页面切换frame表单,以及定位frame表单中的元素时提示NoSuchElementException。查阅资料后发现某些frame表单或者页面中的元素id是动态更新的,每一次页面刷新后id值都不一样。  我之所以遇到这个问题,就是因为我使用了id进行定位,而当我运行脚本定位元素的时候,id已......
  • ZLMediaKit + wvpgb28181流媒体平台搭建
    流媒体平台流程简介主要用途:对接监控摄像头、视频直播、多对多视频聊天室系统架构由3个部分组成:接口服务器、信令服务器、流媒体服务器;1.接口服务器主要用于响应客服端的请求;2.信令服务器主要用于智慧流媒体服务器和视频设备交互;3.流媒体服务器主要用于处理媒体流的接收、转换、分......
  • vue-element-admin项目中tagView嵌入iframe不刷新重载
    vue-element-admin项目中tagView嵌入iframe不刷新重载最近使用vue-element-admin来开发项目,因为以前老项目太大,暂不重构,如要通过iframe嵌套在新项目中,通过router来重写url加载,但是业务需要切换菜单或者tagView不能刷新重载iframe页面,因此需要改造一、vue-element-admin是通过......
  • xib view frame 大小调整
    1、IOS-xib(InterfaceBuilder,view)-can'tchangeviewsize(view不能改变大小问题)很多时候,我们自定义tableview、collectionview的cell,也有时候我们要自定义窗口xib,但创建xib后,其height、width不可修改。这时问题就来了,怎么才能使我们的自定义xib宽高可修改:项目中创建xib......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-12-playwright操作iframe-中篇
    1.简介按照计划今天就要用实际的例子进行iframe自动化测试。经过宏哥长时间的查找,终于找到了一个含有iframe的网页(QQ邮箱和163邮箱),别的邮箱宏哥就没有细看了。所以今天这一篇的主要内容就是用这两个网页的iframe结合上一篇的理论知识,宏哥给小伙伴或者童鞋们演示一下。2.QQ邮箱2......