本帖最后由 tufei 于 2017-3-13 13:37 编辑 6 y t9 F5 |% |& t
; e! C+ A% ] i* L! l6 ]) p经过这2天的了解学习,对视频流播放有了大概的了解。但因为第一次搞这块。还是想各位前辈给点经验指导。& h d# R! x! X4 E3 @' w- D! E7 q0 M
视频服务器的上传打算采用这2种方式:
8 m" r, q) K' r$ h, u5 t# w5 a( _
( i$ M" F( W1 u第一种方式:1. laravel+ffmepg+ngingx+videojs
( A+ r4 s4 H0 [, \; X即: laravel开发上传接口,提供上传rest api,以及上传认证功能,返回视频上传后的地址4 G+ D- ~4 K" q# p: @: p0 X$ H
ffmepg作为上传过程中对视频转码,以及切片的功能,不做推流处理
5 ^5 P; D6 [& Q0 j( y: ` nginx作为web服务器, @* M5 ^/ Q f3 u N N+ X, M6 Y
videojs作为H5播放器 I# h5 A% }! O# ^. D
( a: l+ F7 v# h. {; s$ J4 n
参考播放页面:http://www.advertstudy.com/movie/movie.html (nginx+videojs) % D }! H2 u' h( Q
9 J* y+ i$ P! P4 G" P4 E: r- ~
第二种方式. laravel+ffmepg+nginx+videojs + 新增(nginx+rtmp moudle)+(配置nginx支持hls 方式播放)- W6 ]8 k; Q- |( Z# I
3 D4 p4 t5 o8 B, W
第二种方式主要增加了对rtmp协议 和hls的支持,支持直播方式,用ffmepg 推流,可以对点播的视频,进行ts后缀 小文件的推流处理。
6 i$ O! D0 t3 G# U1 y: }
4 t7 s J3 }. ?" z, k. o0 \' p1 J& I4 ~问题1." i2 I, z, J, h0 v4 K5 _3 v
第一种方式播放,其实就是直接对视频的点播。指定视频地址,以及缩略图地址。3 S) r! ~. d2 j$ Q$ f
第二种方式支持,rtmp,和hls的协议以及直播的方式。
( R4 e! y: _6 D: a6 M这种方式可以对视频可以进行一个10秒钟的一个小文件的保存。以及m3u8的文件格式的播放,(本质应该是用 ffmepg推流,然后客户端用相应的协议去接流比如用rtmp,http协议)
6 E5 P! U- \. Z; A如果我只是对MP4格式的视频做点播。有必要弄hls支持吗?不同大小的视频文件比如50MB 跟500MB 有性能差异?
$ U k: ` o% o8 v d9 x, n4 Z
. z0 c, a) E- s问题2:如果我所有的文件都是mp4格式的话。有必要用第二种方式吗?第二种方式比第一种有什么优点?(因为MP4格式对所有浏览器,IE9以上,和现代手机都是可以播放的)
5 N6 L! |/ b) e6 ^/ o$ T" g, X$ p; g) \- ` Q) q
问题3:如果视频文件很多,比如1个TB的量的话。播放会产生大量的流量 那么用什么服务器比较好(50刀-500刀每个月都可以考虑)。最好是不限流量的服务器,求推荐!0 b; S' D; L* l. @
最后感谢上一贴 @河小马 和 @wo2363960626 ,@akzovk 的一些解惑 。诚邀这贴进行一些建议。也希望其他前辈不吝赐教。
% y/ a& Q; G5 K
# L4 }) ?# L3 \/ Z+ d* } |