Page 1 of 1

VLC performance for multiple HD streams

Posted: 08 Oct 2013 06:10
by steinhak
Hi,

We are using vlc for CCTV solution on both client side and server side. It is great for the most cases, but some ip cams provide only one HD stream for viewing. Although the bitrate is rather low, the number of channels can be up to 36+. The other question is that we don't need the best quality for multiple-stream setups (no one will notice that on a 36 cam screen). How can we improve performance for such setups? I see 2 options:

1) Use hardware decoding/encoding. This is even more promissing with Intel Media SDK relased for Linux (our server platform). But on my test setups hardware decoding for client failed with cam count > 8 with client crashing, driver crashing and stuff like that. Is it a general rule or a temporary issues? Another thing is that --ffmpeg-hw option does not improve performance for transcoding chains on server side.

2) Use software decoding with speed optimizations. I am searching for something which would dramatically improve decoding performace (encoding performance can be easily improved using presents or different codecs) like low-res decoding or dropping frames.

What would be my best choice?

Thanks in advance!

Re: VLC performance for multiple HD streams

Posted: 08 Oct 2013 23:43
by Jean-Baptiste Kempf
Are you transcoding all streams?

Re: VLC performance for multiple HD streams

Posted: 09 Oct 2013 00:19
by steinhak
yes. and that's the main performance impact. if just distribute the stream- everything goes on minimal cpu

The point of transcoding is to provide one good stream for fullscreen video and a lighter one for big matrixes and smaller windows (4X4 or less)

Re: VLC performance for multiple HD streams

Posted: 09 Oct 2013 00:24
by Jean-Baptiste Kempf
Maybe using Mosaic.

I don't see why using low-res decoding will help if most of the cost is for encoding...

What x264 preset are you using?

Re: VLC performance for multiple HD streams

Posted: 09 Oct 2013 00:26
by steinhak
I use h264 > scale 0.5 mjpeg chain. So the main cost is decoding h264...

Re: VLC performance for multiple HD streams

Posted: 09 Oct 2013 12:35
by Jean-Baptiste Kempf
If you are sure of that, then GPU could help then. But I doubt to do 36 decoding.

Re: VLC performance for multiple HD streams

Posted: 09 Oct 2013 21:41
by steinhak
So once again...

1) Are there any software-based options to speed up h264 decoding at the cost of video quality, resolution or framerate? I am looking for console-line options and the way to implement them in vlm.conf

2) How can I utilise hardware decoding in practice? When I use vlc player with --ffmpeg-hw - I see a speedup. When I use this option in trancsoding chain- no impact is observed.
What are the limits of hardware decoding? I've seen crushes with 8 channels on windows with hd4000 video. Is this a common rule or a temporary bug? If it's a rule, than how can I use multiple gpu's to up those limits?

3) I've seen news that Intel released the Media SDK for linux and in vlc version 2.1.0 presented support for Quick Sync h264 encoding. Can I try those things together?

Re: VLC performance for multiple HD streams

Posted: 10 Oct 2013 17:52
by Jean-Baptiste Kempf
The limit depends on the GPU, so there is no strong rules for that.
QSV is for encoding, not for decoding, so far.

Re: VLC performance for multiple HD streams

Posted: 25 Oct 2013 17:56
by steinhak
Hi again. The problem has stood up to us once again, so I have to be persistent at this point. Sorry, if I'm being annoying as well. Please, take some time to answer my question:


1) Are there any software-based options to speed up h264 decoding at the cost of video quality, resolution or framerate? I am looking for console-line options and the way to implement them in vlm.conf. This is for making a small preview stream, so the quality does not really matter for me...

That is critical for me, because we experienced crashes with > 24 open full hd streams with default values on core i7 3770.

Re: VLC performance for multiple HD streams

Posted: 05 Nov 2013 21:41
by Jean-Baptiste Kempf
1) yes, disable loop filtering.