• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zero0x00
V2EX  ›  程序员

斗鱼直播是用的啥技术,如何实现一个网页直播间

  •  
  •   zero0x00 · Jan 12, 2016 · 22702 views
    This topic created in 3958 days ago, the information mentioned may be changed or developed.
    RT.能共享屏幕就行...
    19 replies  •  2016-12-27 17:31:15 +08:00
    zhujinliang
    zhujinliang
    Jan 12, 2016 via iPhone❤️3
    1
    播放基于 http 流, flv 容器。推送基于 rtmp

    整个系统有三个角色,转发服务器,流推送端,客户端
    服务器可用 nginx_rtmp ,推送端请看斗鱼或 b 站直播教程,客户端网页的话要写 flash 或者做 HLS

    根据客户数量规模,服务器可能需要做 CDN 或码率转换
    zero0x00
    zero0x00
    OP
    Jan 12, 2016
    2
    带宽要求是啥 20M 带宽能支持 10 人在线吗?
    @zhujinliang
    br00k
    br00k
    Jan 12, 2016
    3
    @Lcys 需要上行带宽。看你码率决定是否足够。
    zhujinliang
    zhujinliang
    Jan 12, 2016 via iPhone
    4
    @Lcys 基本够用
    大部分直播码率在 1000kbps 左右
    wbsdty331
    wbsdty331
    Jan 12, 2016
    5
    @zhujinliang 推流以 obs 和 xsplit 为主,斗鱼自己也有个直播助手
    SPACELAN
    SPACELAN
    Jan 12, 2016
    6
    实现一个网页直播间的花还可以用 webrtc
    sgissb1
    sgissb1
    Jan 12, 2016
    7
    @SPACELAN webrtc 其实很不好用,再等几年吧
    xing393939
    xing393939
    Jan 12, 2016❤️1
    9
    ne6rd
    ne6rd
    Jan 12, 2016
    10
    正好借地问一下,有没有通过网络给直播录像的方法,具体是什么思路呢
    zhujinliang
    zhujinliang
    Jan 12, 2016
    11
    @ne6rd 意思是直接录直播流么?
    斗鱼是对地址做过处理的, flash 上有生成校验码的逻辑,自己没办法构造正确的下载地址(除非反编译 flash )
    有了地址后,可以直接用 ffmpeg 下载,把地址做为输入参数即可,顺便还能直接转格式

    再有就是需要自己处理连接断了后重连的逻辑,需要修正 flv 文件里的时间码
    XhstormR
    XhstormR
    Jan 12, 2016 via Android
    12
    @zhujinliang youtube-dl 支持 douyu
    wupher
    wupher
    Jan 12, 2016
    13
    之前有做过直播。使用 RTMP 协议,通过各种输入端( PC Camera 、 Mobile )获得音视频流,按照 H264, AAC 或者 MP3 进行压缩,然后按 RTMP 传输入视频服务器。 视频服务器再做一些多路转换等工作。将处理后的码流推往 CDN 。很多商业 CDN 直接支持 RTMP 以及 HLS 协议。 客户端( WEB, Flash Player, Mobile Player )获取码流进行播放。

    播现成的录像文件比这个更省事一些,大致流程相似。

    RTMP 本身也是 Adobe 视频协议族中的一员,基于 TCP 协议,多少还是会有延迟。一般的直播也就罢了,如果考虑实时性或者交互性很高,估计还得像 QQ 以及 YY 学习,封装自己的专用协议。
    janxin
    janxin
    Jan 12, 2016
    14
    很多 CDN 都有专门的解决方案,需要现成的话可以直接用一下就好了。各大 CDN (影视网站、阿里云、又拍、七牛之类的)都提供类似服务
    zero0x00
    zero0x00
    OP
    Jan 14, 2016
    15
    dellch
    dellch
    Mar 17, 2016
    16
    @Lcys 请问用什么技术路线?
    zero0x00
    zero0x00
    OP
    Apr 15, 2016
    17
    @dellch rtmp
    gehurry
    gehurry
    Dec 27, 2016
    18
    @zhujinliang 请问这个视频直播里面会对她的数据流进行加密么 到了客户端在解密出来播放
    zhujinliang
    zhujinliang
    Dec 27, 2016
    19
    @gehurry
    一般数据流没有加密
    url 可能带有 hash ,需要客户端计算 hash ,服务器判断 hash 是否正确
    你可以打开调试工具,查看网络传输,开始直播,然后找到一个持续增大的 flv 文件,复制链接地址,使用 vlc 之类的播放器可以直接打开这个地址,或者使用 wget 之类的工具下载,播放器也可以播放这段下载的视频
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2068 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 14:47 · PVG 22:47 · LAX 06:47 · JFK 09:47
    ♥ Do have faith in what you're doing.