hr3lxphr6j / bililive-go

一个直播录制工具
GNU General Public License v3.0
3.83k stars 494 forks source link

0.7.3转制mp4会出现失败的情况 #366

Open sirlioniva opened 1 year ago

sirlioniva commented 1 year ago
rpc:
  enable: true
  bind: 127.0.0.1:8080
debug: true
interval: 15
out_put_path: ./Downloads/live
feature:
  use_native_flv_parser: true
live_rooms:

out_put_tmpl: ""
video_split_strategies:
  on_room_name_changed: false
  max_duration: 10m0s
cookies: {}
on_record_finished:
  convert_to_mp4: true
  delete_flv_after_convert: false
timeout_in_us: 60000000

配置文件如上,开启flv parser后,录制pk会自动分段,挺好的,但是斗鱼直播间pk次数多了,会出现一次flv有容量,但是转制的mp4只有几百kb的情况,这几天出现了几次,我用第三方软件转制这个flv是可以正常转的,然后我仔细观察了一下文件生成时间,比flv最终生成的时间要早一点点

应该是mp4这个几百kb的文件会在本段flv录制结束前就出现,因为提前占用了这个文件名,导致没有继续转录mp4就停止了,本来如果flv和mp4都存着问题也不大,但第一天我是把删除flv也开着的,此时会只留下几百kb的mp4把几百m的flv删掉,第一天我发现视频不连贯,第二天都开启后发现了这个问题,本来pk的时候就会生成很多几十kb的重复文件,但这个问题我是这两天新发现的,所以建议不要开启删除flv,否则会漏掉一部分内容

sirlioniva commented 1 year ago

而且用flv parser后,dubug信息会少很多,比如文件信息帧数码率这些都看不到了

kira1928 commented 1 year ago

嗯,flv parser我因为不懂,所以基本没动过里面,也没额外添加 debug 输出。 转 mp4 的功能我只测试了 ffmpeg 没问题,flv parser 可能有它自己特殊的分段方式? 关于 flv parser 的问题看起来实在是挺严重的,我可能会调整接下来解决 issue 的顺序,提前修复 flv parser 了。 我本来想在 0.7.x 上再出一些像自选直播源自选画质之类的小功能之后再去挑战 flv parser 的,但是这个 parser 如果一直不能正常运行,对很多用户来这个程序几乎等于不能用了。。 让我先看一下 flv parser 的代码,看看从哪儿加点 log 进去帮助 debug,还有什么情况可能导致转 mp4 出现你说的那种异常吧。