- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
目前主流的几种直播协议
协议 | 传输方式 | 视频封装格式 | 延时 | 数据分段 | html播放 |
---|---|---|---|---|---|
httpflv | http | flv | 低 | 连续 | 可通过html5解封包播放(flv.js) |
rtmp | tcp | flv tag | 低 | 连续 | 不支持 |
dash | http | ts文件 | 高 | 切片 | 可通过html5解封包播放(hls.js) |
hls | $1 | mp4 3gp webm | 高 | 切片 | 如果dash文件列表是mp4webm文件,可直接播放 |
RTMP(Real Time Messaging Protocol)
:基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议。
HLS(HTTP Live Streaming)
:基于HTTP的,是Apple公司开放的音视频传输协议。
HTTP FLV
:将RTMP封装在HTTP协议之上的,可以更好的穿透防火墙等。
我们目前使用的rtmp
流,库使用video-js
,不过这里需要注意的一点是我们要使用x5
版本的,因为x6
版本及以上不支持rtmp
(其实就是不支持flash
了);
所以这里也放上资源下载连接
video.js v5.18.4版 2017-3-24更新(支持ie8)
video-js.swf
html
<div id="content">
<video id="rtmpVideo" class="video-js vjs-default-skin vjs-big-play-centered" width="100%" height="100%">
<!-- source放rtmp流地址 -->
<source src="rtmp://168.0.0.157:1935/live/stream11" type="rtmp/flv">
<p class="vjs-no-js">
您的浏览器不支持HTML5,请升级浏览器。
</p>
</video>
</div>
123456789
js
//设置本地flash插件地址
videojs.options.flash.swf = "/js/video-js-5.8.2/video-js.swf";
// 初始化视频,设为全局变量
var myPlayer = videojs('rtmpVideo', {
autoplay: true,
controls: true,//控制条
poster: "/images/camera/playStop.png",
techOrder: ["flash"],//设置flash播放
muted: true,// 静音
preload: "auto",// 预加载
language: "zh-CN",// 初始化语言
playbackRates: [1, 2, 3, 4, 5, 8, 10, 20]// 播放速度
}, function () {
console.log("--------------成功初始化视频--------------");
myPlayer.one("playing", function () { // 监听播放
console.log("开始播放");
});
myPlayer.one("error", function (error) { // 监听错误
console.error("监听到异常,错误信息:%o",error);
});
});
因为我在写这篇文章的时候后台断掉了调试,没有继续推送,所以没有画面
1、播放器在左上角并且提示无法加载插件
答:下载新的flash插件,因为我用的50版本,都不提示我更新flash,新的chrome版本会提示下载更新。
2、本地html页面打开播放不了
答:需要本地服务器环境支持,自己起一个本地服务器然后扔进去再打开。
我需要从 RTMP 流中裁剪视频并将其发送到另一个总是变化的 RTMP 服务器。我的理解是我应该使用 nginx-proxy和 ffmpeg ,谁能帮我设置一下? 我想我需要将流发送到像 /strea
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
如何在gstreamer中混合两个rtmp流? Src: nginx-rtmp 摄像头 - h.264/speex接收器:nginx-rtmp GStreamer 0.10 或 1.0 ------
我正在尝试组合/合并两个 rtmp 流,然后将它们发布到另一个流 例如: ffmpeg -i rtmp://ip:1935/live/micMyStream7 -i rtmp://ip:1935/li
有什么方法可以拒绝用户在其他网站上播放我的流吗?我正在运行带 rtmp 模块的 nginx,ubuntu 13。这是我的 nginx.conf rtmp { server {
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我正在开发一个使用 SoundManager2 的网络应用程序。在我的头撞到墙上并且没有让我的音乐流式传输之后,我终于在创建新的 SoundManager 声音时切换了一些 URL。 这是我之前使用的
谁能指导我做上面提到的? 基本上我想要的: 将单个视频文件流式传输到 RTMP 服务器(在我的情况下为 nginx)到链接的 python 脚本: rtmp:///stream/ 因此,理想情况下,视
我正在开发一个需要通过 rtmp 协议(protocol)进行实时广播流的 iphone 应用程序。我一直在努力寻找解决方案。我所知道的是我应该能够使用 rtmp-dump。但我是iphone dev
我正在尝试将传入的 rtmp 流保存在我的服务器上作为 mp4 文件。我正在使用 nginx-rtmp模块并从 flv 更改容器至mp4在 exec_record_done指示。这是使用 ffmpeg
这是我尝试运行的脚本,我相信问题出在这里: #!/bin/bash GIF=/home/stream1/85012216.gif STREAM_KEY=thisisasecret URL=rtmp:/
输出视频: https://youtu.be/VxfoBQjoY6E 解释: 我想:在 Opencv 中处理摄像头流并将其推送到 RTMP 服务器。我已经设置了 NGINX(RTMP 模块),并且已经
我正在尝试遵循本指南 - http://www.helping-squad.com/nginx-rtmp-compile-for-windows/ 为 Windows 编译 nginx rtmp,但是
我是这个论坛的新手,我的英语水平不是最好的! 我有一个网站,在那里我发布了摄像机的视频流,以显示在嵌套时间现场发生的事情!一个具有高 IT 技能的人为我构建了一个小服务器用于重新流 (Datarhei
我有一个闪存媒体服务器。我想在 Android 设备中创建一个实时视频聊天应用程序。 我目前正在使用 RTMP 方法来保护我的应用程序,但我不确定 RTMP 是否是保护我的应用程序的正确安全机制?你能
文件结束时如何保持流连接处于事件状态? 我正在使用 ffmpeg 4 我尝试了超时选项,但它不起作用,所以我的例子是: ffmpeg -i input.webm -timeout -f flv rtm
我有一台服务器,目前正在流出 RTMP 媒体,我需要以最小延迟(2-3 秒)播放它。 现在我正在使用 CRTMPServer 来使用流,但是由于没有不依赖 Flash 的 RTMP 播放器,因此该解决
我正在寻找一种解决方案,使用浏览器(Javascript)将笔记本电脑摄像头的数据发送到 rtmp 服务器(如 facebook live 或 youtube)。我做了研究,但没有运气。我得到了什么:
[已解决] -- 最终编辑中的解决方案 我正在使用 ffmpeg 录制 rtmp 直播,并希望添加一个标志,该标志将在新数据停止到达时自动停止处理。 如果我启动和停止脚本(通过按需终止进程来停止),一
我正在尝试从 ubuntu 启动实时(非点播)RTMP 流,但我仅使用 RTSP 成功通过 VLC 流式传输 vlc -vvv ./videos/test.mp4 --sout '#rtp{dst=1
我是一名优秀的程序员,十分优秀!