notr1ch / TwitchTest

Bandwidth tester for Twitch
GNU General Public License v2.0
140 stars 14 forks source link

Other Streaming Services #2

Open jessepink opened 6 years ago

jessepink commented 6 years ago

I know that the name of the program is Twitch Bandwidth Test, but if possible I'd like to be able to either a) add custom RTMP servers or a list of those from other services, such as Youtube Live, Facebook Live, Mixer, Restream.io, etc.

The primary reason that I would like this is because I need SOME way to convince MediaCom customer support, my ISP, that they throttling my upload bandwidth, in particular the bandwidth to streaming services. There are many posts on the customer support forums with the same issue but they all say "take it up with twitch, the signal looks fine at your house!" yet it's not just Twitch that we can't stream to. (For example, I pay for 20 Mbps upstream, yet from your tool I can see that I"m getting less than 500 kbps to all of the NA ingest servers for twitch.) I simply want/need a way to test similarly to other services.

notr1ch commented 6 years ago

One of the main reasons other services aren't supported is that they don't have a test ingest feature. A TwitchTest test stream consists of standard RTMP packet headers but with random (invalid) data. Anything trying to decode it will likely error out or potentially play damaging audio waveforms. Services like Facebook and YouTube will try decoding the stream for transcoding purposes and may reject such an invalid stream.

For your use, I'd suggest streaming to other services using OBS, and seeing what the peak bitrate is before you start dropping frames.

jessepink commented 6 years ago

Thank you for the explanation. I wasn't exactly sure how the test exactly worked, but it makes sense.

Your bandwidth tester is so convenient that I was hoping that it would work with others as well, because about 10% of the time I'll magically get at least most of the bandwidth I'm paying for (which is 20 Mbps, but TwitchTest at least puts me in the 7-8 Mbps range) whereas most of the time I get between 1-2 Mbps to any streaming server. Since I can only "prove" it using Twitch's ingest servers, they believe the issue is on Twitch end... trial and error via OBS with the other services, while possible, probably will not convince them there is a problem, but it will be the next thing I try.

Thanks for the response!

MrArca9 commented 6 years ago

If this was to be added, then it would require a video file to be streamed to the service.

The workflow would be something along the lines off:

Select Server- Input Key- Select MP4 testing file- NOTE: The duration of the test is relient on the length of the video file. Please be aware that your channel will go live with this MP4 file playing on stream.

notr1ch commented 6 years ago

One issue with using a file is that it might not be at a bitrate high enough for accurate testing, and depending on the service, sending it at faster-than-realtime may cause other issues.

MrArca9 commented 6 years ago

The other solution was to create a generated file from code with the proper bit rate. (Trying real hard to not use base64 for file creation lol)

Could (possibly?) pack it into the .exe and use it internally when testing?