?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
  
一. FFmpeg构建
#FFmpeg是解码,编码,转码,复用,解复用,流,过滤和播放的领先多媒体框架。所有版本至少需要Windows 7或Mac OS X 10.10
 
下载地址: https://ffmpeg.zeranoe.com/builds/
 
1. 下载压缩包(选择Windows32-bit/Shared).
 
2. 解压至指定目录
#我的解压目录是: D:\ffmpeg_builds
 
3. 将FFmpeg加入环境变量
此电脑 => 属性 => 高级系统设置 => 高级 => 环境变量(找到系统变量(S)项,然后找到 Path) => 新建 => 编辑加入地址: D:\ffmpeg_builds\bin
 
4. 打开一个cmd窗口,执行FFmpeg帮助命令,检查命令是否安装成功
C:\Users\13485> ffmpeg -h
ffmpeg version N-93278-g73b62f3026 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20190212
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil      56. 26.100 / 56. 26.100
libavcodec     58. 47.102 / 58. 47.102
libavformat    58. 26.101 / 58. 26.101
libavdevice    58.  6.101 / 58.  6.101
libavfilter     7. 48.100 /  7. 48.100
libswscale      5.  4.100 /  5.  4.100
libswresample   3.  4.100 /  3.  4.100
libpostproc    55.  4.100 / 55.  4.100
Hyper fast Audio and Video encoder
....
 
5. FFmpeg安装成功
 
 
参考命令:
#因为我们流媒体服务器配置的匹配参数是: mytv ,所以我们这里的推流及拉流地址都是: rtmp://ip:port/mytv/* (使用当前命令的前提是,流媒体服务器已经搭建完毕)
 
1. 重新编码推送demo.mp4文件
> ffmpeg.exe -i ./demo.mp4 -f flv rtmp://10.1.30.128:1935/mytv/demo1
 
2. 基于原媒体文件直接进行推送
> ffmpeg.exe -i ./demo.mp4 -c copy -f flv rtmp://10.1.30.128:1935/mytv/demo1
 
3. 播放指定拉流地址的画面
> ffplay.exe rtmp://10.1.30.128:1935/mytv/demo1
 
 
 
 
 
二. nginx添加流媒体模块: nginx-rtmp-module
GitHub地址: https://github.com/jiangshengxin/nginx-rtmp-module
 
 
1. > mkdir /usr/local/nginx/module/ && cd /usr/local/nginx/module/
 
 
2. > git clone https://github.com/jiangshengxin/nginx-rtmp-module.git
 
 
3. > nginx -V
nginx version: nginx/1.14.1
built by gcc 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)
built with OpenSSL 1.0.2o  27 Mar 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/home/bpit/lnmp1.5/src/openssl-1.0.2o --add-module=/usr/local/nginx/module/nginx-rtmp-module
 
 
4. > cd ~/lnmp1.5/src/nginx-1.14.1
 
 
5. > /configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/home/bpit/lnmp1.5/src/openssl-1.0.2o --add-module=/usr/local/nginx/module/nginx-rtmp-module
 
 
6. > mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
 
 
7. > cp ~/lnmp1.5/src/nginx-1.14.1/objs/nginx /usr/local/nginx/sbin/
 
 
8. > nginx -V
nginx version: nginx/1.14.1
built by gcc 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)
built with OpenSSL 1.0.2o  27 Mar 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/home/bpit/lnmp1.5/src/openssl-1.0.2o --add-module=/usr/local/nginx/module/nginx-rtmp-module
 
 
 
三. 配置基于nginx的流媒体服务( nginx添加流媒体模块: nginx-rtmp-module ) 以及 状态统计
 
1. 配置流媒体服务,编辑nginx.con 配置文件,并插入以下配置内容
    > vim /usr/local/nginx/conf/nginx.conf
    //------------------------------------------------ 文件内容如下   begin
 
    pid        /usr/local/nginx/logs/nginx.pid;
 
    #Specifies the value for maximum file descriptors that can be opened by this process.
    worker_rlimit_nofile 51200;
 
    #-------------这是要插入的内容 begin
    rtmp_auto_push on;
 
    rtmp {
        server {
            listen 1935;
 
            application mytv {
                live on;
            }
        }
    }
    #-------------这是要插入的内容 end
 
    //------------------------------------------------ 文件内容如下   end
 
 
2.  配置流媒体服务的状态统计 #我这里单独新建了rtmp目录,把配置放在了 /usr/local/nginx/conf/vhost/rtmp 下面
> vim /usr/local/nginx/conf/vhost/rtmp/rtmp_stats_8080.conf
//------------------------------------------------ 文件内容如下   begin
 
server {
 
    listen      80;
    # This URL provides RTMP statistics in XML
    location /stat {
    rtmp_stat all;
 
        # Use this stylesheet to view XML as web page
        # in browser
        rtmp_stat_stylesheet stat.xsl;
    }
 
    location /stat.xsl {
    # XML stylesheet to view RTMP stats.
    # Copy stat.xsl wherever you want
    # and put the full directory path here
    root /data/rtmp;
    }
 
}
 
//------------------------------------------------ 文件内容如下   end
 
3. 重新载入nginx配置(如果不生效,请重启nginx)
> nginx -s reload
 
  


---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。