大体架构
: V' F3 d/ E' g! e! p
* @. M7 C) u0 t% Hsrs+ffmpeg+第三方(阿里云,腾讯云等),因为不是专门做直播平台,所以借助第三方平台(
& p7 e ^3 R; |6 }& d+ B7 K! Y+ i8 b
服务器,带宽,cdn可以省不少心)。
& f9 g# i" `1 e/ F) m; X, y9 lsrs用来接收从手机客户端推来的rtmp流,ffmpeg用来对视频进行处理,比如增加logo或滤镜
. z$ ?. D2 w8 L2 [, s% V @3 }
2 _8 h# `7 Z/ [' r等,在各种技术尝试中,走过不少弯路,接收流方面还使用过netty,nginx-rtmp,流处理方面使& T# _ F) r1 R* K9 o4 a
3 _) F! [! G1 o q X, p6 X1 g, q
用过javaCV,但效果有些不理想.,java太吃内存cpu,来看一下大致的流程!
$ G9 e8 G: U% I! l4 b: L+ a( p3 c! k
srs的文档简单全面,附上git地址1 }9 t7 U- F/ O
X1 E- d' }- A8 W第一步,获取SRS。
# N# m( J: m5 o1 C8 p8 y8 B ~0 {4 ~
git clone ! j" T' V0 {+ y6 a" `7 J, l) K
cd srs/trunk+ `( s6 N5 E4 L) _3 w b
或者使用git更新已有代码:
7 u2 K6 {$ _& ^" `; G, f' }, H
6 i! X6 L: P; S; E: t2 a) |git pull
0 t% U7 l2 s% U4 v第二步,编译SRS。# E1 ?2 e: B G/ {# n4 n' n- [
( Q. c* {/ {, Y' N& C# X9 N./configure && make' F, X, O( O* p& N; X1 O
第三步,编写SRS配置文件。1 J! v' H! O% n- ^
* ]3 U6 x: i2 a Y& z将以下内容保存为文件,譬如conf/rtmp.conf,服务器启动时指定该配置文件(srs的conf文
. J* S/ w9 [6 t% u- L) S3 P
# r+ q2 [! u& D) Q9 ]) ^) d9 K# T% O9 W件夹有该文件)。
. @& x1 g* W; W% H1 e2 A. I; R2 _$ |5 f7 `0 m$ A0 P
# conf/rtmp.conf
7 L+ z2 _/ ^ }' Blisten 1935;& _' L: s. @ @: x* r" ]. x! e
max_connections 1000;. o/ p0 n" H. [' p
vhost __defaultVhost__ {+ t& q/ b3 ]8 E3 y
}
# B U6 q0 B( w第四步,启动SRS。
* M2 R9 |8 V6 ^; q$ J- K! S5 e% ]. h q, v% W" n0 o
./objs/srs -c conf/rtmp.conf4 N0 W7 N7 ^6 R) e: t5 G3 V
以上是基本配置,7 i6 h$ D6 w( O# H
+ ]# H9 p0 A4 R, g4 b' E安装成功后文件路径如下9 W, P3 E) |( Q4 \7 R
5 j% K! M8 M2 A8 w
下面是完整配置
/ |2 r: D; L- O' y7 h) T& |/ n% C8 |9 s6 I
vhost后面要写对应的推流地址或者ip.6 A) B; _0 U: l7 ~
0 D; U0 p/ x: X3 E" [
http_api 与vhost中的http_hooks为一组配置,当srs接收,停止到推流时会调用配置文件中. o" Z6 j* f# G$ q0 Q, M. i d
; u) h" m- Y! F( |- n2 Z# o
所填地址,并且将各种参数包括streamId,appid传到后台中。9 `' u" Q/ b8 \
5 V' V; O' i1 z! b
hvhost中的dvr功能是本地录制,dvr_plan有多种录制计划& X/ Q+ u' N# Y5 Z6 C& W3 S7 s
. j" n6 Y7 @1 g0 H" L. w
session:按照session来关闭flv文件,即编码器停止推流时关闭flv,整个session录制为* Z& T; n* R# c
. t+ ~; A) A/ Y2 ~) z& V" E
一个flv。' \+ a Y/ e) _7 g3 I( b
segment:按照时间分段录制,flv文件时长配置为dvr_duration和dvr_wait_keyframe。注* D0 D& l f: J& z0 h
- ~5 b- o1 W0 z3 o) Y9 f1 U; t
意:若不按关键帧切flv(即dvr_wait_keyframe配置为off),所以会导致后面的flv启动时9 A4 f# }. D0 J3 j
: f4 N3 v& W g' f1 i% F% C
会花屏。
b( i0 h/ P9 `6 c5 @) s至此srs服务器的搭建结束.
" l( ?9 p6 [7 e) |) o" |: {/ c. G. \4 Y2 R7 V( J& K, I- r4 ]: L1 D
以上就是我们总结出来的直播产品经验,希望能帮助到创业者和从业者们。自建视频直播平; C* @, Z* |0 I9 z- e) t
* S" x% P; e; W9 ?4 g* O; A! ^, T
台,其实技术研发成本比较高,由于目前直播技术相对都比较成熟,设备也都支持硬编码.
q$ h2 A& k: ?1 C) [4 }/ k" {; t
& _4 c1 ]" j, Z$ v为了让更多的直播人拥有属于自己的直播平台和为每一位直播人打造一个直播梦想作为理念
, v, E' v5 h4 _& A% g
m w# G) @/ a' L6 b9 d: A,现在的直播软件源码有了更多有趣新颖的功能:游戏直播间、一对一直播、短视频、私密7 ]# h2 _' ~6 W: q
5 _4 }+ V$ o8 k, r# Y直播间、夺宝游戏等等,支持各种二次开发等等。如果想更多的了解直播平台的搭建与运营2 k, Z! e: e E* d1 } W) n
6 F2 n: W8 `4 s! H# R
鱼羊儿愿意与您秉烛夜谈,共话巴山夜雨时!+ }. j; i% t3 Q, d7 x) b, J$ R
8 C, O0 F% t, z1 ^& h0 X1 g在很好的理解了以上直播系统开发的步骤后,可能你会有很大的顾虑,这些开发技术的门槛
8 q: d4 u% \/ C) |# E w, {) ~% [" @1 g- {
这么高可能对你来说实在是太难了,所以不妨移步呆萌直播系统开发商看看。呆萌直播作为! X9 y) g, |* H+ N# u+ {% ?- m
6 @' W% c% O1 s$ f一家专业的直播系统开发商,为国内外多加直播平台合作过,有着成熟完善的直播系统开发8 M9 P6 j3 i% \9 x) \
( S' ] |2 p" k1 \8 p
经验,能够解决你在直播上的一切问题,与其自己的抠破头的着急还不如来让我们帮你做,
. N1 o* s5 G) M. L' O6 v3 `: k
3 E' D# t5 W8 g- I' x帮你安全快速稳定的搭建属于你自己的直播平台,呆萌直播也能够为您提供你所需要的个性3 v. U9 o* L2 U* Y/ t( I
* P Y i" s! r3 V |' ~! }
开发和直播解决方案,在直播+的时代,我们能够做到不仅覆盖市场上的功能还有很多独创2 `. x& [1 [0 f% u: n6 c3 w
; B% D( |; d! ]( f' Q9 @( u的功能和系统,让你的直播平台不再平淡无奇,助你步步高升!2 K4 X: b( _5 h" a n" y
8 _: F K, j' @4 p
呆萌直播拥有强大的技术开发团队,能够解决多种你在直播上的问题和技术,我们承诺一次
6 B; L6 g, X/ a* d
. i9 _3 [% a; Y支付终身授权,永久免费更新,Bug包修复,让你在直播的道路上畅通无阻,一路开到迪拜
- A o" r& m2 w0 ]5 s6 i( Z; ~) a$ E6 n! \! v B$ h& I
。我们呆萌直播只做高并发、高兼容、高性能安全、稳定、超高性能、流畅的百万并发直播; q9 q2 v0 V1 o
4 I' }3 `# f- b9 z, _( F# M6 G
平台,使用我们的支撑服务,提供给您全方位的业务保障,你还等什么还不加入我们。
) K* Q: n# c, Y0 W+ Y+ B1 o% Z5 ^+ b- O. N6 \3 B. F
5 T+ b9 v/ b8 K2 @: d" n: g
|