bililive-go
bililive-go copied to clipboard
[提问]: use_native_flv_parser的用法
程序版本
v0.7.18
所使用的 config 文件的内容
No response
程序 log
No response
自由描述
use_native_flv_parser: true 时会自动分段并且会少录一段内容而且还会产生很多几百kb的小视频文件
use_native_flv_parser: false 时没有上述问题,但是在主播用手机播切成电脑播的时候就导致花屏
config要怎么设置才能避免以上问题?
use_native_flv_parser: false 也就是默认设置时使用 ffmpeg 录制 flv 直播流。ffmpeg 个方便都很好,唯独两个问题无法解决。
-
很多直播平台在主播 pk 的时候会临时切换直播流的分辨率,虽然非常微小,通常只是 1080p 到 1082p 左右的变化,但这点变化 ffmpeg 无法处理,结果就是pk期间全程花屏,直到 pk 结束后分辨率变回来才会恢复。
-
个别高清直播使用 flv 直播流承载 hevc 编码,这是一种大家约定俗成的做法,但因为没有被标准化组织认可,所以 ffmpeg 拒绝支持这种直播流。 虽然国内有金山公司出的魔改版 ffmpeg 加入了对 hevc-flv 的支持,但需要自己编译什么的,比较麻烦。
为了解决上述问题,程序自制了一个 native flv parser。 当在配置文件中启用 native flv parser 来替代 ffmpeg 录制 flv 时,遇到问题 1 中的分辨率变化程序会自动分段来解决。问题2目前无法解决。 但 native flv parser 还不太成熟。一个问题就是你提到的频繁分段。会分段可能是因为程序的超时判定写得比较严格,稍有不顺心就认为连接中断,视频就分段了。
按理来说应该继续开发 native flv parser 完善它,但现在我一个人维护整个项目精力有限,这部分开发任务就渐渐搁置了。