WebAV icon indicating copy to clipboard operation
WebAV copied to clipboard

av-cliper 的 Combinator 导出的视频不支持 web 流媒体播放

Open mxue12138 opened this issue 1 year ago • 11 comments

编码没看出来什么特殊的,但是就是不支持流媒体播放,具体点说就是在 video 标签内播放导出的视频时,video 会等待全部加载完才开始播放,我试了一下,和服务器、videoCodec、video、视频大小都没关系,请问遇到过这个问题吗?有没有办法解决呀 😭

原始视频 测试地址:https://www.24mz.cn/webav/a.html(可以看到是一边播放一边加载的) 导出的视频 测试地址:https://www.24mz.cn/webav/b.html(服务器带宽小,需要加载很久)

QQ20240718-142410

mxue12138 avatar Jul 18 '24 06:07 mxue12138

应该是moov 盒子在最后的原因

F-howk avatar Jul 19 '24 01:07 F-howk

av-cliper 导出的视频是 segment mp4,moov 在头部

请尝试官方 demo 是否正常

hughfenghen avatar Jul 19 '24 02:07 hughfenghen

av-cliper 导出的视频是 segment mp4,moov 在头部

请尝试官方 demo 是否正常

官方demo导出的视频也是这样的,必须得全部加载完才能播放 https://www.24mz.cn/webav/c.html

mxue12138 avatar Jul 19 '24 03:07 mxue12138

av-cliper 导出的视频是 segment mp4,moov 在头部

请尝试官方 demo 是否正常

我看了下能流媒体播放和不能流媒体播放的视频,视频信息的确在头部,并且都支持“fast start: yes”,但是在浏览器中的确不能流媒体播放,研究发现,“fragments: yes” 这个参数等于 yes 的时候就不能流媒体播放,我不太懂这个,求教一下

QQ20240719-111321 QQ20240719-111309

mxue12138 avatar Jul 19 '24 03:07 mxue12138

仔细看了下 mp4box.js 的文档,官方有说明这个问题,但是我发现 av-cliper 使用的是修改过的 mp4box.js,里面没有文档中说的方法,,,不知道怎么解决了

1ec08c86d1815178d8021c6aa82e1ce5

mxue12138 avatar Jul 19 '24 05:07 mxue12138

遇到了同样的问题,期待解决方案

YangMaoxiang avatar Aug 13 '24 12:08 YangMaoxiang

原因应该是 缺少 SIDX box,需要一位勇者的贡献,来解决这个问题。

如果生成的视频会上传服务器,可以试试 ffmpeg 添加 SIDX box,不涉及编解码,速度应该也比较快。

hughfenghen avatar Sep 18 '24 07:09 hughfenghen

记录一下,使用这个命令可以解决这个问题,视频大小基本不变,处理速度很快

$ ffmpeg -i 5.mp4 -c:v copy -c:a copy -movflags +faststart 5-2.mp4

mxue12138 avatar Jan 24 '25 07:01 mxue12138

有办法通过mp4box.js来实现视频支持流媒体播放吗

仔细看了下 mp4box.js 的文档,官方有说明这个问题,但是我发现 av-cliper 使用的是修改过的 mp4box.js,里面没有文档中说的方法,,,不知道怎么解决了

1ec08c86d1815178d8021c6aa82e1ce5

PiedPiper911 avatar Jun 29 '25 09:06 PiedPiper911

有办法通过mp4box.js来实现视频支持流媒体播放吗

mp4box.js 不支持封装成传统的 mp4 格式, 前面提的流媒体播放 跟你的截图不是一个意思。

期望经过mp4box.js封装成的MP4文件,能够从任意时刻快速启播,mp4box.js 是不支持的。

hughfenghen avatar Jun 30 '25 02:06 hughfenghen

有办法通过mp4box.js来实现视频支持流媒体播放吗

mp4box.js 不支持封装成传统的 mp4 格式, 前面提的流媒体播放 跟你的截图不是一个意思。

期望经过mp4box.js封装成的MP4文件,能够从任意时刻快速启播,mp4box.js 是不支持的。

我其实很纳闷为啥mp4box.js不支持到这一步。

web端 目前只能通过ffmpeg.wasm 转一下了。还好不需要太多的转换时间。

Rainy934 avatar Nov 06 '25 03:11 Rainy934