V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sunny1688
V2EX  ›  问与答

web 如何实时播放服务器通过 websocket 推送过来的数据流(MP3)?

  •  
  •   sunny1688 · 2020-08-28 09:17:58 +08:00 · 2031 次点击
    这是一个创建于 678 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器读取 mp3,分段推通过送到 websocket 到 web 端,web 端如何有序的播放这些数据流呢?有什么技术方案吗?

    第 1 条附言  ·  2020-08-29 17:08:59 +08:00
    花费了几天时间,终于搞定了!
    使用的是 Web Audio Api 相关的处理机制,谢谢各位提供的方案!
    15 条回复    2020-08-29 10:21:28 +08:00
    dzdh
        1
    dzdh  
       2020-08-28 09:32:08 +08:00
    pinews
        2
    pinews  
       2020-08-28 09:53:25 +08:00
    这和 websocket 有什么关系啊,不应该是 websocket 推送 mp3 许可,然后本地 http 请求 mp3 吗?
    sunny1688
        3
    sunny1688  
    OP
       2020-08-28 09:59:59 +08:00
    websocket server,推送的是 mp3 二进制数据流,不是 http 直接拿到一个完整的 mp3
    buffzty
        4
    buffzty  
       2020-08-28 10:21:30 +08:00
    2 楼说的没错. 应该是 ws 返回一个授权 url. 本地去请求 oss. 如果自己服务器传输,你宽带费先乘 10-20 吧
    sunny1688
        5
    sunny1688  
    OP
       2020-08-28 10:27:17 +08:00
    不要讨论怎么做合适,我现在遇到的需求就是这样的,
    okaku
        6
    okaku  
       2020-08-28 10:31:47 +08:00 via iPhone
    websocket 的传输速率是很慢的 远远不及一般 get 请求 。不适合大型文件传输。
    wysnylc
        7
    wysnylc  
       2020-08-28 10:46:14 +08:00
    websocket 不做任何 io 操作,如果你要做应该是史上第一人或者前几个毕竟这么*的不太多
    正常做法是服务端预先将视频文件分割,websocket 将文件访问路径推送到前端,前端访问并拼接播放视频
    zy445566
        8
    zy445566  
       2020-08-28 10:53:26 +08:00
    听过 m3u8 么? websocket 给 m3u8 格式的头不就好了,估计不会超过 1kb
    knva
        9
    knva  
       2020-08-28 10:58:37 +08:00
    widewing
        10
    widewing  
       2020-08-28 11:03:57 +08:00 via Android
    chucongqing
        11
    chucongqing  
       2020-08-28 11:20:25 +08:00
    webrtc
    Exin
        12
    Exin  
       2020-08-28 15:00:00 +08:00
    可以用 AudioContext 以及相关 API
    xxccxx
        13
    xxccxx  
       2020-08-29 06:37:31 +08:00 via Android
    @wysnylc 说的太过绝对了,我司做监控行业的,做的就是通过 websocket 推送 h264 流,然后前端解码播放,目的就是分担服务器压力,延时能做到一秒内。
    xxccxx
        14
    xxccxx  
       2020-08-29 06:40:34 +08:00 via Android
    楼主可以 gayhub 搜一下 jmuxer,不过这个只能播放 aac 格式的,
    wysnylc
        15
    wysnylc  
       2020-08-29 10:21:28 +08:00
    @zccjxx62 #13 所以代价就是想要增加并发流量就得升级 websocket 服务器而不是只升级视频流存储服务器
    要做都可以做,但是代价呢?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2970 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:13 · PVG 19:13 · LAX 04:13 · JFK 07:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.