Jump to content

Hardware Acceleration Woes


Recommended Posts

stompysan
Posted

Hey everyone.  I posted over on the Reddit, but a user stated the forums are more active.  I am trying to get some help on getting hardware acceleration working on my server.  I recently acquired an RX 580 to help with transcoding higher quality media.  I have installed the latest AMDPRO drivers, and the device is showing up properly.  Setting up the hardware acceleration shows the device, and I can use it for some transcoding, but all of my 4K content will not transcode via hardware.  I have tried clean installing the proprietary drivers, as well as Emby, with no success.  I have screenshots of the server dashboard at https://imgur.com/a/sv9AOTS

 

Looking through logs, I found the following:

16:24:28.988 frame=    0 fps=0.0 q=0.0 q=-1.0 q=-1.0 q=-1.0 q=-1.0 size=    3331kB time=00:41:06.13 bitrate=  11.1kbits/s throttle=off speed= 659x    
16:24:29.043 [h264_vaapi @ 0x97b140] No usable encoding profile found.
16:24:29.043 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
16:24:29.061 Conversion failed!
16:24:29.061
 
Affected codecs:
>>>>>>  libx264 Software Encoder
        Color Formats: YUV420P, YUVJ420P, YUV422P, YUVJ422P, YUV444P, YUVJ444P, NV12, NV16, NV21, YUV420P10, YUV422P10, YUV444P10, NV20
        Profiles: Baseline Profile (Level 6.2), Main Profile (Level 6.2), High Profile (Level 6.2), High 10 Profile (Level 6.2), High 4:2:2 Profile (Level 6.2), High 4:4:4 Profile (Level 6.2)
 
Info    Previous transcoding attempt failed. Falling back to software transcoding.
 
>>>>>>  FindVideoDecoder - MediaType: hevc, Mode: Custom
Info    FindVideoDecoder - Checking: 'Automatic software decoder' (Priority: 0)
Info    FindVideoDecoder - Check successful - selecting 'Automatic software decoder'
 
>>>>>>  FindVideoEncoder - Media: h264, UseHardwareCodecs: False, Mode: Custom
Info    FindVideoEncoder - Checking: 'libx264 Software Encoder' (Priority: 0)
Info    Encoder supports input stream
Info    FindVideoEncoder - Check successful - selecting 'libx264 Software Encoder'
 
 
/opt/emby-server/bin/ffmpeg -loglevel +timing -ss 00:41:15.000  -f matroska -i file:"/MainPool/6TB/Video/Movies/Joker (2019).mkv" -threads 4 -map 0:0 -map 0:2 -sn -c:v:0 libx264 -pix_fmt yuv420p  -maxrate 59926080 -bufsize 119852160 -preset ultrafast -profile:v:0 high -level:v:0 4.1 -crf 23 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -g:v:0 72 -keyint_min:v:0 72 -sc_threshold:v:0 0  -copyts -vsync -1 -codec:a:0 libmp3lame -disposition:a:0 default -ac:a:0 2 -ab:a:0 192000 -af:a:0 "volume=2" -f segment -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 -start_at_zero -segment_time 3  -individual_header_trailer 0 -segment_format mpegts -segment_write_temp 1 -segment_list_type m3u8 -segment_start_number 825 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca%d.ts" -map 0:3 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s3.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s3%d.vtt" -map 0:4 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s4.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s4%d.vtt" -map 0:5 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s5.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s5%d.vtt" -map 0:6 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s6.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s6%d.vtt"

After disabling hardware encoding, I was able to get VAAPI to properly decode the media, but with my server specs, the encode task just runs terrible.  Does anyone have any ideas?  If more logs are needed, let me know.

Specs:

AMD FX-6300

16GB RAM

RX 580

Ubuntu Mate 18.10
6x6TB ZFS Pool

Posted

Hi there, please attach the complete log file example. thanks.

Posted

Ok, I'm adding @@softworkz to see what he thinks but we're releasing Emby Server 4.4 very soon which will have significantly improved hardware acceleration support. You could always try the beta channel if you'd like, and let us know how that compares. Thanks.

stompysan
Posted

Ok, I'm adding @@softworkz to see what he thinks but we're releasing Emby Server 4.4 very soon which will have significantly improved hardware acceleration support. You could always try the beta channel if you'd like, and let us know how that compares. Thanks.

How would I go about rolling into the beta?  Didn't see any download links, and would love to give it a shot.

vdatanet
Posted

Hey everyone.  I posted over on the Reddit, but a user stated the forums are more active.  I am trying to get some help on getting hardware acceleration working on my server.  I recently acquired an RX 580 to help with transcoding higher quality media.  I have installed the latest AMDPRO drivers, and the device is showing up properly.  Setting up the hardware acceleration shows the device, and I can use it for some transcoding, but all of my 4K content will not transcode via hardware.  I have tried clean installing the proprietary drivers, as well as Emby, with no success.  I have screenshots of the server dashboard at https://imgur.com/a/sv9AOTS

 

Looking through logs, I found the following:

16:24:28.988 frame=    0 fps=0.0 q=0.0 q=-1.0 q=-1.0 q=-1.0 q=-1.0 size=    3331kB time=00:41:06.13 bitrate=  11.1kbits/s throttle=off speed= 659x    
16:24:29.043 [h264_vaapi @ 0x97b140] No usable encoding profile found.
16:24:29.043 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
16:24:29.061 Conversion failed!
16:24:29.061
 
Affected codecs:
>>>>>>  libx264 Software Encoder
        Color Formats: YUV420P, YUVJ420P, YUV422P, YUVJ422P, YUV444P, YUVJ444P, NV12, NV16, NV21, YUV420P10, YUV422P10, YUV444P10, NV20
        Profiles: Baseline Profile (Level 6.2), Main Profile (Level 6.2), High Profile (Level 6.2), High 10 Profile (Level 6.2), High 4:2:2 Profile (Level 6.2), High 4:4:4 Profile (Level 6.2)
 
Info    Previous transcoding attempt failed. Falling back to software transcoding.
 
>>>>>>  FindVideoDecoder - MediaType: hevc, Mode: Custom
Info    FindVideoDecoder - Checking: 'Automatic software decoder' (Priority: 0)
Info    FindVideoDecoder - Check successful - selecting 'Automatic software decoder'
 
>>>>>>  FindVideoEncoder - Media: h264, UseHardwareCodecs: False, Mode: Custom
Info    FindVideoEncoder - Checking: 'libx264 Software Encoder' (Priority: 0)
Info    Encoder supports input stream
Info    FindVideoEncoder - Check successful - selecting 'libx264 Software Encoder'
 
 
/opt/emby-server/bin/ffmpeg -loglevel +timing -ss 00:41:15.000  -f matroska -i file:"/MainPool/6TB/Video/Movies/Joker (2019).mkv" -threads 4 -map 0:0 -map 0:2 -sn -c:v:0 libx264 -pix_fmt yuv420p  -maxrate 59926080 -bufsize 119852160 -preset ultrafast -profile:v:0 high -level:v:0 4.1 -crf 23 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -g:v:0 72 -keyint_min:v:0 72 -sc_threshold:v:0 0  -copyts -vsync -1 -codec:a:0 libmp3lame -disposition:a:0 default -ac:a:0 2 -ab:a:0 192000 -af:a:0 "volume=2" -f segment -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 -start_at_zero -segment_time 3  -individual_header_trailer 0 -segment_format mpegts -segment_write_temp 1 -segment_list_type m3u8 -segment_start_number 825 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca%d.ts" -map 0:3 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s3.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s3%d.vtt" -map 0:4 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s4.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s4%d.vtt" -map 0:5 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s5.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s5%d.vtt" -map 0:6 -map 0:0 -c:v:0 copy -codec:0 webvtt -copyts -vsync -1 -f segment -segment_time 3 -segment_format webvtt -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -write_empty_segments 1 -segment_list_type m3u8 -segment_start_number 825 -segment_write_temp 1 -break_non_keyframes 1 -segment_list "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s6.m3u8" -y "/var/lib/emby/transcoding-temp/79cfbaa409d97775600fd867cdc9ecca_s6%d.vtt"

After disabling hardware encoding, I was able to get VAAPI to properly decode the media, but with my server specs, the encode task just runs terrible.  Does anyone have any ideas?  If more logs are needed, let me know.

 

Specs:

AMD FX-6300

16GB RAM

RX 580

Ubuntu Mate 18.10

6x6TB ZFS Pool

 

This is fixed in the beta cycle

  • Like 1
Posted

This is fixed in the beta cycle

 

Just wanted to respond the same right in this second..

stompysan
Posted (edited)

 

Yes, using the latest AMDPRO driver.  Transcoding cache folder is on an SSD to prevent any problems for IO.

 

EDIT:  I did not see any notes involving it on Linux, but would running the device headless cause issues?  My server is running in another room and is completely headless.  I use X2Go for desktop management, and PuTTY for everything else.

Edited by stompysan
Posted

Yes, using the latest AMDPRO driver.  Transcoding cache folder is on an SSD to prevent any problems for IO.

 

EDIT:  I did not see any notes involving it on Linux, but would running the device headless cause issues?  My server is running in another room and is completely headless.  I use X2Go for desktop management, and PuTTY for everything else.

 

@@stompysan - Generally, VAAPI can work without a user session and without a connected display, but there's also BIOS functionality coming into play by controlling the onboard graphics configuration (e.g. amount of assigned memory) depending on whether a monitor is connected or not.

 

So, one thing you should check is your BIOS settings to make sure that onboard graphic is always on and has a decent amount of memory assigned.

 

The other part: Could you please retry without selecting subtitles, so we can see what happens in a somewhat less complicated case?

stompysan
Posted (edited)

@@stompysan - Generally, VAAPI can work without a user session and without a connected display, but there's also BIOS functionality coming into play by controlling the onboard graphics configuration (e.g. amount of assigned memory) depending on whether a monitor is connected or not.

 

So, one thing you should check is your BIOS settings to make sure that onboard graphic is always on and has a decent amount of memory assigned.

 

The other part: Could you please retry without selecting subtitles, so we can see what happens in a somewhat less complicated case?

 

Subtitles disabled for this one.  As for the BIOS options, I don't think that is an issue with my machine.  I am using an FX-6300, which does not have any onboard video whatsoever.

 

EDIT:  Attached file but forgot to upload.  Oof.

ffmpeg-transcode-a6ab8e27-a263-466c-81ec-852ea80d53d8_1.txt

Edited by stompysan
Posted

Subtitles disabled for this one.  As for the BIOS options, I don't think that is an issue with my machine.  I am using an FX-6300, which does not have any onboard video whatsoever.

 

EDIT:  Attached file but forgot to upload.  Oof.

 

Of course you're right: In case of a discrete GPU board, BIOS setting doesn't matter.

 

What model do you have?

 

PS: The attached log is the same as the one you posted previously...

stompysan
Posted

Of course you're right: In case of a discrete GPU board, BIOS setting doesn't matter.

 

What model do you have?

 

PS: The attached log is the same as the one you posted previously...

 

Sigh... I didn't open it to verify I pulled the right log.  Used a different file this time, with same codec and settings.  Actually made sure it was the right log this time.  lol.  I am using an XFX RX 580 GTS Black.

ffmpeg-transcode-c51ba2a3-216f-4291-98e1-7912a8dfa27e_1.txt

stompysan
Posted

Last post.  I ultimately abandoned the RX 580 and decided to replace it with a 1050.  Hardware acceleration just works now.  Thanks for trying to help everyone!

Posted

Interesting. thanks for the feedback !

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...