本帖最后由 tufei 于 2017-3-13 13:37 编辑
- M! y* ^1 L9 w- r: V' `
0 |$ I, v5 r; A经过这2天的了解学习,对视频流播放有了大概的了解。但因为第一次搞这块。还是想各位前辈给点经验指导。
3 f) |- L, t7 R% q视频服务器的上传打算采用这2种方式:, D; }6 }) _! q! w a1 a; P
, U; k. T, l4 x$ I9 l/ W第一种方式:1. laravel+ffmepg+ngingx+videojs
S ?+ P2 e, l# y* M即: laravel开发上传接口,提供上传rest api,以及上传认证功能,返回视频上传后的地址
8 ~% _( _7 n5 D* L ffmepg作为上传过程中对视频转码,以及切片的功能,不做推流处理2 Z3 Z/ k6 d2 w& y5 A& ?1 V ?
nginx作为web服务器
2 R, @& X$ m: K3 B! a/ g2 |) h videojs作为H5播放器
1 y& h& P& d; v& k& Q% }! M 7 b: t1 P j! a% s6 g; P
参考播放页面:http://www.advertstudy.com/movie/movie.html (nginx+videojs)
) b) _$ b. {# N/ y8 y) h8 Z
- z' g! u6 j, Q第二种方式. laravel+ffmepg+nginx+videojs + 新增(nginx+rtmp moudle)+(配置nginx支持hls 方式播放)4 R" O7 a( n4 N0 L. n# m3 L
3 F& S& n0 Y6 e第二种方式主要增加了对rtmp协议 和hls的支持,支持直播方式,用ffmepg 推流,可以对点播的视频,进行ts后缀 小文件的推流处理。, f4 O! F% c/ Q
2 k( {) X' V! A. @5 ]# _问题1.
$ P% j' y, q& O( g' ]第一种方式播放,其实就是直接对视频的点播。指定视频地址,以及缩略图地址。! `" m6 Z& U0 s$ R7 b
第二种方式支持,rtmp,和hls的协议以及直播的方式。
4 q; a5 q) W; ^这种方式可以对视频可以进行一个10秒钟的一个小文件的保存。以及m3u8的文件格式的播放,(本质应该是用 ffmepg推流,然后客户端用相应的协议去接流比如用rtmp,http协议)
3 d5 ~& o) |7 r# ?+ [' g( g6 X如果我只是对MP4格式的视频做点播。有必要弄hls支持吗?不同大小的视频文件比如50MB 跟500MB 有性能差异?
+ v: o9 p4 v. i9 e
0 E9 I, I, | N1 q! o9 D6 \6 Y问题2:如果我所有的文件都是mp4格式的话。有必要用第二种方式吗?第二种方式比第一种有什么优点?(因为MP4格式对所有浏览器,IE9以上,和现代手机都是可以播放的)
) L0 O6 D$ ]% j! M5 a6 y/ G" ~, e( ^- f
问题3:如果视频文件很多,比如1个TB的量的话。播放会产生大量的流量 那么用什么服务器比较好(50刀-500刀每个月都可以考虑)。最好是不限流量的服务器,求推荐!
' r9 f; H2 o' {# W最后感谢上一贴 @河小马 和 @wo2363960626 ,@akzovk 的一些解惑 。诚邀这贴进行一些建议。也希望其他前辈不吝赐教。
7 }0 E- K: e' Z% c% s
; J& ?1 a" P! W9 \ |