BililiveRecorder
BililiveRecorder copied to clipboard
直播服务器会提供 H.264 Annex B 格式的直播流,分辨率等变动不需要切分文件
Problem
直播 PK、手机横竖屏切换等原因导致的参数变动,之前提供的数据 ffmpeg 以及几乎所有音视频工具无法正常处理,参数变动后会解码出错。录播姬的修复系统检测到有新参数后会切分文件。 发现部分直播流会以 H.264 Annex B 也就是每个 I 帧都带一份参数的形式提供,常见的所有工具都能正确处理这种数据,不切分成多个文件也可以正确解码播放,也就没有必要对文件进行分段。
Proposal
- 检测 Header Tag 后一段数据的视频 I 帧是否存在 SPS PPS NALU,如果存在则说明不需要对文件进行分段。
- 添加一个设置项?
需要添加一个设置项,默认关闭状态。测试发现这样的文件虽然播放器基本都能正常处理,视频编辑软件大多会有各种问题。
这个设置开关是否可以做成这样:
- 关闭时,只要参数变化就切分
- 打开时,无论如何都不切分;如果I帧没有带参数,就在修复时手动加上(约等于手动
-bsf:v h264_mp4toannexb
)
这样修复的判断逻辑可能会简单一些?而且无论收到什么流都 可以 不切分,用户体验更好