首页 > 其他分享 >ZLMeidiaKit实现推流时(FFmpeg推rtmp流)时非127.0.0.1被拒绝需要鉴权的解决方式

ZLMeidiaKit实现推流时(FFmpeg推rtmp流)时非127.0.0.1被拒绝需要鉴权的解决方式

时间:2023-04-22 16:57:51浏览次数:56  
标签:127.0 http FFmpeg stream 0.1 hook ZLMeidiaKit 鉴权

场景

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

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

在上面搭建ZLMediaKit的基础上。

ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放:

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

使用FFmpeg进行rtmp模拟推流实现。

但是推流时的地址是127.0.0.1

ffmpeg.exe -re  -stream_loop -1 -i D:\2.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/hls/123456123_2
pause

但是如果将127.0.0.1修改为实际Ip地址则会因为鉴权默认,导致推流失败。

注:

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

实现

1、需要保留鉴权,则在进行推流时传递sercet参数。

ffmpeg.exe -re -i D:\test\1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://10.229.36.31:1935/hls/123456123_0?secret=8725c73f7-bb6b-4889-你自己的sercet

secret的位置如下:

 

2、关闭推流时的鉴权

我们向ZLM流媒体服务器推流,要使用鉴权就必须得开启ZLM服务的HOOK,配置文件中enable要置为1。

[hook]
admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
enable=0
on_flow_report=
on_http_access=
on_play=
on_publish=http://127.0.0.1:18080/index/hook/on_publish
on_record_mp4=
on_record_ts=
on_rtsp_auth=
on_rtsp_realm=
on_server_started=http://127.0.0.1:18080/index/hook/on_server_started
on_shell_login=http://127.0.0.1:18080/index/hook/on_shell_login
on_stream_changed=http://127.0.0.1:18080/index/hook/on_stream_changed
on_stream_none_reader=http://127.0.0.1:18080/index/hook/on_stream_none_reader
on_stream_not_found=http://127.0.0.1:18080/index/hook/on_stream_not_found
timeoutSec=20

所以将hook的enable改为0就可以直接进行推流,不用传递secret参数。

 

 

3、按照官方推流鉴权流程

自行实现,这里不再实现。

https://github.com/ZLMediaKit/ZLMediaKit/wiki/ZLMediaKit%E5%AE%9E%E7%8E%B0%E6%8E%A8%E6%B5%81%E9%89%B4%E6%9D%83

 

 

标签:127.0,http,FFmpeg,stream,0.1,hook,ZLMeidiaKit,鉴权
From: https://www.cnblogs.com/badaoliumangqizhi/p/17343370.html

相关文章

  • 2023-04-21:用go语言重写ffmpeg的metadata.c示例。
    2023-04-21:用go语言重写ffmpeg的metadata.c示例。答案2023-04-21:这段Go代码演示了如何使用ffmpeg-go库中的函数来读取多媒体文件元数据,包括视频、音频等信息。它的大体过程如下:设置环境变量以加载FFmpeg动态链接库这里将FFmpeg库中的各个动态链接库路径添加到环境变......
  • ffmpeg安装
    1.官网地址,去官网下载ffmpeg源码https://ffmpeg.org2.安装ffmpeg基础依赖sudoapt-getupdatesudoapt-getinstallbuild-essentialyasmtexi2htmllibvorbis-devlibmp3lame-devlibopus-devlibx264-devlibx265-devlibvpx-devlibfdk-aac-devlibass-devlibfreety......
  • FFmpeg参数
    查看命令行参数ffmpeg-h 全局选项-y: 覆盖输出文件-volvolume:改变音量(256=正常) 每个文件的主要选项-ffmt:强制格式,设置输出格式-ccodec或者-codeccodec:编解码器名称-prepreset:预设名称-map_metadataoutfile[,metadata]:infile[,metadata]:从infile设......
  • ffmpeg可支持的编码器、解码器、封装格式、网络协议
    {ffmpeg可支持的编码器./configure--list-encodersffmpeg可支持的解码器./configure--list-decodersffmpeg可支持的封装格式./configure--list-muxersffmpeg可支持的解封装格式./configure--list-demuxersffmpeg可支持的网络协议./configure--list-protocols查看......
  • Qt音视频开发38-ffmpeg视频暂停录制的设计
    一、前言基本上各种播放器提供的录制视频接口,都是只有开始录制和结束录制两个,当然一般用的最多的也是这两个接口,但是实际使用过程中,还有一种可能需要中途暂停录制,暂停以后再次继续录制,将中间部分视频不需要录制,跳过这部分不需要的视频,而且录制的视频文件必须是能够正常播放的连续......
  • VMWare虚拟机IP变成127.0.0.1怎么办
    输入命令:dhclient-v即可如果还不好使,可以试试下面的方法(Cnetos7)打配置文件vim/etc/sysconfig/network-scripts/ifcfg-ens33打开配置文件找到ONBOOT=no要改为ONBOOT=yes默认是ONBOOT=no,它打意思是:是否随网络服务启动,eth0生效,如果为no,则ifconfig看不到eth0 ......
  • ffmpeg视频转码
    h264和avc1差别h264和avc1差别很小,都属于mp4的编码格式,有时甚至是通用的。区别仅在于:MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略。笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题。首先,从原理上了解一下这2种格式的区别:AVC1描述:H.......
  • FFmpeg开发笔记(一)搭建Linux系统的开发环境
    对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库。不过考虑到刚开始仅仅调用FFmpeg的API,不会马上去改FFmpeg的源码,因此只要给系统安装编译好的FFmpeg动态库,即可着手编写......
  • ffmpeg安装及使用
    ffmpegAcomplete,cross-platformsolutiontorecord,convertandstreamaudioandvideo官网:http://ffmpeg.org/安装linux下安装aptinstallffmpegffmpeg-hwindows下安装下载地址https://github.com/BtbN/FFmpeg-Builds/releases下载后解压配置环境变量设......
  • FFmpeg API 熟悉记录,目标:播放本地MP4
    简要熟悉api之后包括解码器,编码器,输入输出文件之后,开始分析ffplay,我们知道ffplay使用的是sdl的相关库进行播放,在这里我将把sdl舍弃,移植到android平台上即可。简单手撸播放器的想法,看了几天代码和ffplay的源码分析,和ijkplayer的部分实现思路,总结来说,大致流程图比较简单,先熟......