V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nevermoreluo
V2EX  ›  程序员

网页端如何播放各种格式音视频

  •  
  •   nevermoreluo · 162 天前 · 918 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人之前没搞过音视频相关的内容,寻求一些方案,跑过一些 web player 的 demo ,但是很困惑,方案上都有一些缺陷,似乎都不是特别理想

    要求:

    1. 不要付费方案。。。(哎
    2. 支持 H265 解码(软解硬解都行。。。),支持各种格式 avi,mov,mp4,mkv,acc(其实基本涵盖所有格式了。。。)
    3. 不用提前转码(没有空间,也没有时间。。。
    4. 不联外网

    目前有几个方案 都有缺点

    1. vlc ocx ,这个方案优点很明显,直接调用 vlc 支持格式很多,但是目前只能在 ie 上可以跑,在 chrome 这些主流浏览器高版本跑不了
    2. 找一个合适的 webplayer 的库。。。。但是这些库都是要么不支持 avi 或 mov ,要么不支持 h265.。。很头疼 小弟实在有些迷茫,各位大哥有没有啥好建议
    第 1 条附言  ·  159 天前

    更新下目前的情况

    项目or方案 测试地址 技术 总结
    h265web.js 测试地址 wasm ffmpeg 不支持avi
    WasmVideoPlayer 测试地址 wasm ffmpeg 不支持avi
    WXInlinePlayer 测试地址 wasm ffmpeg 支持hls
    codecbox.js 测试地址 wasm ffmpeg 支持很多格式包括avi,但avi的音频播放有问题,年久失修,作者称业余项目已经不更新了,声明支持mov,但我测试mov似乎还有bug,无法播放

    总的来说,因为项目上的文件普遍不大的情况下,可以用codecbox.js改改能达到一个可用的状态。不过还要看看领导的要求,和进一步的测试评估

    11 条回复    2023-11-17 20:29:18 +08:00
    janus77
        1
    janus77  
       162 天前 via Android
    为什么要所有格式?有些格式本身就是要付版权费的,比如 mov ,我用 edge 也不支持。不如说下你的需求
    nevermoreluo
        2
    nevermoreluo  
    OP
       162 天前
    @janus77 有很多设备录制回来的影像资源需要播放。但是设备什么牌子的都有,没法控制输入是什么格式的。
    主要是 mp4+少量 avi ,但是有些确实给了 mov 的
    flyqie
        3
    flyqie  
       162 天前
    现在不是有 ffmpeg wasm 了嘛。。。

    试试?
    Peek
        4
    Peek  
       162 天前
    目前没有吧,都是转码为主,我之前想弄媒体整理库发现纯网页走不通,调用本机播放器还各种受限,没法直接传递 smb 的路径,要专门写个服务端让播放器识别路径就搁置了,也是内网用为主,你要是不介意调用本机播放器播放的话可以试试这条路
    tuimaochang
        5
    tuimaochang  
       162 天前
    有个思路是 wasm+ffmpeg 实现解码,github.com/goldvideo/h265player
    7inFen
        6
    7inFen  
       162 天前
    如果不是己方设备录制的,应该限制传入资源格式
    nevermoreluo
        7
    nevermoreluo  
    OP
       162 天前
    @flyqie 其实自己折腾试过 ffmpeg wasm 逐帧解画面->yuv->canvas, 十几分钟的小文件试了下倒是也能播(文件大了效果也还不确定)
    不过播放器控件+音频解析+seek+倍速 路好长而且这么长的路自己搞也就算了,公司的业务还不太敢路太长了 bug 多

    其实想找下大哥们有啥前辈走过的路没有
    nevermoreluo
        8
    nevermoreluo  
    OP
       162 天前
    @tuimaochang 其他组的同事说这个他试过 avi 的播不了,不过我看了下文档,感觉没提到。等下我自己再试验下 谢啦
    nevermoreluo
        9
    nevermoreluo  
    OP
       162 天前
    @Peek 哈哈哈哈哈 如果你是个人使用的话,我探索过程中发现一个 https://www.plex.tv/ ,他支持各种格式的音视频,在线激活一回可以离线,感觉适用你的媒体整理的需求,感觉你可以试试
    ysc3839
        11
    ysc3839  
       162 天前 via Android
    mov 没理由不支持,mp4 就是基于 mov 改的,市面上大多数 mp4 解析器是同时支持 mp4 和 mov 的,不支持说明是不支持其中的编码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   930 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:48 · PVG 03:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.