lossless1024 / StreaMonitor

Adult live stream downloader for advanced people. I could have chosen a better name.
GNU General Public License v3.0
207 stars 53 forks source link

Myfreecams 60FPS #92

Open iLeeaal opened 1 year ago

iLeeaal commented 1 year ago

Hello, there is a problem recording streams made at 60fps on myfreecams, like this: https://github.com/lossless1024/StreaMonitor/assets/93021748/1b577796-0b2d-4ab2-a2fa-a1185b1f1c32

I am aware that it is a slightly common problem, but the python code I use to manually download does not have this problem, I was wondering if I can get StreamMonitor to use my code to download the shows, if so, how would I do it?

I'm not a programmer, this code was made by gpt chat! The code: https://drive.google.com/file/d/1T6Nv0znMj6vmxLLu2Yv6_0VOGn7TiwNo/view

Thanks!! 🤝

DerBunteBall commented 1 year ago

I think you are using the playlist URL StreaMonitor exports before using it further?

The tool you have is a simple ffmpeg caller. Due to this ffmpeg selects the quality in case of a variant playlist. Because of the way it does I think it selects 1080p60.

StreaMonitor has a quality selection which is used - hard coded - for sites that have multiple qualities. I think this fails. It searches for a tuple of resolution values e.g. (1920, 1080) in the propertys of a playlist within a list of playlists. The problem is this occures two times here. One for "normal" and one for 60fps. A difference is e.g. the bandwidth. The higher bandwidth is the 60fps variant.

Your code simply is a GUI that calls ffmpeg like this:

ffmpeg -i url_entered_in_gui -c copy outputfile

If the URL is variant palylist ffmpeg simply selects the quality by itself. As told above I assume that it selects the highest possible. It seems that ffmpeg not only looks for resolution but also for e.g. bandwidth. In case of a chunklist it simply downloads it directly.

So I think the StreaMonitor code needs a fix which is able to differentiate two variants with same resolution.

I think @lossless1024 can tell more.

iLeeaal commented 1 year ago

I think I understand, thanks for replying 🤝

lossless1024 commented 1 year ago

@iLeeaal This should not happen. Do you have enough bandwidth? When you download these shows are there other running downloads too? Did you stop other downloads when you used your own code? Try only one recording at a time with StreaMonitor.

@DerBunteBall I haven't seen any cases in the past where same resolutions would occur multiple times with different framerates. I checked some MFC streamers and when they had 1080p60 stream, there were no other 1080p streams in the playlist. Btw, it's possible that it might happen shortly, so I put this onto my todo list.

iLeeaal commented 1 year ago

@lossless1024 I'm using google translator, i hope i understand and answer you correctly. I have 400mb download and 200mb upload with no usage limits. I had some models on the list, but it was downloading only one at a time. The one in the video i sent (Wizard on mfc -> 1080p 60fps) was at 3 am, but at 8 pm i had already downloaded (ZillyKitty on mfc -> 720p 60fps) with the same problem and it was also the only download running at the moment. I don't pause the downloads, but since this problem only occurs in 60fps, i download a maximum of two livestreams at the same time with my code.

I will try to leave only one model active in the program to see if it solves the problem.

Thank you so much for answering me 🙏

Edit: I even closed the browser to let the PC downloading only the livestream, but it didn't work, so i did a comparison download (just to show that it's not a problem with the livestream, i don't want to sound ungrateful)

StreaMonitor-master: https://github.com/lossless1024/StreaMonitor/assets/93021748/0c508e88-266b-4440-b192-0bce373f5d84

Chatgpt code: https://github.com/lossless1024/StreaMonitor/assets/93021748/18ce7a3a-dfa9-4360-89b7-c60c04aea744

DerBunteBall commented 1 year ago

@lossless1024

Found stuff like this with MFC models:

(1920, 1080)
7328000
(1920, 1080)
4928000
(1280, 720)
2728000
(640, 360)
1528000
(320, 180)
878000

Format is

Resolution Tuple
Bandwidth

Thas's what can be found in the m3u8 object.