网页flash直播 抓取(Linux上nginx-rtmp.js的直播)
优采云 发布时间: 2021-10-22 03:12网页flash直播 抓取(Linux上nginx-rtmp.js的直播)
1、在Linux上搭建nginx-rtmp服务器
2、在树莓派上安装 ffempg
树莓派中的ffmpeg推流命令(删除-t 10,会继续推流)
ffmpeg -ss 0 -t 10 -i /dev/video0 -f flv rtmp://(ip):(端口)/(nginx服务器应用)/(自定义应用)
配置好后,将直播销售系统的网页放在nginx服务器的html文件夹中即可访问。如果有公网IP,把直播系统网页放在本地,把访问流的ip改成公网ip(也就是下面的文件)。
我的nginx目录是/usr/local/src/nginx/html/
基于jwplayer直播页面demo(本示例需要flash插件的支持,以下是h5下的实现)
demo
<p>网页直播测试
var server = window.location.hostname;
var stream_url = 'rtmp://' + server + '/hls' + '/live_stream';
//或者直接输入'rtmp://ip:1935/hls/live_stream',
// mylive 对应nginx.conf配置项application的名字
// live_stream 对应Adobe Flash Stream Media Live Encoder配置的stream名称
var thisPlayer; //保存当前播放器以便操作
$(function() {
thisPlayer = jwplayer('container').setup({
flashplayer: 'jwplayer.flash.swf',
file: 'stream_url',
width: 500,
height: 350,
//autostart: true, //如果打开此标志,在打开网页时会自动播放直播流
});
//播放 暂停
$('.player-play').click(function() {
if (thisPlayer.getState() != 'PLAYING') {
thisPlayer.play(true);
this.value = '暂停';
} else {
thisPlayer.play(false);
this.value = '播放';
}
});
//停止
$('.player-stop').click(function() { thisPlayer.stop(); });
//状态
$('.player-status').click(function() {
var state = thisPlayer.getState();
var msg;
switch (state) {
case 'BUFFERING':
msg = '加载中...';
break;
case 'PLAYING':
msg = '正在播放';
break;
case 'PAUSED':
msg = '暂停';
break;
case 'IDLE':
msg = '停止';
break;
}
alert(msg);
});
//获取进度
$('.player-current').click(function() { alert(thisPlayer.getPosition()); });
//获取视频长度
$('.player-length').click(function() { alert(thisPlayer.getDuration()); });
});
</p>
基于 video.js 的现场演示
Video.js 是一个通用的 JS 库,用于在网页上嵌入视频播放器。 Video.js 会自动检测浏览器是否支持 HTML5,如果不支持 HTML5 会自动使用 Flash 播放器。
video.js 5及以下版本可以直接调用video.js,video.js 6及以上版本需要调用videojs-flash.js才能播放rtmp流。
基于video.js实现rtmp流的直播
// 当浏览器不支持HTML5播放器的时候自动唤起flash播放器
videojs.options.flash.swf = 'video-js.swf';
var player = videojs('player'); //player为页面video元素的id
player.play(); //播放
———————————————————