AsaChiri / DDRecorder

📺Headless全自动B站直播录播、切片、上传一体工具
Apache License 2.0
441 stars 72 forks source link

主播pk的时候,分辨率变化了,导致录的视频乱码出错 #60

Open Tea-NT opened 2 years ago

Tea-NT commented 2 years ago

录播的主播用手机直播,竖屏状态。然后录播到pk的时候,录像乱码了。 目前猜测是因为分辨率变化,根据时间戳,我用另一个工具录播姬,录播的视频是正常的,因为主播pk时候,会中断直播,然后跳转出来的新视频源是横屏,分辨率发生了改变。 竖屏分辨率:720 X 1280 横屏分辨率:1280 X 720 pk异常 pk 录像的音频还在,声音能正常播放,就是分辨率不对,并花了。

有个小建议,现在outputs文件输入的名称格式是 开播时间+偏移的秒数,能不能直接把偏移的描述换算成时间,方便定位片段的真实时间。 文件名优化

ZhaoWeicheng98 commented 2 years ago

好的,我研究一下。您可以看下record目录下,当pk的时候会产生单独的flv吗?

Genteure commented 2 years ago

你好,我是 录播姬 的作者。

录播姬是解析了 FLV 数据结构,在发现解码参数变动的时候切分了一个文件的。 关于录播姬这个功能的介绍可以看这里: https://bililiverecorder.github.io/website/dev/repair/ (链接只在近期有效,新网站做好之后会移到 rec.danmuji.org ) 具体到这一个问题的修复规则是 BililiveRecorder.Flv/Pipeline/Rules/HandleNewHeaderRule.cs@10adc77

录播姬有提供命令行工具,可以修复已经写入到硬盘上的B站录播文件。

另外一个有自己实现类似功能的项目是 blrec,是用 python 写的,也可以参考。

ZhaoWeicheng98 commented 2 years ago

你好,我是 录播姬 的作者。

录播姬是解析了 FLV 数据结构,在发现解码参数变动的时候切分了一个文件的。

关于录播姬这个功能的介绍可以看这里: https://bililiverecorder.github.io/website/dev/repair/ (链接只在近期有效,新网站做好之后会移到 rec.danmuji.org )

具体到这一个问题的修复规则是 BililiveRecorder.Flv/Pipeline/Rules/HandleNewHeaderRule.cs@10adc77

录播姬有提供命令行工具,可以修复已经写入到硬盘上的B站录播文件。

另外一个有自己实现类似功能的项目是 blrec,是用 python 写的,也可以参考。

非常感谢!

Tea-NT commented 2 years ago

好的,我研究一下。您可以看下record目录下,当pk的时候会产生单独的flv吗?

抱歉,刚刚才看到您的回复,我提交issues时的把源文件给删了,我看了下剩下的另一个主播录制的文件,我也不确定会不会产生flv文件(records文件夹下的),有播放出来会提示无法播放。等我有空再次测试一下。 播放问题

ZhaoWeicheng98 commented 2 years ago

好的,我研究一下。您可以看下record目录下,当pk的时候会产生单独的flv吗?

抱歉,刚刚才看到您的回复,我提交issues时的把源文件给删了,我看了下剩下的另一个主播录制的文件,我也不确定会不会产生flv文件(records文件夹下的),有播放出来会提示无法播放。等我有空再次测试一下。 播放问题

好的,非常感谢。(根据上面录播姬作者提供的信息,我可能需要一些时日研究flv的标签问题)

Tea-NT commented 2 years ago

作者你好,最近又开始用直播姬了,发现一个小问题,我手动发送了切片弹幕,然后直播结束后,一直是正在转换视频的状态,输出文件夹里面只有records文件夹有东西,一个完整的flv,其他的文件夹均没有,弹幕文件夹danmu是有的,随后查看了下日志,显示 间隔不足。 版本还是老版本的,看DDRecorder.exe的时间是2022年2月28号发布的,不记得版本号。 image

Sun, 14 Aug 2022 22:31:43 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:31:53 3216 MainThread BaseLive.py[line:72] DEBUG [Site:BiliBili Room:25628834] 允许检查 Sun, 14 Aug 2022 22:31:53 3216 MainThread connectionpool.py[line:273] DEBUG Resetting dropped connection: api.live.bilibili.com Sun, 14 Aug 2022 22:31:54 3216 MainThread connectionpool.py[line:456] DEBUG https://api.live.bilibili.com:443 "GET /room/v1/Room/get_info?room_id=25628834 HTTP/1.1" 200 None Sun, 14 Aug 2022 22:31:54 3216 MainThread BiliLive.py[line:25] DEBUG [Site:BiliBili Room:25628834] 房间API消息:ok Sun, 14 Aug 2022 22:31:54 3216 MainThread connectionpool.py[line:456] DEBUG https://api.live.bilibili.com:443 "GET /live_user/v1/UserInfo/get_anchor_in_room?roomid=25628834 HTTP/1.1" 200 767 Sun, 14 Aug 2022 22:31:54 3216 MainThread BaseLive.py[line:66] INFO [Site:BiliBili Room:25628834] 等待开播 Sun, 14 Aug 2022 22:32:00 12344 Thread-2 BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:04 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:14 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:24 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:34 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:44 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:32:54 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:04 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:14 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:24 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:34 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:44 3216 MainThread BaseLive.py[line:80] DEBUG [Site:BiliBili Room:25628834] 间隔不足,使用过去状态 Sun, 14 Aug 2022 22:33:54 3216 MainThread BaseLive.py[line:72] DEBUG [Site:BiliBili Room:25628834] 允许检查

ZhaoWeicheng98 commented 2 years ago

这个间隔不足应该与此状况无关(是负责检查开播状态的提示输出),这个建议检查FFmpeg是否正确安装,看起来像是ffmpeg没有被正确调用。

Tea-NT commented 2 years ago

搜了下没有ffmpeg相关的错误额,日志里error都没有搜到。 image image