Synology transcoding ability vs PC

I have a Synology 716+II and a PC and have noticed that the Synology struggles to transcode two channels at the same time. While a single stream at 1080 look great, I find that when I transcode 2 channels simultaneously I ineviatably get choppy playback even at the lowest 720p bitrate. I’m mentioning this to see if 1) this is expected and 2) let others know who are looking to buy a NAS so they know the limitations of transcoding. While it is probably no surprise, the PC can handle multiple transcoding streams simultaneously with ease due to the much faster processor/GPU.

1 Like

What does the OS and CPU section say on the NAS?

OSSynology DS716+II
Linux
(kernel: 3.10.102)
CPU
4 cores / Intel® Celeron® CPU N3160 @ 1.60GHz
load averages: 1.33 1.36 1.40
RAM2.01 GB
86.0% free

I ran another test at 720p @2mbs. My laptop streamed one live channel while my phone streamed another live channel.
Here’s the log information:

2017/04/19 23:12:15 [TNR] Opened connection to 1316D3EB for ch804
2017/04/19 23:12:15 [HLS] Starting transcoder for channel 804 (encoder=h264_vaapi, resolution=720, deinterlacer=blend, bitrate=2000)
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: va_openDriver() returns 0
pipe:: could not seek to position 81569.777
2017/04/19 23:12:33 [TNR] Opened connection to 1316D3EB for ch811
2017/04/19 23:12:33 [HLS] Starting transcoder for channel 811 (encoder=h264_vaapi, resolution=720, deinterlacer=blend, bitrate=2000)
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: va_openDriver() returns 0
pipe:: could not seek to position 81587.537
2017/04/19 23:13:15 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:19 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:19 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:22 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:23 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:25 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:28 [WRN] Buffer for 1316D3EB ch811 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:29 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12584908)
2017/04/19 23:13:30 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:33 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:34 [WRN] Buffer for 1316D3EB ch811 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:37 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:38 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:41 [WRN] Buffer for 1316D3EB ch804 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:43 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:43 [WRN] Buffer for 1316D3EB ch811 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:46 [WRN] Buffer for 1316D3EB ch804 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:46 [WRN] Buffer for 1316D3EB ch811 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:48 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12583592)
2017/04/19 23:13:50 [WRN] Buffer for 1316D3EB ch811 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:51 [WRN] Buffer for 1316D3EB ch804 is more than 75% full (clients=1, len=18875388)
2017/04/19 23:13:53 [WRN] Buffer for 1316D3EB ch804 is more than 50% full (clients=1, len=12584908)
2017/04/19 23:13:56 [WRN] Buffer for 1316D3EB ch804 is more than 75% full (clients=1, len=18884600)
2017/04/19 23:13:58 [HLS] Stopping transcoder session 1316D3EB-ch804 @ 1m34.227477s
2017/04/19 23:13:58 [TNR] Closed connection to 1316D3EB for ch804
av_interleaved_write_frame(): No such file or directory

What speeds does it show underneath the web player?

Is this a recent change? When did you first notice it?

I suspect this may be related to the other workarounds we had to put in place for Synology’s old kernel and graphics driver versions. See Synology DS916+

@gregr Can you verify this behavior with multiple live streams on your DS?

I can verify that the web-ui running on my Synology will not transcode two different channels simultaneously at high bitrates without some errors. This isn’t really a use that I have ever previously attempted, though, since I mainly only use the web-ui for remote streaming one channel at a time over cellular (often below 720p, depending on my cellular signal).

I could see though how someone running a business might be interested in doing this kind of thing though. Possibly deploying Channels in an office environment and allowing users to stream different channels through the web browsers on their workstations. In such a case, some more powerful hardware would probably be needed to do this kind of simultaneous transcoding.

Fro 720 @2mbs beneath the web player it reports around @1x or slightly less when transcoding. This number remains consistent when streaming to both devices. I checked the Synology cpu/memory stats and found this:

Single Transcode: 23% cpu and 23% memory utilization
Two Transcodes: 50% cpu and 23% memory utilization

When I do a single stream at the highest 1080 settings to a single device I can see it reports right around @1x as well. I cannot say whether this is a new problem or not as I just tried this a couple of weeks ago for the first time and noticed it then as well.

Transcoding multiple streams is something I could see my family using more often once the iOS apps supports this feature so being able to support at least two streams would be helpful.

On my DS916+, it seems I can play two 720p @ 6Mbps streams simultaneously without issue. I cannot, however, play two 1080p @ 10Mbps streams - the first seems to play normally, but the second seems to stay around 0.85x.

I did get the two 1080p streams to both start playing once, but then they both fell under 1x.

I didn’t notice anything unusual in the logs during any of that. I was testing with recordings, not live TV, if that matters.

On my QNAP TS-251+, I can do two 720p 6mbps streams without issue. At 1080p 10mbps, they both fall behind (0.9x) and then I start seeing the same buffering errors in the log.

The Synology has a much better processor, but I suspect the old kernel is holding it back. I have some ideas, so let me see what’s possible here…

The issue we found originally was only affecting 8GB models. I suspect the work-around for that issue is negatively impacting the 2GB models, so I’ve restricted it only to the 8GB models where it is required.

I’m also adding an experimental “hardware deinterlacing” option that may or may not perform better than the software deinterlacers currently used.

A new pre-release build is available with some changes. It should improve performance on 2GB Synology models like the DS716+ii

It also includes the new hardware deinterlacer you can try out. On my QNAP TS-251+ (Celeron J1900) the hardware deinterlacer was slower and wouldn’t let me do two 720p 6mbit streams at the same time. Your results on the Celeron N3160 might be better as that processor is much newer.

1 Like

I’ve done some brief testing and can verify this significantly improves the transcoding performance. When I use “Blend” or “Hardware” transcoding at 720 6mbs I have no issues when streaming to 2 devices. The speed is consistently over 1x in both modes. When I max out to 1080 @10mbs I can stream to 2 devices without issue using “Blend”, but consistently drop below 1x when selecting “Hardware”. I also inspected the Synology CPU usage and notice its around 33% when streaming at max to 2 devices.

This is impressive - much improved! Thanks for quickly putting out a fix for this! Let me know if you’d like any other performance information.

1 Like

Awesome, thanks for testing.

Could someone with a 8GB Synology verify I didn’t break things for them? =)