ihmily / DouyinLiveRecorder

可循环值守和多人录制的直播录制软件,支持抖音、TikTok、快手、虎牙、斗鱼、B站、小红书、pandatv、afreecatv、flextv、popkontv、twitcasting、winktv、百度、微博、酷狗、花椒、流星、Twitch等平台直播录制
MIT License
3.94k stars 459 forks source link

Bigo直播画质问题 #96

Open justdoiting opened 7 months ago

justdoiting commented 7 months ago

使用本项目录制Bigo直播,最高分辨率是540x960,而使用在别处的工具则可以录制720x1280,同样是使用ffmpeg,同样是python调用,比特率也有区别

下面是对比图 QQ截图20231214182314

配置如下图 QQ截图20231214182822

另一个工具源码 bigo录制.txt

ihmily commented 7 months ago

另一个工具源码 bigo录制.txt

如果你是上面这个代码录制的,不用测试,看代码也看得出来,录制出来的视频质量和本项目是一样的,因为m3u8直播源地址获取方式和本项目的相同。

justdoiting commented 7 months ago

另一个工具源码 bigo录制.txt

如果你是上面这个代码录制的,不用测试,看代码也看得出来,录制出来的视频质量和本项目是一样的,因为m3u8直播源地址获取方式和本项目的相同。

那造成分辨率不一致的原因是什么呢,我看那个源码就是用ffmpeg直接下的,也没有指定分辨率

ihmily commented 7 months ago

你可以运行上面的代码实测一下,我测试是和本项目代码下载的视频相同分辨率的。

没看到你说的项目,但有两种可能:

1、你说的那个视频录制工具对视频重新编码过,比如你截图显示的一个是H264、一个是AVC1,显然不同,我猜测是用AVC1重新编码,并设置了分辨率。

2、实际使用的不是上述代码进行录制的,而是其它接口

justdoiting commented 7 months ago

我说的那个工具就是这个源码TXT改成py后缀直接运行,这次我把flv改成ts了,运行结果如下 QQ截图20231214205005

本项目也是ts格式,画质就差好多 QQ截图20231214205159

ihmily commented 7 months ago

你这个直播间地址,我用本项目录制也差不多码率,甚至更大。

1220992d83067f2368d2bafc370d0b3

image

justdoiting commented 7 months ago

你这个直播间地址,我用本项目录制也差不多码率,甚至更大。

1220992d83067f2368d2bafc370d0b3

image

2023-12-14 20:47:34,020 - 错误信息: Command '['ffmpeg', '-y', '-v', 'verbose', '-rw_timeout', '15000000', '-loglevel', 'error', '-hide_banner', '-user_agent', 'Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-G973U) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/14.2 Chrome/87.0.4280.141 Mobile Safari/537.36', '-protocol_whitelist', 'rtmp,crypto,file,http,https,tcp,tls,udp,rtp', '-thread_queue_size', '1024', '-analyzeduration', '2147483647', '-probesize', '2147483647', '-fflags', '+discardcorrupt', '-i', 'https://1023A275.cubetecn.com:1448/list_3453060592_2752937261_0.m3u8', '-bufsize', '5000k', '-sn', '-dn', '-reconnect_delay_max', '30', '-reconnect_streamed', '-reconnect_at_eof', '-max_muxing_queue_size', '64', '-correct_ts_overflow', '1', '-c:v', 'copy', '-c:a', 'copy', '-map', '0', '-f', 'segment', '-segment_time', '3600', '-segment_format', 'mpegts', '-resettimestamps', '1', 'E:/DouyinLiveRecorder/DouyinLiveRecorder.v2.0.7/小 (今晚10点官p)/小_ (今晚10点官p)_2023-12-1420-47-27%03d.ts']' returned non-zero exit status 1. 发生错误的行数: 923

justdoiting commented 7 months ago

99W~2MY $X7B0(@5I6EM%L

ihmily commented 7 months ago

用MP4格式录制

justdoiting commented 7 months ago

image

justdoiting commented 7 months ago

怎么搞运行日志,我想看看到底哪一步出了问题

ihmily commented 7 months ago

你可以修改spider.py文件,直接运行spider.py获取直播流地址,直接用ffmpeg命令在控制台录制 也可以运行你那个代码,获取直播流地址,然后分别复制两个直播源地址,在播放器添加链接直接对比两个视频流

image

image

justdoiting commented 7 months ago

image 又可以了,那个源码搞出来两个源,丢potplayer无法连接

justdoiting commented 7 months ago

image 搞出来了

justdoiting commented 7 months ago

image

justdoiting commented 7 months ago

还有一个非常致命的问题,程序启动的时候,如果主播刚好在PK的时候,它录制的分辨率只有360x300,当主播结束pk之后,理应变回720x1080,但是它没有变,画面分辨率固定成刚录制时的分辨率 image

image