bilibili / WebAV

WebAV is an SDK built on WebCodecs, designed for creating and editing video files on the web platform. WebAV 是基于 WebCodecs 构建的 SDK,用于在 Web 平台上创建/编辑视频文件。
https://bilibili.github.io/WebAV/
MIT License
930 stars 109 forks source link

使用 WebCodecs 解码 TS 视频时出现错误,是否有计划支持 TS 视频裁剪? #228

Closed yubo2018 closed 1 month ago

yubo2018 commented 1 month ago

您好,首先感谢您分享这个项目! 我最近在开发一个基于 TS 视频的裁剪工具,我尝试使用 WebCodecs 进行视频解码,但在这个过程中遇到了一些错误,解码器无法正常工作。 我怀疑问题可能出在解封装后的 nalu 数据有问题,但是不知道是哪里。想请教一下,您是否有计划支持基于 TS 视频的裁剪功能,或者是否有推荐的解决方案可以解决这个问题?

hughfenghen commented 1 month ago

暂无计划支持 TS。 当前项目中有一个 createHLSLoader 函数(v1.0 将废弃),下载 HLS(m4s)片段然后转换成 mp4 文件后,可使用其他 API 进行处理;也许有可参考的地方。

要解决你的问题,应该确认 H264 流的格式(大概率是 AnnexB),我没解码过 AnnexB 不确定是否可行 按 AVCC 解码流程

  1. 从流里面提取出 description 用于初始化 VideoDecoder
  2. 将流转换成多个 EncodedVideoChunk
  3. 将 EncodedVideoChunk 传递给 VideoDecoder 进行解码
zhaohappy commented 1 month ago

您好,首先感谢您分享这个项目! 我最近在开发一个基于 TS 视频的裁剪工具,我尝试使用 WebCodecs 进行视频解码,但在这个过程中遇到了一些错误,解码器无法正常工作。 我怀疑问题可能出在解封装后的 nalu 数据有问题,但是不知道是哪里。想请教一下,您是否有计划支持基于 TS 视频的裁剪功能,或者是否有推荐的解决方案可以解决这个问题?

可以看看我的解决方案 libmedia

hughfenghen commented 1 month ago

@zhaohappy 666 WebAV 1.0 之后会考虑更多的封装格式,也许会用上你的的 sdk

zhaohappy commented 1 month ago

@hughfenghen 🤝 欢迎使用