hr3lxphr6j / bililive-go

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

[Bug]: 实测抖音直播画质不是最高画质 #349

Closed limoer1 closed 5 months ago

limoer1 commented 1 year ago

程序版本

0.7.0

所使用的 config 文件的内容

No response

程序 log

无错误

自由描述

因为我同时也在手机上录屏,导出来发现和工具录制的画质有很大差别 我不知道是工具没默认最高画质的原因还是手机端和网页端的推流不一样 请检测一下!!

kira1928 commented 1 year ago

确实有可能!看代码只是随机选了在数组中排最上面的画质而已。一般来说应该最上面就是最好了,但也可能会有变化。 另外有人说手机登陆了账号的话,看直播的清晰度会更高。录播程序是相当于未登录用户,也许因为这个录播质量会低一些。 第三种可能是,抖音直播有两种流,一种是 flv,另一种是 hls 也就是 m3u8 的那种。程序默认是录 flv 的流的,但其实 hls 更清楚? 第四种可能是手机直播默认可以获得更高的清晰度。因为我们是用和电脑网页端看直播一样的方式录制的,可能手机看的时候用的视频流和电脑端完全不同。

后面的开发计划里是有让用户可以从我们能找到的视频流里自己选一个进行录制的,也就是这个 issue。 等这个功能上线之后你可以看一下在你那里是不是用了最高画质录抖音。 不过现在积压的开发任务有点多,我的可支配业余时间又变少了,所以只能让 issue 慢慢排队了。

limoer1 commented 1 year ago

实测是与登录账户无关系,因为我在网页端登录账号观看,抖音的网页端画质并无太大变换 应该还是推流的问题,就手机端的画质始终比网页端更好的感觉...... 期待大版本吧,感谢!

limoer1 commented 1 year ago

还有现在0.7.0版本怎么修改成m3u8,我试一下看画质会不会变化

kira1928 commented 1 year ago

现在没有实现用户自己选择m3u8或其他源,都要等以后慢慢实现了。

buzhixihuan2021 commented 1 year ago

没有区别的手机端网页端 解析出来的地址一样的你抓包就知道了。 猜测为啥你觉得画质差,因为现在手机屏幕的发展已经远超 你家里的电脑屏幕了,展示在你眼前的画面肯定是不一样的。 DCI-P3、Adobe RGB sRGB JNCD △E HDR10+ 10bit 1900nit 专业色彩管理 屏幕颜色丰富、真实、出彩 (不同屏幕你都会看出色彩差异的,正常现象)

limoer1 commented 1 year ago

请问你是怎么加cookie的,我加上了没效果

limoer1 commented 1 year ago

作者大大,请问cookie要怎么设置,因为我是有点小白,不知道cookie在哪里获取 然后看到你下边的设置格式,我也无从下手T.T

kira1928 commented 1 year ago

@limoer1 不知道cookie在哪里获取就有点难办了。。 也许你可以手机扫码登陆抖音网页版,然后用各种浏览器插件取出抖音的 cookie 写进配置文件里。 取出来的 cookie 格式应该是类似 key1=value1;key2=value2; ... 的形式。

注意!千万不要把你取到的 cookie 原文发出来。这会使你的账号陷入危险之中。 你可以把里面的 key 和 value 改成其他随机的字符,然后发出来提问。

@insoxin 大佬你是怎么取 cookie 的呢?可以分享一下吗?

kira1928 commented 1 year ago

我是觉得抓包对普通用户来说难度有点太高了。。

kira1928 commented 1 year ago

我看过有的项目会把登陆时的二维码显示出来给用户扫,然后程序作为中间人代替用户登陆视频网站来获得 cookie。 如果我们也这样做的话,对比较小白的用户来说就方便多了。

@limoer1 不好意思,使用 cookie 这个功能目前还比较偏程序员向,一般用户想获 cookie 是比较复杂的。 后面我可能会尝试让用户能在网页端扫码直接登录,实在不行可能会开发一个 chrome 浏览器插件来协助获取 cookie 和添加直播间给服务器端什么的。

kira1928 commented 1 year ago

我也是好几个项目并用的。 b站录播我用的 BililiveRecorder,他能录弹幕!不过他有个问题是加载巨大弹幕量的时候是一口气把几百MB的弹幕xml文件完整请求回浏览器里的,这样绝大多数手机都处理不了。 我后面也准备给这边加弹幕录制功能。如果原作者不介意的话,我是想引入更多花里胡哨的功能的,比如直播实时回看。 直播的时候突然错过了什么可以拖动进度条退回几十秒之前重新看,看完再跳回最新时间点继续看直播。尤其看比赛的时候我特别想要这个功能!

kira1928 commented 1 year ago

我是在内网看,大带宽倒是不用,不过大内存应该是需要的。我的群晖加了内存,现在有20G内存,我正在寻找能榨干它机能的应用呢。 直播实时回看我的想法是,flv parser 一边录制,一边在内存中保存一个关键帧数组,里面循环保存最后一两个小时的内容里各个关键帧在保存进硬盘的 flv 文件中的起始位置。 这样用户想回看某一时间的时候,我可以从关键帧数组中找到用户想看的那个时间点在已经保存的 flv 文件的什么位置上,从那里开始读取文件然后整理成一个合法的 flv 直播流返回给用户。 超过保存范围的老的关键帧数组就临时保存在某个文件里。 等视频整个录制完成以后,用保存的关键帧数据重构整个录制的 flv 视频的文件头,这样不用转录成 mp4 也能来回拖动进度条了。 大致思路是这样,就是不知道什么时候才有足够的动力去做了。 真做成了的话,这个功能肯定能让这个项目在同类工具中脱颖而出!

limoer1 commented 1 year ago

非常感谢两位大佬的解惑,我还是等大版本更新吧T.T

然后还有我使用最新的0.7.3版本,抖音录制会有部分直播间在直播中时会监测但是不会进行录制,考虑到大佬的工作量已经堆满 我就不再发布多一个issues了,等大版本更新后看看还会不会出现这个问题。

目前退版本使用0.7.0是没问题,也是比较稳定使用的版本!

kira1928 commented 1 year ago

啊,有问题的话不用顾虑,直接发 issue 比较好。我虽然没时间解决,但可以像这样留言,可以尽量缩小可疑的范围。只是回复评论对我来说不算负担,我很开心的~