本帖最后由 tufei 于 2017-3-13 13:37 编辑 ' u, c8 F! k! p s0 H7 ]
1 x+ B# k, ^4 M经过这2天的了解学习,对视频流播放有了大概的了解。但因为第一次搞这块。还是想各位前辈给点经验指导。: Y1 F- m8 J7 D% U. p! w6 c( R
视频服务器的上传打算采用这2种方式:" ]) S+ }) d7 l
- n- R. x* p/ Q5 j, y& N
第一种方式:1. laravel+ffmepg+ngingx+videojs* d& X u! u, ?5 k, w# z
即: laravel开发上传接口,提供上传rest api,以及上传认证功能,返回视频上传后的地址
3 N8 F) d. U/ B4 s7 | ffmepg作为上传过程中对视频转码,以及切片的功能,不做推流处理
& m3 F F( A- o c9 Y9 L+ \( r2 j, o nginx作为web服务器
& t' C& l0 R) x/ ]0 g+ T& I6 ~, q videojs作为H5播放器
! ]% P$ ]$ @7 h; @
* Y6 ]: z; C* m, b+ j( p 参考播放页面:http://www.advertstudy.com/movie/movie.html (nginx+videojs)
8 `7 z/ f4 e" L* L( O L5 ?% Y, c+ s
! ]7 y/ ^+ U! X+ i* `0 b9 H第二种方式. laravel+ffmepg+nginx+videojs + 新增(nginx+rtmp moudle)+(配置nginx支持hls 方式播放) A( c6 a% Z, n+ ^
9 A* u4 t$ ^- q6 H1 d) q第二种方式主要增加了对rtmp协议 和hls的支持,支持直播方式,用ffmepg 推流,可以对点播的视频,进行ts后缀 小文件的推流处理。0 [; o- @5 }+ D! z; A
$ h1 K/ g, L" I/ n5 [. f/ v3 P1 M: H
问题1.
) P* a* [! H% l5 o% y" D1 H$ j+ [7 _第一种方式播放,其实就是直接对视频的点播。指定视频地址,以及缩略图地址。6 S1 ~( R$ A7 B/ l
第二种方式支持,rtmp,和hls的协议以及直播的方式。
/ t0 B1 G# U6 e& @6 C# [这种方式可以对视频可以进行一个10秒钟的一个小文件的保存。以及m3u8的文件格式的播放,(本质应该是用 ffmepg推流,然后客户端用相应的协议去接流比如用rtmp,http协议)
}" h. E1 n6 G/ O" w5 Y4 j- N如果我只是对MP4格式的视频做点播。有必要弄hls支持吗?不同大小的视频文件比如50MB 跟500MB 有性能差异?
@7 a' [: ~( W; l# D# f7 o" Q# M7 s1 E# x, u; v% y( h3 T
问题2:如果我所有的文件都是mp4格式的话。有必要用第二种方式吗?第二种方式比第一种有什么优点?(因为MP4格式对所有浏览器,IE9以上,和现代手机都是可以播放的)
. Y1 x$ n( G4 J/ A8 ^0 c" y, U
9 n# F2 ?* z/ C# G ]问题3:如果视频文件很多,比如1个TB的量的话。播放会产生大量的流量 那么用什么服务器比较好(50刀-500刀每个月都可以考虑)。最好是不限流量的服务器,求推荐!
8 U* {' g7 @1 \7 ^8 b最后感谢上一贴 @河小马 和 @wo2363960626 ,@akzovk 的一些解惑 。诚邀这贴进行一些建议。也希望其他前辈不吝赐教。0 {# J& [4 i1 L% ~
# j6 n! d$ X. d0 j+ T5 |" A) _
|