首页 > 其他分享 >FFmpeg和Monibuka拉取rtsp(大华摄像头)视频流时未进行URLCode编码导致提示404等报错

FFmpeg和Monibuka拉取rtsp(大华摄像头)视频流时未进行URLCode编码导致提示404等报错

时间:2024-01-31 10:34:39浏览次数:58  
标签:编码 视频流 FFmpeg rtsp subtype 报错 大华 摄像头 urlcode

场景

Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放:

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

Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览:

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

上面拉取rtsp视频里地址一直是海康协议,如果是大华摄像头。

大华摄像头RTSP视频流地址格式:

rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?channel=1&subtype=0

username: 用户名。例如admin。

password: 密码。例如admin123。

ip: 为设备IP。例如 192.168.1.101。

port: 端口号默认为554,若为默认可不填写。

channel: 通道号,起始为1。例如通道2,则为channel=2。

subtype:码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。

如:rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=1

但是在使用上面的rtsp流地址进行拉流测试发现。

使用VLC播放rtsp流时无画面

 

使用FFmpeg的ffplay

ffplay -i rtsp的url时提示:

method DESCRIBE failed:404 Not Found

subtype 不是内部或外部命令,也不是可运行的程序。

 

并且在使用Monibuka进行拉流时提示:

RTSP 拉流“......”,"error":"bad status code:404(Not Found)"

 

注:

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

实现

这是因为特殊字符&未进行URLCode编码导致。

 

 

将&进行url编码之后

rtsp://admin:admin123@ip:554/cam/realmonitor?channel=1%26subtype=0

此时再进行拉流测试一切正常。

2、为什么使用urlcode编码

因为在把字符串用url方式传送给httpserver时,字符串中不能出现中文和特殊字符(空格、换行符);所以要对url 进行urlcode 。

每一个中文字符都有一个urlcode 编码

每一个特殊字符都有一个urlcode编码

可以在 urlcode 在线工具进行查看

 英文的urlcode 是本身,不会变化

3、如果确定urlcode编码没问题后,大华摄像头仍然无法拉取rtsp流地址可以排查如下

大华摄像头rtsp流地址端口默认是554,查看方式

设置-端口-RTSP端口

 

排查大华摄像头视频编码

设置-视频-视频编码-主子码流,这里是H265,将其修改为H264尝试。

 

排查大华摄像头RTSP流鉴权

设置-安全-RTSP鉴权-将其修改为None

 

排查554端口是否开放

telnet ip 554

如果提示telnet不识别,win10上程序和功能,打开telnet客户端。
 

 


  

标签:编码,视频流,FFmpeg,rtsp,subtype,报错,大华,摄像头,urlcode
From: https://www.cnblogs.com/badaoliumangqizhi/p/17998680

相关文章

  • Qt 解决qtcreator工程文件例程报错error: cannot initialize object parameter of typ
    qt下载好并且环境配置完成,kits和qt都已配置完成在qtcreator中,在终端手动编译qmakemake都完全没问题,但是在qtcreator中却报错。即使是新建工程例程都报错。版本qt5.6.0qtcreator4.11.0报错main.cpp:96:error:cannotinitializeobjectparameteroftype‘QWidget’wi......
  • Qt 使用MSVC2017编译报错: C1083:无法打开包括文件: “stddef.h“的解决方案
    之前安装过QT的好几个版本:5.9,5.12,5.15,编译过项目。现在使用QT5.12.6+MSVC2017编译项目出现如下图所示报错,困扰了我2天。一开始,我通过卸载重装QT和 VS2017 都没有解决问题。今天晚上找到一个办法,就是在QT“项目”设置里面将头文件目录配置进去,终于将问题解决......
  • gitclone正常,但是git submodule报错Permission denied
    根本原因是,git这种形式没有权限参考https://www.hangge.com/blog/cache/detail_1561.html......
  • vs+qt中使用opengl及关键报错“无法打开包括文件: no such file or directory”与“err
    参考链接https://blog.csdn.net/qq_22533607/article/details/79792083http://t.csdnimg.cn/T8II5http://t.csdnimg.cn/JP8k7基础准备:vs中配置qt插件(略)关键步骤:创建QtWidgetApplication项目将BaseClass修改成QWidget,方框中的内容可以不勾,个人习惯ui文件中添加open......
  • kubeadm init过程报错解决
    1、问题kubeadminit初始化kubesphere集群的时候遇到如下错误:1)错误1:W061315:49:11.5500292140images.go:80]couldnotfindofficiallysupportedversionofetcdforKubernetesv1.27.2,fallingbacktothenearestetcdversion(3.5.7-0)[wait-control-plane]......
  • MySQL建索引报错:BLOB/TEXT column used in key specification without a key length
    MySQL建索引报错:BLOB/TEXTcolumnusedinkeyspecificationwithoutakeylength因为text类型的字段值太长,没办法为全部内容建立索引,只能指定前多少位字符建立索引;就像这样createindex`索引名`on表名(字段名(600));所以能用varchar能放下的尽量使用varchar吧......
  • pyinstaller -noconsole报错win32ctypes.pywin32.pywintypes.error: (225, '', '无法
    将pyinstaller6.3.0,卸载后,安装6.2.0重新打包即可https://www.cnblogs.com/uoky/p/17916300.html但是使用-w或者--noconsole就会报错win32ctypes.pywin32.pywintypes.error:(225,'','无法成功完成操作,因为文件包含bingdu或潜在的垃圾软件。')......
  • FFmpeg的录制桌面窗口,摄像头,麦克风的命令
    FFmpeg的录制命令命令的作用它可以捕捉桌面窗口,摄像头的视频流和麦克风的音频流。命令的格式ffmpeg[输入格式][输入选项]-i[输入设备索引][输出选项]输出文件其中输入选项和输出选项是可选的,根据实际需要进行修改。输入格式:Windows:dshow:DirectShow输入格式,用......
  • IDEA编译报错:Error:Kotlin: Module was compiled with an incompatible version of Ko
    问题Error:Kotlin:ModulewascompiledwithanincompatibleversionofKotlin.Thebinaryversionofitsmetadatais1.6.0,expectedversionis1.1.13.Warning:Kotlin:RuntimeJARfilesintheclasspathshouldhavethesameversion.Thesefileswerefoundi......
  • FFmpeg音视频格式转换命令
    FFmpeg音视频格式转换命令命令的用处它可以转换音频,视频的格式,例如将.mp4转为.avi;将.mp3转为.wav。并且在转换时可以指定转换的帧率,比特率,分辨率,指定编解码器等等等等操作。命令的格式ffmpeg-i[输入文件名][参数][输出文件名]输入文件名要转换的文件,因为加了-i,所以可以......