私人论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3452|回复: 12

直播软件

[复制链接]

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
发表于 2018-6-8 11:31:50 | 显示全部楼层 |阅读模式
服务器端:

1、Win 下可使用 nginx-rtmp-win32
https://github.com/illuspas/nginx-rtmp-win32

2、编译更强大的 nginx-http-flv-module
https://github.com/winshining/nginx-http-flv-module

3、稍显复杂的 Simple-RTMP-Server
https://github.com/ossrs/srs win版 https://github.com/illuspas/srs-win32

4、Node.js 平台的 Node-Media-Server
https://github.com/illuspas/Node-Media-Server

5、EasyDarwin 流媒体平台框架
http://www.easydarwin.org/

6、纯 Go 写的直播服务器
https://github.com/gwuhaolin/livego

7、Adobe Flash Media Server

8、Windows Media Service

rtmp推流软件
1、Adobe Media Encoder(原来叫 Adobe Flash Media Live Encoder)
2、目睹直播
http://mudu.tv/手机推流工具:http://android.myapp.com/myapp/d ... lisher&ADTAG=mobile
桌面直播助手:http://mudu.tv/?a=LiveTool#pc

Windows Media Encoder

前端

1、Bilibili 开源的 Flv.js
https://github.com/Bilibili/flv.js



目睹直播推流工具_2.1_21.7z

11.42 MB, 下载次数: 168

回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-9 11:53:05 | 显示全部楼层
在 Windows7 x64 下编译了个 nginx-http-flv-module

额。。。是 32 位的

nginx-flv_20180609.7z

1.42 MB, 下载次数: 147

回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-15 09:57:38 | 显示全部楼层
on_publish http://127.0.0.2/rtmp_on_publish.php;
推流验证文件,播放验证同这个差不多。

<?php
/*
ob_start();
var_dump($GLOBALS);
$str = ob_get_clean();
ob_end_clean();
file_put_contents('a.txt',$str,FILE_APPEND);
header('HTTP/1.1 403 Forbidden');
*/

#rtmp://d.x.com/live/test?key=6c6a2cb0b51877e2&date=20371231
#key md5(live_20371231_test,16) = 6c6a2cb0b51877e2

$name = $_POST['name'] ?? '';
$key = $_POST['key'] ?? '';
$date = $_POST['date'] ?? '';

//可加黑名单

if($date !== '' && $key !== '' && $name !== ''){
        $today = date('Ymd');
        if(intval($today) <= intval($date)){
                $str = 'live_' . $date . '_' . $name;
                $md516 = substr(md5($str), 8, 16);
                if($md516 === $key){
                        header('HTTP/1.1 200 OK');
                }else{
                        header('HTTP/1.1 403 Forbidden');
                }
        }else{
                header('HTTP/1.1 403 Forbidden');
        }
}else{
        header('HTTP/1.1 403 Forbidden');
}

回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-15 10:01:58 | 显示全部楼层
nginx 配置实例

worker_processes 1;
#指明了nginx要开启的进程数。最大可设置为CPU的内核数的2倍。

events {
#包含nginx中所有处理连接的设置
        worker_connections 1024;
        #每个工作进程的最大并发连接数量
}

rtmp {
    server {
        listen 1935;
                application live {
                        #rtmp://d.x.com/live/test?key=6c6a2cb0b51877e2&date=20371231
                        #key md5(live_20371231_test,16) = 6c6a2cb0b51877e2
                        live on;
                        on_publish http://127.0.0.2/rtmp_on_publish.php;

                        #pull rtmp://live.hkstv.hk.lxdns.com/live/hks  name=hks;

                        hls on;
                        #对视频切片进行保护,这样就不会产生马赛克了。
                        wait_key on;
                        #切片视频文件存放位置。
                        hls_path www/live_hls;
                        #http://d.x.com:10800/live_hls/hks.m3u8
                        #每个视频切片的时长。
                        hls_fragment 3s;
                        #总共可以回看的事件。
                        hls_playlist_length 12s;
                        #连续模式。
                        hls_continuous on;
                }
    }
}

http {
        include mime.types;
        default_type application/octet-stream;
        sendfile on;
        keepalive_timeout 65;
        client_max_body_size 40m;
        gzip on;
        server_names_hash_bucket_size 64;
        error_page        500 502 503 504  /50x.html;
       
        #关闭访问日志
        access_log nul;

#直播
        server {
                listen 10800;
                server_name d.x.com;
                root www;
               
                location /flv {
            #提供 http-flv 流
            flv_live on;
            #url 格式为 http://example.com:8080/live?por ... amp;stream=mystream
            #port 为 rtmp 的监听端口,默认1935
            #app 为 rtmp 的应用名称
            #stream 为 rtmp 的流名称
            #http://d.x.com:10800/flv?app=live&stream=test
            #分块传输
            chunked_transfer_encoding  on;

            #添加额外的HTTP标头
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
                 }
        }

        server {
                listen 10800 default_server;
                server_name _;
                return 503;
        }
}


回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-16 08:58:56 | 显示全部楼层
播放页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-control" content="no-cache">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<title>直播测试</title>
<script src="https://cdn.bootcss.com/flv.js/1.4.2/flv.min.js"></script>
<style>
html,body,video{
        margin:0;
        padding:0;
        width:100%;
        height:100%;
}
</style>
</head>
<body>
<video id="videoElement" name="videoElement" class="centeredVideo" controls autoplay>
        Your browser is too old which doesn't support HTML5 video.
        <source id="hls_src" src="" type="application/x-mpegURL"/>
</video>
<script>
var videoElement = document.getElementById('videoElement');
if (flvjs.isSupported()) {
        var flvPlayer = flvjs.createPlayer({
                type: 'flv',
                url: 'http://d.x.com:10800/flv?app=live&stream=test'
        });
        flvPlayer.attachMediaElement(videoElement);
        flvPlayer.load();
        //flvPlayer.play();
}else{
        document.getElementById("hls_src").src = "http://d.x.com:10800/live_hls/test.m3u8";
        videoElement.load();
        //videoElement.play();
}
</script>
</body>
</html>

回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-16 09:00:04 | 显示全部楼层
<source src="movie.mp4" type="video/mp4" />
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-16 16:25:34 | 显示全部楼层
ffmepg
https://ffmpeg.zeranoe.com/builds/

首先将视频文件转为视频编码h.264,音频编码aac格式的mp4文件

1、使用 ffprobe 查看文件编码方式:
ffprobe youku.mp4

如果不是 mp4 的,可以用如下命令进行转
ffmpeg -i youku.mp4 -acodec copy -vcodec copy youkuv.mp4

将 mp4 转为完整的 ts
ffmpeg -i youkuv.mp4 -c copy -bsf h264_mp4toannexb youku.ts
或者:
ffmpeg -i youku.mp4 youku.ts

将ts切片,并生成m3u8文件

ffmpeg -i youku.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 youku%03d.ts

其中:
segment 就是切片,
-segment_time 表示隔几秒进行切一个文件
上面命令是隔 5s,你也可以调整成更大的参数。
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-6-16 17:06:44 | 显示全部楼层
格式问题
直播,PC 端用 http-flv ,移动端用 HLS;
点播,PC 端用 flv,移动端用 mp4 或 HLS。

mp4 格式在 PC 端与移动端都支持,只是文件比 flv 格式大(待考)。
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-8-23 16:30:35 | 显示全部楼层
nginx 1.15.2 70c6b08973a0 20180811
pcre-8.42
zlib-1.2.11
openssl-1.1.1-pre9
nginx-http-flv-module 81ec349 20180814

nginx_1.15.2_70c6b08973a0.7z

1.31 MB, 下载次数: 151

回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-9-29 10:33:15 | 显示全部楼层
nginx 1.15.4 cd4fa2fab8d8 20180929
pcre-8.42
zlib-1.2.11
openssl-1.1.1
nginx-http-flv-module 375b235 20180922

nginx_1.5.4_cd4fa2fab8d8.zip (1.75 MB, 下载次数: 143)
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-10-12 11:36:47 | 显示全部楼层
nginx 1.15.5 8b68d50090e4 20181003
pcre-8.42
zlib-1.2.11
openssl-1.1.1
nginx-http-flv-module 5471995 20181010

nginx_1.15.5_8b68d50090e4.zip (1.74 MB, 下载次数: 96)
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-11-17 09:37:57 | 显示全部楼层
nginx 1.15.6 9ca82f273967
pcre-8.42
zlib-1.2.11
openssl-1.1.1
nginx-http-flv-module f737c05 20181117

nginx_1.15.6_9ca82f273967.zip (1.71 MB, 下载次数: 98)
回复

使用道具 举报

156

主题

303

帖子

1664

积分

新手上路

Rank: 1

积分
1664
 楼主| 发表于 2018-12-27 16:44:22 | 显示全部楼层
nginx 1.15.8 6d15e452fa2e 20181227

pcre-8.42
zlib-1.2.11
openssl-1.1.1a
nginx-http-flv 98af393 20181227

nginx_1.15.8_6d15e452fa2e.zip (1.74 MB, 下载次数: 103)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|私人论坛

GMT+8, 2026-2-20 10:11 , Processed in 0.043010 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表