hr3lxphr6j / bililive-go

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

m1 mac和docker均有问题,无法正常使用 #347

Closed sirlioniva closed 6 months ago

sirlioniva commented 1 year ago

docker,我使用的就是chigusa/bililive-go镜像,但是部署后,只能添加b站的直播间,而且可以正常录制,其他任何直播间都加不进去,不管是网页添加,还是直接修改配置文件,如果是修改配置文件加入斗鱼直播间,直接docker就连不上启动失败了 配置文件也是很正常的

rpc:
  enable: true
  bind: :8080
debug: true
interval: 20
out_put_path: /srv/bililive
feature:
  use_native_flv_parser: false
live_rooms:
- url: https://live.bilibili.com/2807295
  is_listening: true
out_put_tmpl: ""
video_split_strategies:
  on_room_name_changed: false
  max_duration: 10m0s
cookies: {}
on_record_finished:
  convert_to_mp4: false
  delete_flv_after_convert: false
timeout_in_us: 60000000

mac我使用的bililive-darwin-arm64和bililive-windows-arm64(在虚拟机中使用),均出现一个问题,就是有时斗鱼候录制出来的视频会卡顿,看视频容量比其他的小就知道下载过程中出现了断连,但是出现几率比较高,我甚至同时开启两个进程一起下载,都会随机出现某个视频断链容量变小(而且不是不分割文件就不会断链,基本上容量只要变小的,多多少少都卡顿了一部分画面,有的会每隔xx秒就卡一次,容量就特别小,有的随机几个画面突发卡顿,容量就小一点,我的配置和docker的这个一模一样)

截屏2023-01-21 12 36 21

因为我只有录制斗鱼的需求,所以docker完全没法用,然后arm的两个版本都录出来的视频不行,win本我手头没有,无法测试了,而且我在用这个录制的同时,直接把推流放在浏览器里面录制,是没有任何问题和卡顿断链的,哪怕这文件到20g都不会卡顿,而且同时下载几个同一个直播间的推流也不会出现卡顿,所以应该是软件下载的时候出现了问题才对(难道这个app被斗鱼风控了?)

kira1928 commented 1 year ago

你用的是 0.7.2 的版本吗? 录制不了的直播间可以发任意一个出来吗? 录制不了的时候命令行有没有输出错误信息?可以提供一下吗?

sirlioniva commented 1 year ago

你用的是 0.7.2 的版本吗? 录制不了的直播间可以发任意一个出来吗? 录制不了的时候命令行有没有输出错误信息?可以提供一下吗?

是最新版,docker也更新过了,0.7.2 比如周淑怡直播间https://www.douyu.com/290935 我还在douyin,huya都找过随机直播间,都加不进去,只有b站能加进(不是能加进去监控但无法录制,是直接加不进去,添加后一直转圈,然后自动消失,配置文件也没有变化,修改配置文件添加直接docker启动失败) mac版则不存在这问题,douyin douyu b站 huya都正常 docker我不知道在哪里看错误信息,会存在哪个地址呢?(我对这些都是一知半解,勉强能用的状态,望见谅)

kira1928 commented 1 year ago

不是 docker 的时候,比如 m1 命令行执行的话是可以看到错误信息的。这时候添加房间失败的错误信息有吗?

sirlioniva commented 1 year ago

不是 docker 的时候,比如 m1 命令行执行的话是可以看到错误信息的。这时候添加房间失败的错误信息有吗?

mac只有录制的视频卡顿,容量偏小的问题,没有加不进去的问题,和docker是不同的问题

kira1928 commented 1 year ago

在 mac 上你是如何启动 docker 的?可以发一下启动参数吗?

kira1928 commented 1 year ago

嗯,能透漏一下路由器的型号吗?我看看他docker怎么个跑法。 还有 0.7.2 的话,可以在网页版左侧打开系统信息面板,下面有一个复制信息到剪贴板的按钮,按一下,然后把那个剪贴板内的信息也发上来好吗?

sirlioniva commented 1 year ago

在 mac 上你是如何启动 docker 的?可以发一下启动参数吗?

我是在tplink6088路由器上部署的docker,simpledocker,我刚才重新启动docker,添加了一下斗鱼直播间,没任何反应,这是我找到的日志

截屏2023-01-21 13 25 45
kira1928 commented 1 year ago

感谢详细的介绍!

time="2023-01-21 13:22:59" level=debug msg="Http Request" Method=POST Path=/api/lives RemoteAddr="192.168.0.2:53696"
time="2023-01-21 13:23:33" level=debug msg="Http Request" Method=PUT Path=/api/config RemoteAddr="192.168.0.2:53696"
time="2023-01-21 13:23:33" level=debug msg="Http Request" Method=GET Path=/api/lives RemoteAddr="192.168.0.2:53696"

看这段通信记录应该是添加房间时的通信内容。最后没添加成功但也没有错误信息呢。我本地试了一下,确实添加失败也不会有任何提示,这不太好。 关于错误信息不足的问题,我们这里是有一个 issue 的:https://github.com/hr3lxphr6j/bililive-go/issues/299 。 如果你不急的话,我这两天看看能不能完善一下 log,然后你之后用 0.7.3 之类的新版本再启动看看? 到时候应该会比较容易排查问题。

sirlioniva commented 1 year ago

好的,我会第一时间更新,

还有mac上斗鱼的视频会卡顿容量变小丢失一部分视频帧,这个问题可以帮忙看一下嘛

kira1928 commented 1 year ago

斗鱼录制问题,嗯,有很多这类问题。 我感觉这个修复比较困难, 所以把修复它们作为下一个大版本更新的目标了。 你可以看一下我预计在 0.8.0 中修复的其他 issue,有些和你的情况是比较相似的。 这个说实话修不修的好我也不是很有信心。不过有一点你可以先试一下,就是把配置的 use_native_flv_parser 改为 true。有人反映这样录制的效果比用默认ffmpeg的要好。 不过这个 flv parser 也有它特有的问题。反正先等 0.8.0 吧。。

sirlioniva commented 1 year ago

好的,期待更新,谢谢啦

kira1928 commented 1 year ago

另外我想问一下你用的是什么浏览器?我写的复制到剪贴板按钮在你那里为什么不支持呢orz

sirlioniva commented 1 year ago

另外我想问一下你用的是什么浏览器?我写的复制到剪贴板按钮在你那里为什么不支持呢orz

safari,mac下的是支持的,路由docker的不行

kira1928 commented 1 year ago

那就有点奇怪了。这个功能是一个前端的 javascript 函数,按理说 mac 和 docker 的网页前端代码应该是一样的。 嗯,很多问题。 我可能得买一台你那个路由器试试看了。正好过年,我考虑考虑。

--------- 更新 --------- 我懂了, 因为本地是 localhost,路由器网页是其他 ip,剪贴板 API 要求域名是本地,或者网络协议是 https,所以路由器上的复制不了。 我一直在本机开发,所以一直没发现!

kira1928 commented 1 year ago

你的路由器固件版本是多少呀?我查了一下,有人说这个路由器本身有频繁断流的问题:https://www.bilibili.com/video/BV1kZ4y147tfhttps://www.bilibili.com/video/BV1y94y1S7hNhttps://www.bilibili.com/video/BV1Gt4y137bw

sirlioniva commented 1 year ago

你的路由器固件版本是多少呀?我查了一下,有人说这个路由器本身有频繁断流的问题:https://www.bilibili.com/video/BV1kZ4y147tfhttps://www.bilibili.com/video/BV1y94y1S7hNhttps://www.bilibili.com/video/BV1Gt4y137bw

已经是最新版1.0.22了,断流问题我从来没遇到过,而且我如果直接用浏览器下载推流,全程是不会有任何卡顿和丢帧的,我即便是同一个直播间下载2 3个,下下来的都不会卡顿丢帧,但是全部需要我自己手动,所以我才想找个专门的软件,但现在就是似乎这个软件会随机卡顿丢帧,导致视频不完整了

那个flv的选项我开了,录制斗鱼的视频全部变成1分钟一小段,设置的时间分段不生效,而且每一段1分钟的视频彼此也不是100%连续,会有几秒的重复,很奇怪

kira1928 commented 1 year ago

我这里重现不了,好痛苦 ><

而且我如果直接用浏览器下载推流,全程是不会有任何卡顿和丢帧的

你这里说的用浏览器下载推流,下载的是在哪里取得的 url 呀?

sirlioniva commented 1 year ago

我这里重现不了,好痛苦 ><

而且我如果直接用浏览器下载推流,全程是不会有任何卡顿和丢帧的

你这里说的用浏览器下载推流,下载的是在哪里取得的 url 呀?

其他的斗鱼插件,可以复制推流地址,放入本地播放器播放

你说的复现是指斗鱼推流卡顿吗?因为是随机的,我无法确定多久出现,但我做完录制了一晚上,出现了好几个分段视频容量偏低,一打开就是周期性卡顿,部分帧数丢失了,但音频是正常的,我转吗成mp4依然是卡顿的,音频正常,这些都是没有进行pk的直播间,没有出现分辨率变化,但是会异常丢帧

kira1928 commented 1 year ago

啊啊!那个插件连接可以发一下吗?我看看我们用的链接一不一样。

sirlioniva commented 1 year ago

douyuex,github就有

kira1928 commented 1 year ago

谢谢,我有台m1 mac,我试试

kira1928 commented 1 year ago

啊对了再问一下,你m1 mac用的ffmpeg是怎么安装的,还有安装的版本可以告知一下吗

sirlioniva commented 1 year ago

就是homebrew安装的,装好ffmpeg就直接用了,没改过参数 ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers built with Apple clang version 14.0.0 (clang-1400.0.29.202) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.1.2_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon

kira1928 commented 1 year ago

我发现在设置里打开 debug: true 会输出很多有用的关于录制问题的错误信息。你有时间的话,可以在 mac 上打开这个配置路一段发生卡顿的直播,然后设法保存输出的log吗? 打开之后输出的 log 量挺大的,要小心。

sirlioniva commented 1 year ago

我发现在设置里打开 debug: true 会输出很多有用的关于录制问题的错误信息。你有时间的话,可以在 mac 上打开这个配置路一段发生卡顿的直播,然后设法保存输出的log吗? 打开之后输出的 log 量挺大的,要小心。

刚好录了一段,倒数第二个视频出现卡顿,最后一个视频是正常的,但视频我删了,只有命令行里的记录了,你看看是不是你需要的

终端存储的输出.txt

sirlioniva commented 1 year ago

我发现在设置里打开 debug: true 会输出很多有用的关于录制问题的错误信息。你有时间的话,可以在 mac 上打开这个配置路一段发生卡顿的直播,然后设法保存输出的log吗? 打开之后输出的 log 量挺大的,要小心。

今天也录制了一遍,也出现了很多次视频卡顿容量偏小的情况,做一下参考

截屏2023-01-22 22 35 35

终端存储的输出.txt

前面容量较小的为手机直播,后面为电脑直播,这次比较巧手机一次容量偏低的情况都没,但是电脑直播的这一段频繁出现容量偏低

kira1928 commented 1 year ago

感谢提供log! 这周末没做出输出详细log的功能。。 周一到周五上班时间比较忙(刚入职要好好表现),可能要拖到下周末或以后了。

kira1928 commented 1 year ago

请看一下这位大佬的回答:https://github.com/hr3lxphr6j/bililive-go/issues/351#issuecomment-1400720052 也许能帮助解决 docker 内无法添加直播间的问题。

sirlioniva commented 1 year ago

m1 mac使用最新的0.7.3,使用use_native_flv_parser: true后,录制卡顿情况大幅度减少,但是路由器docker依然无法录制非b站以外的直播间,6088的docker暂未找到+dns命令的办法,有个命令行输入的地方但是加入命令后,docker启动失败,不会折腾,没法确认到底什么问题

kira1928 commented 1 year ago

我在 master branch 里加入了输出更多 debug 信息的代码,等一会儿应该会发布一个 0.7.4 版本的 release。之后你用 docker 安装 0.7.4 ,然后看一下 debug: true 设置下的 log 好吗? 这个只有 b 站可以录制的情况如果真的是 dns 问题,新增加的 debug log 也许能帮我缩小可能出问题的范围。

sirlioniva commented 1 year ago

我在 master branch 里加入了输出更多 debug 信息的代码,等一会儿应该会发布一个 0.7.4 版本的 release。之后你用 docker 安装 0.7.4 ,然后看一下 debug: true 设置下的 log 好吗? 这个只有 b 站可以录制的情况如果真的是 dns 问题,新增加的 debug log 也许能帮我缩小可能出问题的范围。

用0.7.4有debug了,依然是斗鱼无法添加,b站可以 c6225ee6cf3a-all.log

kira1928 commented 1 year ago

感谢!范围缩小到只有4个可能报错的地方了。 下一步需要给这几种不同的错误安排不同的错误信息,然后再让你添加斗鱼直播间触发一次错误报告,就可以定位到具体位置了。 虽然不是定位到就等于解决了,但知道问题等于解决了问题的一大半!

我是可以为你专门编译一个可执行文件的。不过你的问题是docker,还是用 docker hub 上现成的镜像更新比较方便吧。 我后面有机会更新版本的时候会把这几处 log 加进去,等新版本发布了再麻烦你测试一下好吗。

kira1928 commented 1 year ago

@sirlioniva 这个周末有空吗?可以加qq群交流吗? 我想看一下你那边的docker的情况,然后让你敲几个命令试试看。

群名称:非官方bililive-go交流群 群号:765848211

hanmingpan commented 6 months ago

@sirlioniva @kira1928 这个问题解决了吗?我也遇到同样的问题