vMix Forums
»
General
»
General Discussion
»
Forcing YouTube to use VP09 codecs
Rank: Member
Groups: Registered
Joined: 9/7/2020(UTC) Posts: 15 Location: Perkinston
|
Over the last few months, I have been on a mission to improve our live stream quality at our church on YouTube. I've converted our cameras to use 1080p 60 fps and upped the bitrate to 13 mbps. It seemed that even if I sent a high quality image that YouTube would take my HEVC encoder settings and change to AVC1 resulting in blurry images. After a lot of research, I've adjusted my encode size to 2048 x 1152 with my HEVC encode format and set the preset to p5. This appears to trigger the VP09 codec, but I don't know if it will stay that way. We have less than 1000 followers, so that might be part of the problem. I am using the 1440p 60fps stream key in YouTube which seemed to fix some problems, but the quality would still downgrade.
Anyone else experience this issue?
Brian
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 4/23/2017(UTC) Posts: 1,231 Location: Germany Thanks: 3 times Was thanked: 168 time(s) in 150 post(s)
|
Hmm, to me it sounds there are some missmatches. If your camera resolution is 1080p60 then there is no point in streaming in any higher resolution than that. 60fps could be another issue. Movement looks un-natural at higher fps, unless this is a wanted effect or you really have high movement. I would recommend 30fps. This has two things to consider. The camera chip has twice the time to expose an image. This means that you need less light or can close the iris more which is often reflected in amplification by x db compared to the 60fps. Almost the same applies to streaming. 60fps needs twice the bandwidth than 30fps. Please try a 1080p30 and step up the codec profile and bandwidth. This would have the most impact on quality. And please think of users with mobile devices attending your stream. Bandwidth and screen resolutions might be poor compared to computer screens. h264 vs h265 is another topic to think about. You will get lower bitrates at the same encoding quality with h265 with the cost of encoding power and most impacting at the receiving side. The more you compress, the more you have decompress. Older devices might simply struggle with the load. Bandwidth consideration can be understood in compression as well. The higher the bandwidth the less compression. Ideal would be no compression to receive exactly what you ingest. But that would mean at 1080p60 you would need 6 Gbps constantly. This is unrealistic. The less compression the less compression artefacts.
I hope this gives you a better understanding and a new approach to optimize your settings.
|
|
|
|
Rank: Member
Groups: Registered
Joined: 1/11/2024(UTC) Posts: 17 Location: Perkinston Thanks: 3 times Was thanked: 1 time(s) in 1 post(s)
|
Thank you for the quick response. Originally, I was streaming 1920x1080 30fps using H.264. I did that for a few years and wanted to see if I could improve the overall quality. With the release of vMix 27 and the ability to use HEVC and AV1 I switched to HEVC. I don't have an NVIDIA 4000 GPU, so HEVC (H.265) was as good as I could get. The 60 fps vs 30 fps really doesn't matter much in this context. This is a YouTube issue where they limit which codec gets utilized. I've read a lot on OBS forums where they think it's driven by anything 1440p and above getting the VP09 codec. There was a lot of talk of simply upconverting your 1920x1080 stream to 2048x1152 to trigger the VP09 codec. It's still 16:9 ratio and YT sees it as just Full HD. The live stream does indicate it's VP09, but after you stop the live stream it converts it to AVC1. I've read it seems to be based on volume to your channel. If you don't have at least 1000 followers you won't get the best quality no matter what you send. I really don't want to push more than 13 mbps to YT. Even with an NVIDIA 3070 GPU you have to be careful to not overload it. Ideally, I want to keep it below 60% utilization.
I have a lower res stream going to FB at the same time for cell phones.
I don't have any bandwidth limitations here. Our building has gigabit fiber up and down, so I never hit any limits in that regard.
We'll just switch back to 1920x1080 and live with it I suppose.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 8/7/2015(UTC) Posts: 31
Thanks: 12 times Was thanked: 3 time(s) in 3 post(s)
|
We have been doing this for about a year on the live streams of swimming events we do. Our cameras are all 1080p50 but we upscale to 1440p and that triggers YouTube to offer VP9 as a codec for people watching. I spent many hours reading forums to try and find a way to encourage YouTube to encode with VP9 and this was the only way that worked. I have just checked one of our streams here ?list=PLvjxIeuyT-6qP3orLzW1lgwbe7bsaQuY6&t=9783 and it is still using VP9. That channel has ~1900 subscribers. I believe the bigger your channel the more likely it is that YouTube will use VP9 for lower resolution streams, which makes sense as they don't want to use the extra processing required to offer VP9 unless it's worth it. Our opinion is it is worth the effort, even though our cameras are only 1080p the quality saw on our local 35mbit/sec 1080p recordings was so much better than the old AVC1 codec YouTube used, and 'encouraging' YouTube to offer VP9 to our eyes gives a much better quality stream which getting closer to our local recording. Regards, Mark Leman
|
1 user thanked markleman for this useful post.
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 7/4/2021(UTC) Posts: 312 Thanks: 8 times Was thanked: 43 time(s) in 37 post(s)
|
Originally Posted by: bscarbrough1903 I've converted our cameras to use 1080p 60 fps and upped the bitrate to 13 mbps. You'll get more value out of that bitrate if you reduce your frame rate. 60fps isn't going to give you better quality in any meaningful way during a sermon. Originally Posted by: bpscarbrough The 60 fps vs 30 fps really doesn't matter much in this context. How do you figure? You're sending the stream at 13 Mb/s. Those 13 Mb can be used to get more quality out of frames or get more frames. You're looking for better quality. Sending twice as many frames as you need to is needlessly hindering the quality of the frames, not helping. Every Megabit that goes into those extraneous frames isn't going to the quality of the frames you actually need. Originally Posted by: bpscarbrough If you don't have at least 1000 followers you won't get the best quality no matter what you send. I really don't want to push more than 13 mbps to YT. Even with an NVIDIA 3070 GPU you have to be careful to not overload it. Ideally, I want to keep it below 60% utilization. And, again, you'll get more value out of that 13 Mb/s by cutting your needlessly high framerate in half. It may not be the full solution you're looking for, but it's still something that provides you more detriment than benefit that you can change to improve your stream quality--which is your stated goal, right?
|
1 user thanked WaltG12 for this useful post.
|
|
|
Rank: Member
Groups: Registered
Joined: 1/11/2024(UTC) Posts: 17 Location: Perkinston Thanks: 3 times Was thanked: 1 time(s) in 1 post(s)
|
I was talking about how YouTube encodes it. It just seems that they aren't going to give you the VP09 codec regardless of what you send them until you get a lot of followers. However, I did notice that during the livestream it was VP09. As soon as it ends, it switches. Not sure what that's about. I guess they are processing it after the fact.
I compromised at 10 mbps, 1080p 60fps, with P5 preset using HEVC. It seemed to be a good balance and the laptop NVIDIA 3070 GPU was around 40%. These presents P1 - P7 really trigger the most GPU processing. From P5 to P6 is a big jump and P7 is way too much for the hardware for little gain.
The only reason I used 60fps was to smooth out a little blurring when someone walked across in front of the cameras. These are PTZOptics 20x NDI cameras.
I could always switch it back to 30fps, but for now I'm going to see if it remains stable.
I understand your point about the the framerate.
After some soak time, I may switch it back to 30.
Thanks for the feedback.
|
|
|
|
Rank: Member
Groups: Registered
Joined: 1/11/2024(UTC) Posts: 17 Location: Perkinston Thanks: 3 times Was thanked: 1 time(s) in 1 post(s)
|
Originally Posted by: markleman We have been doing this for about a year on the live streams of swimming events we do. Our cameras are all 1080p50 but we upscale to 1440p and that triggers YouTube to offer VP9 as a codec for people watching. I spent many hours reading forums to try and find a way to encourage YouTube to encode with VP9 and this was the only way that worked. I have just checked one of our streams here ?list=PLvjxIeuyT-6qP3orLzW1lgwbe7bsaQuY6&t=9783 and it is still using VP9. That channel has ~1900 subscribers. I believe the bigger your channel the more likely it is that YouTube will use VP9 for lower resolution streams, which makes sense as they don't want to use the extra processing required to offer VP9 unless it's worth it. Our opinion is it is worth the effort, even though our cameras are only 1080p the quality saw on our local 35mbit/sec 1080p recordings was so much better than the old AVC1 codec YouTube used, and 'encouraging' YouTube to offer VP9 to our eyes gives a much better quality stream which getting closer to our local recording. Regards, Mark Leman That's very impressive. I obviously am not shooting sports, but it's great info and impressive you are doing this with vMix. Thanks Mark!
|
1 user thanked bpscarbrough for this useful post.
|
|
|
vMix Forums
»
General
»
General Discussion
»
Forcing YouTube to use VP09 codecs
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.
Important Information:
The vMix Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close