BililiveRecorder icon indicating copy to clipboard operation
BililiveRecorder copied to clipboard

直播服务器会提供 H.264 Annex B 格式的直播流,分辨率等变动不需要切分文件

Open Genteure opened this issue 1 year ago • 2 comments

Problem

直播 PK、手机横竖屏切换等原因导致的参数变动,之前提供的数据 ffmpeg 以及几乎所有音视频工具无法正常处理,参数变动后会解码出错。录播姬的修复系统检测到有新参数后会切分文件。 发现部分直播流会以 H.264 Annex B 也就是每个 I 帧都带一份参数的形式提供,常见的所有工具都能正确处理这种数据,不切分成多个文件也可以正确解码播放,也就没有必要对文件进行分段。

Proposal

  1. 检测 Header Tag 后一段数据的视频 I 帧是否存在 SPS PPS NALU,如果存在则说明不需要对文件进行分段。
  2. 添加一个设置项?

Genteure avatar Jan 23 '24 16:01 Genteure

需要添加一个设置项,默认关闭状态。测试发现这样的文件虽然播放器基本都能正常处理,视频编辑软件大多会有各种问题。

Genteure avatar Jan 24 '24 15:01 Genteure

这个设置开关是否可以做成这样:

  • 关闭时,只要参数变化就切分
  • 打开时,无论如何都不切分;如果I帧没有带参数,就在修复时手动加上(约等于手动-bsf:v h264_mp4toannexb

这样修复的判断逻辑可能会简单一些?而且无论收到什么流都 可以 不切分,用户体验更好

AlexGuo1998 avatar Jan 31 '24 13:01 AlexGuo1998