Remote streaming stops after ~5 seconds


#1

Just last night I moved my DVR to a new machine with better processing power (thank you for your help with the “restore” feature!) for the express purpose of remote streaming, and unfortunately I’m having problems with that too. Remote streams freeze after about 5 seconds.

I know I’m comparing apples to oranges here, but I am able to keep a Plex stream running without a problem; it’s running on the same hardware. Like I said, I know these two applications probably transcode differently, but at least it shows that my upstream bandwidth can handle a remote stream.

Here are the log entries for streaming a recording:

2018/08/29 08:20:23 [HLS] Starting transcoder for file141-bd520b25271a at 0s from 174.255.203.104 (encoder=h264_amf, resolution=480, deinterlacer=blend, bitrate=1000)
[ac3 @ 0000000002a58340] expacc 125 is out-of-range
[ac3 @ 0000000002a58340] error decoding the audio block
2018/08/29 08:20:25 [HLS] Stopping transcoder for file141-bd520b25271a after seek to 6m57s (out=9.225889s, finished=false)
2018/08/29 08:20:26 [HLS] Starting transcoder for file141-bd520b25271a at 6m57s from 174.255.203.104 (encoder=h264_amf, resolution=480, deinterlacer=blend, bitrate=1000)
[ac3 @ 0000000002b4e7c0] bandwidth code = 63 > 60
[ac3 @ 0000000002b4e7c0] error decoding the audio block
[h264 @ 0000000003034a80] error while decoding MB 63 44, bytestream -12
[ac3 @ 0000000002b4e7c0] expacc 125 is out-of-range
[ac3 @ 0000000002b4e7c0] error decoding the audio block
[ac3 @ 0000000002b4e7c0] expacc 125 is out-of-range
[ac3 @ 0000000002b4e7c0] error decoding the audio block
[ac3 @ 0000000002b4e7c0] exponent 30 is out-of-range
[ac3 @ 0000000002b4e7c0] error decoding the audio block

Here’s another one:

2018/08/29 08:21:24 [HLS] Pausing transcoder (out: 12m28.364367s, view: 7m27s)...
2018/08/29 08:21:49 [HLS] Stopping inactive session file141-bd520b25271a @ 12m28.364367s
2018/08/29 08:21:49 [HLS] Resuming transcoder (out: 12m28.364367s, view: 7m27s)...
2018/08/29 08:22:18 [HLS] Starting transcoder for file972-bd520b25271a at 0s from 174.255.203.104 (encoder=h264_amf, resolution=480, deinterlacer=blend, bitrate=1000)
2018/08/29 08:22:21 [HLS] Stopping transcoder for file972-bd520b25271a after seek to 4m14s (out=15.582233s, finished=false)
2018/08/29 08:22:21 [HLS] Starting transcoder for file972-bd520b25271a at 4m14s from 174.255.203.104 (encoder=h264_amf, resolution=480, deinterlacer=blend, bitrate=1000)
[h264 @ 000000000289dcc0] co located POCs unavailable
[h264 @ 000000000250e800] co located POCs unavailable
[h264 @ 000000000250ec80] co located POCs unavailable

I should mention that I did not seek in this video, even if the log shows as much. I simply pressed the Watch button, and this was the outcome.

I’ve also noticed that the activity is not removed from status when the remote stream freezes, but instead a few minutes later. (Maybe this is expected because the server doesn’t know the remote client stopped working?)

Watching recording Nature Cat S01E35 2017-04-10 Puddle Pool Party Croak and Swagger 2018-08-29-0700.mpg from 174.255.203.104 (Running: 13m9.301433s @ 6.12x).

This seems to happen to live video as well, but we watch a lot fewer live shows than we do recorded ones. This DOES NOT happen with internal wifi streaming, those streams are stable.

The server version is 2018.08.29.0234 and the iOS client version is 2.2.5.

Thanks in advance! :slight_smile:


#2

If you change your DVR settings web ui to Software transcoding, does it fix the issue?


#3

Good call, it does fix the issue. It takes a sec or two longer to start the stream, but it works.


#4

Can you copy/paste the OS/CPU section from the top of the DVR settings page.

It looks like the DVR is using the AMD transcoder, which may be buggy. You could try to upgrade your AMD drivers, and Il’l see if there’s any updates available on our end as well.

I suspect your computer has an Intel CPU, which means intel h/w transcoding is also available. But the DVR currently prefers AMD whenever it sees an AMD GPU. I’ll see if we can add a way to force which h/w is used.


#5

Correct on all fronts. The hardware is an Intel NUC8i7HVK, with an Intel CPU and an AMD GPU. I just got it about a week ago and I’m using Intel’s driver update tool, so I’m certain the drivers are up to date. I’ll stick with software encoding for now.

OS/CPU info is as follows:

OS
Intel NUC8i7HVK
Windows Microsoft Windows 10 Pro
10.0.17134 Build 17134
CPU
8 cores / Intel® Core™ i7-8809G CPU @ 3.10GHz

Thanks again for your help! :slight_smile:


#6

Software transcoding should work well on that beast of a machine =)

If you get a chance, please run an HWE test. Open PowerShell to run this command, then open the DVR log and copy/paste the new “HWE” entries that appear.

iwr -usebasicparsing -method post http://127.0.01:8089/hls/hwaccel


#7

Hmm, I don’t know what you mean by “HWE” entries, I don’t see any…

PS C:\Users\User> iwr -usebasicparsing -method post http://127.0.01:8089/hls/hwaccel


StatusCode        : 200
StatusDescription : OK
Content           : true
RawContent        : HTTP/1.1 200 OK
                    Content-Length: 4
                    Cache-Control: no-cache, no-store
                    Content-Type: application/json; charset=utf-8
                    Date: Thu, 30 Aug 2018 00:10:42 GMT

                    true
Forms             :
Headers           : {[Content-Length, 4], [Cache-Control, no-cache, no-store], [Content-Type, application/json;
                    charset=utf-8], [Date, Thu, 30 Aug 2018 00:10:42 GMT]}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        :
RawContentLength  : 4

#8

The entires show up on the Log tab of the DVR web UI.


#9

Gotcha, thanks - sorry about that. Here’s the output:

2018/08/29 19:10:41 [HWE] Trying C:\ProgramData\ChannelsDVR\latest\ffmpeg.exe -hide_banner -nostats -loglevel warning -loglevel verbose -f lavfi -t 0.1 -i color=black:640x480 -c:v h264_amf -profile:v high -level 42 -b:v 400k -maxrate:v 600k -f null -y nul
[Parsed_color_0 @ 0000000000fc86c0] size:640x480 rate:25/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'color=black:640x480':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_amf))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0000000003b02600] w:640 h:480 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2
[h264_amf @ 000000000071bd40] AMF initialisation succeeded via D3D11.
Output #0, null, to 'nul':
  Metadata:
    encoder         : Lavf58.12.100
    Stream #0:0: Video: h264 (h264_amf), 1 reference frame, yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 400 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.18.100 h264_amf
No more output streams to write to, finishing.
frame=    3 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.12 bitrate=N/A speed=1.22x    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (color=black:640x480):
  Input stream #0:0 (video): 4 packets read (1843200 bytes); 4 frames decoded; 
  Total: 4 packets (1843200 bytes) demuxed
Output file #0 (nul):
  Output stream #0:0 (video): 3 frames encoded; 3 packets muxed (212 bytes); 
  Total: 3 packets (212 bytes) muxed

#10

Thanks. Looks like the test just stops after AMD and doesn’t try the intel stuff, so I didn’t get to see if that part works.

Anyway, I updated our AMD transcoder to the latest version to see if it maybe helps. You can update your DVR to the new pre-release by holding SHIFT and clicking Check for Updates. After it updates, try hardware transcoding again and see if its any better.


#11

My goodness, this is BY FAR the best customer service I’ve ever experienced. I’ll give it a shot and let you know how it goes. Thank you!


#12

Well, no dice. But now that I know the Hardware and Software encoding options are there (hardware encoding wasn’t available to me before, so I didn’t know that option existed until you pointed it out) I’ll leave it on Software until a solution becomes available. That works, so I will be patient.

Thank you so much!!