30 streams

Hi,

I need to add an overlay of up to 30 streams simultanious and then send the stream to YouTube in the same resolution and frame rate.

Eg. no users will be streaming directly from the server.

The streams are all running 1920x1080 @ 30fps and G.711 audio. This needs to be transcoded to support AAC audio and the video overlay picture.

I have a normal desktop computer with an Intel I7-3770 with a NVIDIA GTX660 running CUDA.

This desktop is using 60% CPU when streaming from just 3 cameras.

I cannot buy 7 computers and server licenses for this :confused:

Can anyone give me suggestions in regards to hardware specifications that would allow me to stream that many streams on just one server?

PS:

I have not disabled the HTTP packetizer. I likely could as no users are supposed to stream directly from the server, but would that make any difference at all?

Hello there,

Yes, the Transcoder AddOn does require significant CPU resources.

Please take a look at this guide to get an idea of what different server configurations can handle:

Wowza Transcoder AddOn performance benchmark

You should also make sure you have tuned your server as per this tuning guide.

Kind regards,

Salvadore

Kent,

Just wanted to share my experience. If I’m correct, there’s an GPU control panel in Windows where you can see the usage %

I’ve compared the K4000 with the K5000 about a year ago, in Win 2008 machines (they had 2 x XEON and 16GB RAM); we did 1 input (6-7mbps MPEG2) and 1 output (3mbps h264), and my conclusion was that the K5000 wasn’t worth the extra money. But that may be different for the new K4200 and 5200, where there’s a more significant difference in processing cores.

You say you’re using a GTX660 with CUDA. As far as I know, CUDA is no longer supported, or at least deprecated (see the message starting with “Important” on https://www.wowza.com/docs/server-specifications-for-nvidia-nvenc-and-nvidia-cuda-acceleration-with-wowza-transcoder). You should use NVENC, but I don’t think the GTX660 supports NVENC. Anyway if you ever get a K4000 or similar, make sure you choose NVENC in the transcoding template.

Hi,

I’m running 4.x with “autotuning”. I had the same problem with 3.x where I did tune all settings.

All the tests in the guide have multiple output streams. I have 1 input -> 1 output, both in 1080p@30fps.

The tests in that document have 1 input -> 4 output.

Looking at the stats, it seems that Ubuntu is somewhat faster that Windows by comparing server 5 with 6.

Mine is running Windows 7.

How do I know if the GPU can keep up? The system tests have K5000. K4000 is half the price, so I don’t want to spend a million on GPU’s if this isn’t the bottleneck anyway.

How can I in advance determine this?

Thank you for sharing your experiences.

I’m running an older driver to support CUDA on the GTX660 Card. It’s working but the computer can only handle 3 streams at the most.

I need 30 streams and don’t want to buy 10 wowza server licenses or 10 computers for that matter.

Any idea how much a K4000 would help? Would it double to amount of streams or just add few procentages?

Hi,

I am using QuickSync for decoding.

Here’s the important part of the transcoding XML file.

<?xml version="1.0" encoding="UTF-8"?>
<Root version="1">
	<Transcode>
		<Description></Description>
		<Encodes>
			<Encode>
				<Name>1080p</Name>
				<Enable>true</Enable>
				<Description>1080p</Description>
				<StreamName>mp4:${SourceStreamName}_1080p</StreamName>
				<Video>
					<Codec>H.264</Codec>
					<Implementation>CUDA</Implementation>
					<GPUID>-1</GPUID>
					<Profile>main</Profile>
					<Bitrate>4000000</Bitrate>
					<KeyFrameInterval>
						<FollowSource>false</FollowSource>
						<Interval>60</Interval>
					</KeyFrameInterval>
					<FrameSize>
						<FitMode>match-source</FitMode>
					</FrameSize>
					<Overlays></Overlays>
				</Video>
				<Audio>
					<Codec>AAC</Codec>
					<Bitrate>64000</Bitrate>
				</Audio>
			</Encode>
		</Encodes>
		<Decode>
			<Video>
				<!-- default, QuickSync -->
				<Implementation>QuickSync</Implementation>
				<Deinterlace>false</Deinterlace>
				<Overlays>
					<Overlay>
						<Enable>true</Enable>
						<Name>Tavle Billed</Name>
						<Index>0</Index>
						<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/tavle1/tavle.jpg</ImagePath>
						<CheckForUpdates>true</CheckForUpdates>
						<Opacity>100</Opacity>
						<Location>
							<X>0</X>
							<Y>0</Y>
							<Width>${ImageWidth}</Width>
							<Height>${ImageHeight}</Height>
							<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
							<Align>right,top</Align>
						</Location>
						<Description></Description>
					</Overlay>
				</Overlays>
				<Parameters></Parameters>
			</Video>
			<Properties>
			</Properties>
		</Decode>
		<StreamNameGroups>
			<!-- Note: Play stream using stream name ngrp:[stream-name]. -->
			<StreamNameGroup>
				<Name>all</Name>
				<StreamName>${SourceStreamName}_all</StreamName>
				<Members>
					<Member>
						<MemberName>1080p</MemberName>
						<EncodeName>1080p</EncodeName>
						<MediaListRendition>
							<WowzaVideoOnly>false</WowzaVideoOnly>
							<WowzaAudioOnly>false</WowzaAudioOnly>
						</MediaListRendition>
					</Member>
				</Members>
				<Description></Description>
			</StreamNameGroup>
		</StreamNameGroups>
		<Properties>
		</Properties>
	</Transcode>
</Root>

I didn’t add the properties below because it appears not be to needed for version 4.0x.

			<Property>
				<Name>decoderVideoH264Implementation</Name>
				<Value>1</Value>
				<Type>Integer</Type>
			</Property>

Hardware suggestions to make those 30 streams come to life?

Hi Kent,

In your original message, you mention that you have an i7-3770 processor in the server as well as the CUDA gpu. The i7 supports QuickSync on both windows and linux so it might be a good idea to see if that works for you before going out and investing in more hardware. It might also be an option to use the quickSync to decode the source and use the nvidia gpu to do the encoding.

From the performance figures you are getting, it looks like something might not be set quite right or the source streams are fairly complex. The cpu figures suggest the latter and quickSync decoding might help.

Roger.