浏览器中播放rtsp(不依赖vlc插件)

之前是通过vlc插件来显示rtsp流视频,但是限制很多:1.要安装vlc的插件2.插件目前只支持ie,像chrome46版本之后根本就无法使用,于是上网搜索得出rtsp->rtmp->videoJS这样的一个方案,具体流程如下:

.rtsprtmp

1.首先测试rtsp链接是否有效,这里用的vlc midia player:

如下图所示 媒体->打开网络串流->输入rtsp链接->播放,正常的话就可以看到画面了。



2.接下来就是转换,用的是nginx-rtmp-module+Ffmpeg的方案,首先下载nginx-rtmp-module,按照说明双击nginx.exe启动nginx,正常的话浏览器输入http://localhost:8080/就可以进demochrome记得要允许允许flash

FFmpeg转码用的这个方案 java封装FFmpeg命令,下载好后不改源码的话直接引入FFmpegCommandHandler.jar这个jar包即可。

启动转码的代码:

@Override
public String startTranscoding(Camera camera)  {String ip = camera.getIp();String id = "fourfour";if (manager == null) {manager = new FFmpegManagerImpl();}Map<String,String> map = new HashMap<>();map.put("appName", id);map.put("input", "rtsp://admin:admin1234@" + ip + ":554");map.put("output", "rtmp://localhost/live/");map.put("codec", "h264");map.put("fmt", "flv");map.put("fps", "25");map.put("rs", "640x360");map.put("twoPart", "0");// 执行任务,id就是appName,如果执行失败返回为nullreturn manager.start(map);
}

代码运行日志截图:



可以看到执行的命令,具体参数就不做解释了,可以自行百度;这样我们就获得了rtmp://localhost/live/fourfour这个rtmp流。

同样的我们可以先用vlc media player先测试下这个流,操作方法同上:



顺利的话将会出现画面。

3.前端显示

前端主流的有jwplayervideoJS等方案,这里选择的免费的VideoJS,主要代码如下:

//videoJS播放器实例
var player = null;//通过videoJs进行rtmp播放
$scope.rtmpReview = function (decoder) {console.log("点解的decoder", decoder);if (decoder.style === 1) {var cameraIp = decoder.head;var id = "fourfour";$http.post("/decoder/decoderManager/transcode", {ip:cameraIp}).success(function (data) {console.log("transcode:", data);}).error(function (data) {console.log(data);});$("#videoBody").append("<video id=\"my-video1\" class=\"video-js vjs-big-play-centered\" controls preload=\"auto\" width=\"560\" height=\"360\" poster=\"\" data-setup=\"{}\">" +"<source type=\"rtmp/flv\">" +"<p class=\"vjs-no-js\">To view this video please enable JavaScript, and consider upgrading to a web browser that" +"<a href=\"http://videojs.com/html5-video-support/\" target=\"_blank\">supports HTML5 video</a>" +"</p></video>");var videoUrl = "rtmp://localhost/live/" + id;player = videojs('my-video1');videojs('my-video1', {controls: true,autoplay: true,preload: 'auto'}, function () {player.src(videoUrl);player.load(videoUrl);player.play();this.on('ended', function() {videojs.log('Awww...over so soon?!');});});$("#videoWatchModal").modal({show: true, keyboard: false, backdrop: 'static'});}
};

这里是将播放器放在了模态框上,效果如下:





好了,这样我们就实现了rtsp在浏览器中播放的一整套流程。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯视频中如何把视频进行收藏

在线观看视频的时候&#xff0c;把喜欢的视频收藏下来&#xff0c;可以方便以后再看。腾讯视频如何进行收藏呢? 腾讯下载视频怎么转格式_腾讯视频中如何把视频进行收藏 1、找到桌面上的快捷方式&#xff0c;双击打开程序 腾讯下载视频怎么转格式_腾讯视频中如何把视频进行收…

IP地址开启https

证书生成导入 keytool -genkey -alias ssozzjz5 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -dname "CN192.168.1.128,OUcsoa,Ocsoa,LFZ,STFZ,CCN" -ext sanip:192.168.1.128 -validity 3600 -keystore D:\ssozzjz5.keystorekeytool -export -f…

搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤

搜狗浏览器中如何删除自带工具?最近有小伙伴问我想要删除搜狗浏览器中的自带工具不知道该怎么办&#xff0c;今天小编就给大家带来删除搜狗浏览器中自带工具的方法步骤&#xff0c;让我们一起来看看吧。 方法/步骤 1、我们需要先打开搜狗浏览器&#xff0c;选择右上角的工具…

ElasticSearch里面关于日期的存储方式,解决差8个小时

在ElasticSearch里面最常用的就是时间字段了&#xff0c;经常会在群里看到一些小伙伴提出有关时间的问题&#xff0c;为什么es查询的时间跟我实际看到的时间差8个小时呢。如果我们了解了ElasticSearch底层的时间存储方式就会比较容易的理解这个问题。 下面散仙先普及下时区的知…

谷歌浏览器如何收藏网站 谷歌浏览器收藏网站的方法步骤

谷歌浏览器如何收藏网站?当我们在使用谷歌浏览器想要收藏网站应该怎么办呢?今天小编就给大家带来谷歌浏览器收藏网站的具体方法步骤&#xff0c;让我们一起来看看吧。 方法/步骤 1、我们需要先在谷歌浏览器中随便打开一个网站; 2、然后我们在谷歌浏览器网址输入栏的最右边…

syslog发送日志而docker容器接收不到的问题

syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议 ,所以要判断其到底使用了什么端口类型 logstash:image: zzjz/logstash:6.2.2container_name: logstashrestart: alwaysports:- 10010:10010- 10011:10011- 10012:10012- 1…

IE浏览器网页无法缩放怎么办 解决IE浏览器网页无法缩放的方法

IE浏览器网页无法缩放怎么办?我们在使用IE浏览器浏览网页的时候&#xff0c;想要缩放网页&#xff0c;却发现无法缩放。该怎么解决这个问题?下面就是解决IE浏览器网页无法缩放的方法&#xff0c;一起来看看吧! 今天使用了一下IE浏览器&#xff0c;发现无法对缩放比例进行调整…

ElasticSearch的update_by_query使用

ElasticSearch的update_by_query语句可以很方便地为原有es表修改字段和新增字段,如下面的例子所示: 1.将资产表中area为空的字段赋值为无 POST soc-system/_update_by_query {"script": {"source": "ctx._source[area]无" },"query"…

猎豹浏览器怎么设置允许弹出窗口 允许弹窗设置方法详解

频频出现的广告弹窗&#xff0c;让不少人选择打开所用浏览器的弹窗拦截功能。不过&#xff0c;此举也带来了一点小麻烦&#xff0c;那就是容易误伤“友军”&#xff0c;一些必要的弹窗也会被强制拦截!那么&#xff0c;该怎么解决这一问题呢?下面小编就以“猎豹浏览器”为例&am…

JDK线程池CompletionService的使用

最近使用多线程优化了一个非常耗时的ping任务&#xff0c;下面的是未优化的源代码&#xff0c;大致就是遍历es取出的list&#xff0c;然后循环判断是否能ping通&#xff1a; SearchResponse searchResponse client.search(searchRequest); Iterator it searchResponse.getHi…

win7系统应用程序安装不了的解决教程

软件是计算机数据和指令的集合&#xff0c;一般有系统软件和应用软件。系统是应用软件安装的平台&#xff0c;但是由于一些设置或者故障就会出现安装不了软件的情况&#xff0c;win7系统无法安装应用程序怎么解决?就此问题&#xff0c;下面就来跟大家聊聊win7系统应用程序安装…

解决mediawiki上传文件文件名是中文上传失败

公司内部的wiki是用的mediawiki&#xff0c;其它都还好就是上传文件时文件名中有中文就不能上传&#xff0c;这次下决心要修复这个问题&#xff0c;一开始我还以为是哪里需要配置一下&#xff0c;然后搜了半天发现这是一个官方的bug&#xff1a; 好吧&#xff0c;是官方bug也好…

win7系统字体模糊发虚不清晰的解决方法

如果我们使用的电脑操作系统是win7的话&#xff0c;当我们操作的时候发现系统的字体显示变得模糊发虚不清晰的情况不知道怎么解决的话&#xff0c;小编觉得我们可以先排查一下是自己电脑显示器的原因还是系统设置的问题。一般来说都是需要在电脑设置一下即可。详细解决步骤就来…

Elasticsearch Curator使用

介绍 Elasticsearch Curator通过以下方式帮助您策划或管理您的Elasticsearch索引和快照&#xff1a; 从集群中获取索引&#xff08;或快照&#xff09;的完整列表&#xff0c;作为可操作列表迭代用户定义的过滤器列表&#xff0c;根据需要逐步从此可操作列表中删除索引&#…

win7系统怎么更改语言及字体

win7系统中的字体和语言等&#xff0c;都是我们在使用电脑时&#xff0c;非常重要的东西&#xff0c;有部分用户们想要更改系统的默认的字体或者语言等&#xff0c;不知win7系统怎么更改语言及字体的话&#xff0c;就快来看看win7系统语言及字体等问题解决攻略吧~ win7系统怎么…

DHCP租用信息导出方案

方法一 使用“netsh dhcp server export”比“netsh dhcp server dump”的优点是export命令还将从DHCP服务器提取并存储活动租约信息(active lease information);这样&#xff0c;当我们恢复时&#xff0c;活动租约也会从该时间点恢复。 &#xff08;相反&#xff0c;dump命令…

windows7系统内存占用过高的解决方法

电脑的内存空间取决了电脑的运行流畅度&#xff0c;时间一久内存就会爆满导致占用过高这样就会使电脑变得延迟&#xff0c;那么windows7系统内存占用过高怎么办呢?下面就一起来看看windows7系统内存占用过高的解决方法吧。 windows7系统内存占用过高的解决方法&#xff1a; …

Metricbeat添加ip address信息

Metricbeat默认输出信息里没有ip地址&#xff0c;6.3版本之后可以通过add_host_metadata 来开启附带ip信息&#xff08;没测试过&#xff09; 原本我是通过修改modules.d/system.yml文件&#xff0c;在每项后面加自定义fields.ip字段来添加ip信息&#xff0c;类似下面这样&…

UC浏览器怎么清除缓存

UC浏览器怎么清除缓存 当我们的浏览器用久了&#xff0c;垃圾就多了&#xff0c;快点来让你的浏览器减减肥吧。以UC浏览器为例小编教大家怎么让你的浏览器减肥&#xff0c;甩掉不必要的垃圾。分享一篇UC浏览器清除缓存方法&#xff0c;希望能帮到大家 1、双击打开你的uc浏览器…

前端获取不了rest请求自定义headers的问题

前端response中的自定义header信息默认同一域中可见 在crossdomain跨域情况下需要在服务器端增加Access-Control-Expose-Headers的支持 例如在springboot中需要使用addExposedHeader添加指定返回头&#xff1a; Configuration public class CORSConfiguration implements WebM…