Remote playback on Channels (buffers) vs Plex (works)


#1

I recently bought a Synology DS918+ with hardware transcoding to run Channels DVR and Plex.

I've been testing remote playback on my iphone 6s and have some issues with Channels DVR. Plex streams great and I'm hoping you can help me figure out how to get streaming to work better with Channels DVR, which has severe buffering issues.

First I tried remote playback on iphone with strong 3bar signal using cellular.

With Plex set to use hardware acceleration, I'm able to stream m4v movies with no buffering issues on my iphone using cellular. Not sure what resolution. Transcoder quality set to Automatic. Background transcoding x264 preset = very fast.

With Channels DVR, playback of live or recorded mpg file takes a long time to start (20-30 sec) and then pauses every 10-15 seconds. I have Transcoder = Hardware. I tried Deinterlacer = Blend, Linear, Hardware. I tried Cellular Streaming = 360p, 240p.

All the Channels DVR settings I tried had buffering problems, while Plex had no problems streaming under the same cellular conditions.

Next I tried playback on remote wifi with strong signal and 20Mpbs down bandwidth.

Channels DVR playback continued to have buffering problems. Started at 720p 2Mpbs, then 480p, then 360p, then 240p. All had buffering problems even on wifi.

I sent diagnostic logs from my iphone for video player.

Here is the log for Channels DVR on my DS918+. at 14:10 I was trying to stream to my iphone on cellular connection. at 19:48 I was trying to stream to my iphone on cellular, then on wifi. There are a lot of dropped corrupted packet.

2019/03/01 14:10:39 [HLS] Starting transcoder for file3-0f4187b06efd at 0s from 166.137.176.28 (encoder=h264_vaapi, resolution=360, deinterlacer=blend, bitrate=700)
[h264 @ 0x37e8dc0] Increasing reorder buffer to 2
[h264 @ 0x37e8dc0] Increasing reorder buffer to 3
[mpegts @ 0x37e4180] start time for stream 3 is not set in estimate_timings_from_pts
[mpegts @ 0x37e4180] start time for stream 4 is not set in estimate_timings_from_pts
[mpegts @ 0x37e4180] start time for stream 5 is not set in estimate_timings_from_pts
[mpegts @ 0x37e4180] Dropped corrupted packet (stream = 1)
[h264 @ 0x38dc240] co located POCs unavailable
2019/03/01 14:14:28 [HLS] Stopping inactive session file3-0f4187b06efd @ 2m36.2561s
2019/03/01 15:05:00 [TNR] Closed connection to 131AD505 for ch749
2019/03/01 15:05:00 [DVR] Finished job 1551466500-ch749 PGA Tour Golf
2019/03/01 15:05:00 [DVR] Processing file-3: TV/PGA Tour Golf/PGA Tour Golf The Honda Classic Second Round 2019-03-01-1055.mpg
2019/03/01 15:05:00 [DVR] Waiting 20h49m59.428028868s until next job 1551556500-ch703 PGA Tour Golf
2019/03/01 15:05:01 [DVR] Running commercial detection on file 3 (TV/PGA Tour Golf/PGA Tour Golf The Honda Classic Second Round 2019-03-01-1055.mpg)
2019/03/01 16:39:47 [DVR] Commercial detection finished with 62 markers.
2019/03/01 19:46:22 [DVR] Deleting /volume1/DVR/TV/PGA Tour Golf/PGA Tour Golf The Honda Classic Second Round 2019-03-01-1055.mpg
2019/03/01 19:48:52 [DVR] Starting job 1551497400-ch702 The Big Bang Theory on ch=[702]
2019/03/01 19:48:52 [DVR] Waiting 16h6m7.251928133s until next job 1551556500-ch703 PGA Tour Golf
2019/03/01 19:48:53 [TNR] Opened connection to 131AD505 for ch702
2019/03/01 19:48:53 [DVR] Recording for job 1551497400-ch702 from 131AD505 ch702 into "TV/The Big Bang Theory/The Big Bang Theory S07E10 2013-12-05 The Discovery Dissipation 2019-03-01-1948.mpg" for 16m7.251893423s
2019/03/01 19:48:53 [DVR] Refreshing metadata for The Big Bang Theory (185554)
2019/03/01 19:56:28 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 166.137.176.28 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x2e29180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2e29180] Dropped corrupted packet (stream = 2)
2019/03/01 19:56:33 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 1m8s (out=4.054056s, finished=false)
2019/03/01 19:56:33 [HLS] Starting transcoder for file4-0f4187b06efd at 1m8s from 166.137.176.28 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x2675100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2675100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x2675100] Dropped corrupted packet (stream = 0)
[mpeg2video @ 0x269b200] slice mismatch
[mpeg2video @ 0x269b200] Warning MVs not available
[mpegts @ 0x2675100] Dropped corrupted packet (stream = 1)
2019/03/01 19:59:11 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 0s (out=2m45.5975s, finished=false)
2019/03/01 19:59:11 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 166.137.176.28 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x36a2180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x36a2180] Dropped corrupted packet (stream = 2)
2019/03/01 19:59:16 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 2m30s (out=4.337667s, finished=false)
2019/03/01 19:59:16 [HLS] Starting transcoder for file4-0f4187b06efd at 2m30s from 166.137.176.28 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x1fcb100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x1fcb100] Dropped corrupted packet (stream = 2)
2019/03/01 20:01:28 [HLS] Stopping inactive session file4-0f4187b06efd @ 3m54.234156s
2019/03/01 20:05:00 [TNR] Closed connection to 131AD505 for ch702
2019/03/01 20:05:00 [DVR] Finished job 1551497400-ch702 The Big Bang Theory
2019/03/01 20:05:00 [DVR] Processing file-4: TV/The Big Bang Theory/The Big Bang Theory S07E10 2013-12-05 The Discovery Dissipation 2019-03-01-1948.mpg
2019/03/01 20:05:00 [DVR] Waiting 15h49m59.378660279s until next job 1551556500-ch703 PGA Tour Golf
2019/03/01 20:05:01 [DVR] Running commercial detection on file 4 (TV/The Big Bang Theory/The Big Bang Theory S07E10 2013-12-05 The Discovery Dissipation 2019-03-01-1948.mpg)
2019/03/01 20:07:25 [DVR] Commercial detection finished with 4 markers.
2019/03/01 20:09:39 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=blend, bitrate=4000)
[mpegts @ 0x23aa180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x23aa180] Dropped corrupted packet (stream = 2)
2019/03/01 20:09:45 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 2m55s (out=4.254256s, finished=false)
2019/03/01 20:09:45 [HLS] Starting transcoder for file4-0f4187b06efd at 2m55s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=blend, bitrate=4000)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3e97100] Dropped corrupted packet (stream = 2)
2019/03/01 20:12:28 [HLS] Stopping inactive session file4-0f4187b06efd @ 4m31.029267s
2019/03/01 20:12:32 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 108.233.252.52 (encoder=h264_vaapi, resolution=480, deinterlacer=blend, bitrate=1000)
[mpegts @ 0x27d9180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x27d9180] Dropped corrupted packet (stream = 2)
2019/03/01 20:12:38 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 3m22s (out=3.920589s, finished=false)
2019/03/01 20:12:38 [HLS] Starting transcoder for file4-0f4187b06efd at 3m22s from 108.233.252.52 (encoder=h264_vaapi, resolution=480, deinterlacer=blend, bitrate=1000)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x2961100] Dropped corrupted packet (stream = 2)
2019/03/01 20:13:35 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 0s (out=3m57.819122s, finished=false)
2019/03/01 20:13:35 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 108.233.252.52 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x3693180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3693180] Dropped corrupted packet (stream = 2)
2019/03/01 20:13:41 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 3m39s (out=4.054056s, finished=false)
2019/03/01 20:13:41 [HLS] Starting transcoder for file4-0f4187b06efd at 3m39s from 108.233.252.52 (encoder=h264_vaapi, resolution=240, deinterlacer=blend, bitrate=300)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x26ea100] Dropped corrupted packet (stream = 2)
2019/03/01 20:15:28 [HLS] Stopping inactive session file4-0f4187b06efd @ 4m49.186789s
2019/03/01 20:16:14 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=2000)
[mpegts @ 0x29111c0] Dropped corrupted packet (stream = 1)
[mpegts @ 0x29111c0] Dropped corrupted packet (stream = 2)
2019/03/01 20:16:16 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 3m52s (out=4.2042s, finished=false)
2019/03/01 20:16:16 [HLS] Starting transcoder for file4-0f4187b06efd at 3m52s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=hardware, bitrate=2000)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 1)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 1)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 2)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 1)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 2)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 1)
[mpegts @ 0x372a380] Dropped corrupted packet (stream = 2)
2019/03/01 20:17:58 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 0s (out=6m43.120956s, finished=false)
2019/03/01 20:17:58 [HLS] Starting transcoder for file4-0f4187b06efd at 0s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=linear, bitrate=2000)
[mpegts @ 0x25d4180] Dropped corrupted packet (stream = 1)
[mpegts @ 0x25d4180] Dropped corrupted packet (stream = 2)
2019/03/01 20:18:04 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 4m47s (out=4.029022s, finished=false)
2019/03/01 20:18:04 [HLS] Starting transcoder for file4-0f4187b06efd at 4m47s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=linear, bitrate=2000)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3565100] Dropped corrupted packet (stream = 2)
2019/03/01 20:19:29 [HLS] Stopping transcoder for file4-0f4187b06efd after seek to 7m48s (out=5m37.016633s, finished=false)
2019/03/01 20:19:29 [HLS] Starting transcoder for file4-0f4187b06efd at 7m48s from 108.233.252.52 (encoder=h264_vaapi, resolution=720, deinterlacer=linear, bitrate=2000)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 2)
Last message repeated 1 times
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 2)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 1)
[mpegts @ 0x3030100] Dropped corrupted packet (stream = 2)
2019/03/01 20:21:28 [HLS] Stopping inactive session file4-0f4187b06efd @ 8m58.478744s


#2

Can you try running a speedtest using my.channelsdvr.net/speedtest on both connections and report back what speed and latency you're seeing?

Does the buffering go away if you set the Transcoder setting on the DVR web UI to Software?

How much RAM is in your NAS?


#3

DS918+ has 4GB of RAM.

iphone 6s cellular connection speedtest:
Download: 2.14 Mbit/s, 2.77 Mbit/s, 2.73 Mbit/s
Latency: 62.41 ms, 63.62 ms, 94.28 ms
Jitter: 27.15 ms, 14.84 ms, 241.69 ms

When Transcoder set to Software in DVR web UI, cellular playback is much better, with only occasional buffering!

With iphone wifi connection speedtest
Download: 3.53 Mbit/s, 3.19, 3.19
Latency: 51.58 ms, 48.41, 42.37
Jitter: 99.90 ms, 20.16, 10.87

With wifi connection, iphone playback is again much better, with just occasional buffering.

But I bought this NAS because it had hardware transcoding, so I would like to get Transcoder=Hardware to work. I believe the DS918+ has same hardware transcoding as DS218+, which so many users use as Channel DVR servers.

Hmmm, continuing to watch with Transcoder=Software. Not as much buffering as with Transcoder=Hardware, but still a noticeable amount of buffering.


#4

I assume you're using the Channels app on your iOS device right?

Can you try playback via safari too to compare and see if that makes any difference?


#5

Yes, using Channels DVR app on my iphone 6s.

In Chrome web UI on iphone using cellular, transcoder=software, live tv is fine, with just occasional buffering

Changing transcoder and interlacing to Hardware, chrome says "media playback was aborted due to corruption problem or because the media used features your browser did not support"
Changing transcoder=hardware, interlacing=linear, live tv is fine, with occasional buffering.

In Safari web UI on iphone using cellular, transcoder=hardware, interlacing=linear, live tv got same media playback error as chrome above. With transcoder=hardware, interlacing=hardware, live tv took long time to start, but seems okay on Safari.

So playback is reasonable on both Safari and Chrome on cellular on iphone with transcoder=hardware.

But using channels app on cellular with transcoder=hardware, playback has lots of buffering.


#6

Thanks that's helpful.

How about if you stream at home, by setting Home Streaming Quality to the same thing you were trying to use remotely?


#7

Today at lunch, I used Channels on my iphone on a weak 1bar cellular connection.
I had transcode=hardware, deinterlacer=hardware on web UI.

I tried both live tv and a recording and encountered little or no buffering at 360p! It was so good I went up to 480p, then 720p 2M and finally 720p 4M, where I started having buffering problems.

I'm baffled by the difference between yesterday and this morning (poor streaming with buffering) and this afternoon (high quality streaming with little buffering). NAS was actually recording golf while I either streamed it live or watched recording.

At home now. Channels still recording golf. Connected by cellular at 720p 2Mbps and am watching a basketball game on iphone with no noticeable buffering.

I'm happy hardware transcoding is working now, but wondering whether problems will return. Will continue to test over the next few days and report back.

Thanks for your help investigating! It's fantastic to have such quick response from devs!


#8

Am I reading that right? Less than 4Mbps on WiFi? If that’s correct that seems very slow to me and could explain some of the buffering issues.


#9

Just tested on my iPhone X over WiFi and got:

Speedtest

Download
254.86
Mbit/s

Latency
3.88
ms

Jitter
1.00
ms