Transcoding on Opteron APU and Support for Deleting Imported Content

Hi,

I recently purchased an HPE Microserver Gen 10 to use as my Channels DVR server, alongside using it as a NAS and backup server.

With hardware transcoding enabled, the video in the web client is mostly a pixelated mess of colors. Every now and then, the video corrects itself, but for the most part, it is pixelated. I've changed the deinterlace between blend/linear and also toggled adaptive streaming on/off with the same results.

As soon as I switch it over to software transcoding, everything works properly. What can I do to get this working correctly? I'm using the Opteron X3421 APU for the transcoding, and I've got the latest graphics driver installed.

As a separate issue, if I attempt to delete a video that's been added in via local content from the Channels app or web client, the UI shows it as deleted, but it doesn't actually delete it. The next time it scans for content, it picks up the video again. Is deleting local content supported?

Thanks.

What does it show when you hover over Transcoder on the web UI?

h264_amf

Interesting, so some sort of bug in the AMD hardware encoding pipeline.

Have you tried Plex or any other software that uses the hardware encoder to see if it has the same issue?

I just installed Plex and signed up for a trial Plex Pass in order to enable hardware transcoding.

It's working without issue with it--see 20-40% CPU usage with it enabled vs 80-90% without it.

Open Powershell and run this command while Plex is transcoding, then copy/paste the output:

Get-WmiObject Win32_Process | select commandline | Select-String -Pattern "Transcoder"

Here's the output:

@{commandline="C:\Program Files (x86)\Plex\Plex Media Server\Plex Transcoder.exe" -codec:#0x31 mpeg2video -hwaccel:#0x31 dxva2 -hwaccel_fallback_threshold:#0x31 10 -codec:#0x34 ac3 -analyzeduration 20000000 -probesize 20000000 -i "E:\ChannelsDVR\TV\FBI Most Wanted\FBI Most Wanted S01E01 Dopesick 2020-01-07-2159.mpg" -filter_complex [0:#0x31]yadif[0];[0]scale=w=720:h=406[1];[1]format=pix_fmts=nv12[2] -filter_complex "[0:#0x34] aresample=async=1:ocl='stereo':osr=48000[3]" -map [2] -codec:0 h264_mf -b:0 1724k -hw_encoding:0 1 -r:0 29.969999999999999 -force_key_frames:0 expr:gte(t,0+n_forced*8) -map [3] -metadata:s:1 language=eng -codec:1 aac_mf -b:1 162k -f dash -seg_duration 8 -init_seg_name init-stream$RepresentationID$.m4s -media_seg_name chunk-stream$RepresentationID$-$Number%05d$.m4s -window_size 5 -delete_removed false -skip_to_segment 1 -time_delta 0.0625 -manifest_name http://127.0.0.1:32400/video/:/transcode/session/3kxtabfv2co4s1jven2d86l4/846e79b4-725e-47d2-9787-be7bea628cc9/manifest -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/3kxtabfv2co4s1jven2d86l4/846e79b4-725e-47d2-9787-be7bea628cc9/progress }

Interesting. Looks like they're using the windows encoder (h264_mf) and not the AMD driver (h264_amf). I thought the windows encoder only worked with Intel CPUs.. it must support AMD somehow as well.

So, is there a way that I can try changing Channels to use that and see if it works, or would that require code changes?

Try this in powershell:

iwr -Method Patch -Content-Type application/json -Uri http://127.0.0.1:8089/hls -Body (@{"Encoder"="h264_mf";}|ConvertTo-Json) -UseBasicParsing

When I run the cmdlet (had to remove an extra dash in ContentType), I get a 200 OK, but it doesn't look like it's taking effect.

In the logs, I see it's still using h264_amf:

2020/01/14 16:45:41.566444 [ENC] Starting encoder for FBI Most Wanted S01E01 Dopesick 2020-01-07-2159.mpg in E:\ChannelsDVR\Streaming\file25-ip192.168.168.149-755658674\encoder-1553-904873321 at 1553 (2925.317504) (encoder=h264_amf, resolution=1080, deinterlacer=linear, bitrate=10000 segment_size=0.01)

I tried both restarting the service afterwards and running the cmdlet once again, and it's still showing h264_amf.

Ah, its only accepting hardware/software since that's all the UI lets you do.

I'll have to make some tweaks here. Right now h264_amf gets the highest priority. I think there are others using it and not experiencing the issues you are, so it seems there's a bug in the AMD driver. Is it updated to the latest version?

Sorry for the delay, but I've got it working now.

I had the driver installed that AMD and HPE both have on their websites as the latest for the Opteron APUs, which was dated December 2017.

So, I took a chance on the installing the latest Radeon driver, and it worked and solved the issue. I had to go into the Device Manager and manually install it, though, as the installer wouldn't work.

I updated the chipset drivers, and it was the same story for those, too. I randomly picked the Series-7 chipset drivers, which were a couple years newer, and I had to manually update each and every single chipset device in the Device Manager. If anyone else using a Microserver Gen 10 comes across this, I hope this helps! :slight_smile:

In regards to the other question I had about the imported content, I didn't realize that was still a pre-release feature. I found a thread on it, and in reading through some of it, It seems like not being able to delete it is intentional? What I've used it for thus far is for some leftover recorded TV from before I switched to Channels.