I have a Synology DS418play, which has Intel Celeron J3355 dual-core 2GHz AND has hardware transcoding that supports H.264 (AVC), H.265 (HEVC) at max 4K (4096 x 2160) 30fps.
When I turn on the "Use HEVC for transcoding" option in settings, I'm able to locally record and stream locally to AppleTV devices on the network. When I am away, remote streaming fails on AppleTV and iPhone, but streams via the Safari browser. The activity box on the Settings page says (0.00fps)) and I get the following in the debug log:
Hardware Transcoder Probe
amf
[Parsed_color_0 @ 0x296f240] 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
Unknown encoder 'h264_amf'
exit status 1
nvenc
[Parsed_color_0 @ 0x24d0240] 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_nvenc))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x251b180] w:640 h:480 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1
[h264_nvenc @ 0x24fd240] Cannot load libcuda.so.1
[h264_nvenc @ 0x24fd240] Nvenc unloaded
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
vaapi+deint
[AVHWDeviceContext @ 0x8c874c0] libva: VA-API version 1.16.0
[AVHWDeviceContext @ 0x8c874c0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x8c874c0] Initialised VAAPI connection: version 1.16
[AVHWDeviceContext @ 0x8c874c0] VAAPI driver: Intel i965 driver for Intel(R) Broxton - 2.4.0.pre1 (2.4.0.pre1).
[AVHWDeviceContext @ 0x8c874c0] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_color_0 @ 0x8c96bc0] 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) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x8cc5b40] w:640 h:480 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1
[auto_scaler_0 @ 0x8cc8780] w:iw h:ih flags:'bicubic' interl:0
[trim_in_0_0 @ 0x8cc6600] auto-inserting filter 'auto_scaler_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scaler_0 @ 0x8cc8780] w:640 h:480 fmt:yuv420p sar:1/1 -> w:640 h:480 fmt:nv12 sar:1/1 flags:0x4
[Parsed_deinterlace_vaapi_2 @ 0x8cc4f40] Picking 4 (MotionCompensated) as default deinterlacing mode.
Output #0, null, to '/dev/null':
Metadata:
encoder : Lavf58.76.100
Stream #0:0: Video: wrapped_avframe, 1 reference frame, vaapi_vld(tv, progressive), 640x480 (0x0) [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc58.134.100 wrapped_avframe
No more output streams to write to, finishing.
frame= 2 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.12 bitrate=N/A speed=2.66x
video:1kB 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 (/dev/null):
Output stream #0:0 (video): 2 frames encoded; 2 packets muxed (1072 bytes);
Total: 2 packets (1072 bytes) muxed
success!
vaapi@/dev/dri/renderD128
[AVHWDeviceContext @ 0x8f56400] libva: VA-API version 1.16.0
[AVHWDeviceContext @ 0x8f56400] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x8f56400] Initialised VAAPI connection: version 1.16
[AVHWDeviceContext @ 0x8f56400] VAAPI driver: Intel i965 driver for Intel(R) Broxton - 2.4.0.pre1 (2.4.0.pre1).
[AVHWDeviceContext @ 0x8f56400] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_color_0 @ 0x8f65c00] 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) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x8f935c0] w:640 h:480 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1
Output #0, null, to '/dev/null':
Metadata:
encoder : Lavf58.76.100
Stream #0:0: Video: wrapped_avframe, 1 reference frame, yuv420p(progressive), 640x480 (0x0) [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc58.134.100 wrapped_avframe
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=7.53x
video:2kB 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 (/dev/null):
Output stream #0:0 (video): 3 frames encoded; 3 packets muxed (1608 bytes);
Total: 3 packets (1608 bytes) muxed
success!
vaapi@/dev/dri/renderD129
no such file or directory
Unchecking "Use HEVC for transcoding" allows streaming to work again. Note that the problem occurs on previously recorded content and streaming any live channels from Guide and both resolve after disabling the feature.