Jump to content

Use NVENC instead of VAAPI?


Recommended Posts

Posted

I'm running Emby 4.7.0.13 on a Fedora system with both an Intel iGPU and a dedicated nVidia 1050Ti.

I'd like to use the nVidia GPU, but Emby seems to default to VAAPI.

# cat ffmpeg-transcode-c1a43cda-4c46-48ea-8397-bfb5055e77ff_1.txt
2021-10-10 23:25:24.571
Operating System: Linux version 5.14.10-xm1.0e20210920.fc34.x86_64 (mockbuild@bcf7e54101ec4dbf913dc2cfc7e2db1f) (clang version 12.0.1 (Fedora 12.0.1-1.fc34), LLD 12.0.1
OS/Process: x64/x64
Emby Server version: 4.7.0.13
Operating system: Unix 5.14.10.1
Command Line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-rpm-any_{version}_x86_64.rpm

App: Emby Web 4.7.0.13
Firefox

https://emby.mastag.nl:8920/emby/videos/512807/hls1/main/995.ts?DeviceId=2ee7942b-1519-4c49-a7f9-53c4dc0e5b82&MediaSourceId=65aba1923de25aeca7f88545805d6628&PlaySessionId=3547c38bac6e491d8c653432ada6b347&api_key=94bdd9a5a58341c893fe480846d91430&VideoCodec=h264&AudioCodec=aac&VideoBitrate=3616000&AudioBitrate=384000&AudioStreamIndex=1&SubtitleStreamIndex=2&SubtitleMethod=Hls&TranscodingMaxAudioChannels=2&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&ManifestSubtitles=vtt&h264-profile=high,main,baseline,constrainedbaseline&h264-level=52&TranscodeReasons=ContainerBitrateExceedsLimit

{"Protocol":"File","Id":"65aba1923de25aeca7f88545805d6628","Path":"/mnt/nas/movies/xx.mkv","Type":"Default","Container":"mkv","Size":9462335824,"Name":"Zola","IsRemote":false,"RunTimeTicks":51543040000,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"RequiresLooping":false,"SupportsProbing":false,"MediaStreams":[{"Codec":"h264","ColorTransfer":"bt709","ColorPrimaries":"bt709","ColorSpace":"bt709","TimeBase":"1/1000","VideoRange":"SDR","DisplayTitle":"1080p H264","NalLengthSize":"0","IsInterlaced":false,"BitRate":14686500,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":1040,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"High","Type":"Video","AspectRatio":"3060:1651","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File","PixelFormat":"yuv420p","Level":40,"IsAnamorphic":true},{"Codec":"eac3","Language":"eng","TimeBase":"1/1000","DisplayTitle":"English EAC3 5.1 (Default)","DisplayLanguage":"English","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":640000,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File"},{"Codec":"subrip","Language":"eng","TimeBase":"1/1000","DisplayTitle":"English (Default SUBRIP)","DisplayLanguage":"English","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Protocol":"File"}],"Formats":[],"Bitrate":14686500,"RequiredHttpHeaders":{},"ReadAtNativeFramerate":false}

>>>>>>  User policy for MastaG
        EnablePlaybackRemuxing: True
        EnableVideoPlaybackTranscoding: True
        EnableAudioPlaybackTranscoding: True

>>>>>>  Affected codecs
Encoder VAAPI HD Graphics 530 - H.264 (AVC)
        Adapter #0: 'HD Graphics 530' Id:6418 (Driver: Intel iHD driver for Intel(R) Gen Graphics - 21.2.2 (1dd7d7f), Vendor: Intel Corporation)
        Frame Sizes: 32x32...4096x4096
        Color Formats: NV12
        Profiles: Main Profile (Level 6), High Profile (Level 6), Constrained Baseline Profile (Level 6)

Decoder VAAPI HD Graphics 530 - H.264 (AVC)
        Adapter #0: 'HD Graphics 530' Id:6418 (Driver: Intel iHD driver for Intel(R) Gen Graphics - 21.2.2 (1dd7d7f), Vendor: Intel Corporation)
        Frame Sizes: max 4096x4096
        Color Formats: NV12
        Profiles: Main Profile (Level 6), High Profile (Level 6), Constrained Baseline Profile (Level 6)


>>>>>>  FindVideoEncoder - Media: h264, UseHardwareCodecs: True, Mode: Automatic
Info    Checking: 'VAAPI HD Graphics 530 - H.264 (AVC)'
Info    Check successful - selecting 'VAAPI HD Graphics 530 - H.264 (AVC)'

>>>>>>  FindVideoDecoder - MediaType: h264, Mode: Automatic
Info    Checking: 'VAAPI HD Graphics 530 - H.264 (AVC)'
Info    Check successful - selecting 'VAAPI HD Graphics 530 - H.264 (AVC)'

>>>>>>  Processing Plan
Info    Name                                        CanDoInHardware      WillDoInHardware     Reason                                  
Info    VAAPI HD Graphics 530 - H.264 (AVC)      >> True                 True                 Hardware Codec                           
Info    VideoInput                               >> True                 True                 Same adapter (/dev/dri/renderD128), s... 
Info    Scaling                                  >> True                 True                                                          
Info    VideoOutput                              >> True                 True                 Hardware encoder                         
Info    VAAPI HD Graphics 530 - H.264 (AVC)      >> True                 True                 Hardware Codec                           

>>>>>>  Projected Processing Formats
Info    Previous                HW-Context   Format       SW-Format           Size   Next
Info    h264                 >> VAAPI        vaapi_vld    nv12           1920x1040 >> scale_vaapi
Info    scale_vaapi          >> VAAPI        vaapi_vld    nv12            1280x692 >> 

/opt/emby-server/bin/ffmpeg -loglevel +timing -y -print_graphs_file "/var/lib/emby/logs/ffmpeg-transcode-c1a43cda-4c46-48ea-8397-bfb5055e77ff_1graph.txt" -copyts -start_at_zero -f matroska,webm -ss 00:49:45.000 -c:v:0 h264 -hwaccel:v:0 vaapi -hwaccel_device:v:0 /dev/dri/renderD128 -hwaccel_output_format:v:0 vaapi -i "/mnt/nas/movies/xx.mkv" -filter_complex "[0:0]scale_vaapi@f1=w=1280:h=692[f1_out0]" -map [f1_out0] -map 0:1 -sn -c:v:0 h264_vaapi -b:v:0 3616000 -g:v:0 72 -maxrate:v:0 3616000 -bufsize:v:0 7232000 -sc_threshold:v:0 0 -keyint_min:v:0 72 -profile:v:0 high -level:v:0 3.1 -c:a:0 aac -ab:a:0 192000 -ac:a:0 2 -metadata:s:a:0 language=eng -filter:a:0 "volume=2" -disposition:a:0 default -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format mpegts -segment_list "/var/lib/emby/transcoding-temp/B999EF.m3u8" -segment_list_type m3u8 -segment_time 00:00:03.000 -segment_start_number 995 -individual_header_trailer 0 -write_header_trailer 0 -segment_write_temp 1 "/var/lib/emby/transcoding-temp/B999EF_%d.ts" -map 0:2 -map 0:0 -an -c:v:0 copy -c:s:0 webvtt -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format webvtt -segment_list "/var/lib/emby/transcoding-temp/B999EF_s2.m3u8" -segment_list_type m3u8 -segment_time 00:00:03.000 -segment_start_number 995 -break_non_keyframes 1 -individual_header_trailer 1 -write_header_trailer 0 -write_empty_segments 1 -segment_write_temp 1 -min_frame_time 00:49:45.000 "/var/lib/emby/transcoding-temp/B999EF_s2_%d.vtt"

23:25:24.577 ffmpeg version 4.4.0-emby_2021_08_23 Copyright (c) 2000-2021 the FFmpeg developers and softworkz for Emby LLC
23:25:24.577   built with gcc 8.3.0 (crosstool-NG 1.24.0)
23:25:24.577 Execution Date: 2021-10-10 23:25:24
23:25:24.583 Input #0, matroska,webm, from '/mnt/nas/movies/xx.mkv':
23:25:24.583   Metadata:
23:25:24.583     encoder         : libebml v1.3.9 + libmatroska v1.5.2
23:25:24.583     creation_time   : 2021-07-22T04:54:14.000000Z
23:25:24.583   Duration: 01:25:54.30, start: 0.000000, bitrate: 14686 kb/s
23:25:24.583   Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1040 [SAR 481:480 DAR 37:20], SAR 255:254 DAR 3060:1651, Level 40, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
23:25:24.583   Stream #0:1(eng): Audio: eac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
23:25:24.583   Stream #0:2(eng): Subtitle: subrip (default)
23:25:24.586 Output #1, segment, to '/var/lib/emby/transcoding-temp/B999EF_s2_%d.vtt':
23:25:24.586   Metadata:
23:25:24.586     encoder         : Lavf58.76.100
23:25:24.586   Stream #1:0: Subtitle: webvtt (default)
23:25:24.586     Metadata:
23:25:24.586       encoder         : Lavc58.134.100 webvtt
23:25:24.586   Stream #1:1: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1040 [SAR 255:254 DAR 3060:1651], q=2-31, Level 40, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc (default)
23:25:24.586 Stream mapping:
23:25:24.586   Stream #0:0 (h264) -> scale_vaapi (graph 0)
23:25:24.586   scale_vaapi (graph 0) -> Stream #0:0 (h264_vaapi)
23:25:24.586   Stream #0:1 -> #0:1 (eac3 (native) -> aac (native))
23:25:24.586   Stream #0:2 -> #1:0 (subrip (srt) -> webvtt (native))
23:25:24.586   Stream #0:0 -> #1:1 (copy)
23:25:24.586 Press [q] to stop, [?] for help
23:25:25.403 Output #0, segment, to '/var/lib/emby/transcoding-temp/B999EF_%d.ts':
23:25:25.403   Metadata:
23:25:25.403     encoder         : Lavf58.76.100
23:25:25.403   Stream #0:0: Video: h264 (High), vaapi_vld(tv, bt709, progressive), 1280x692 [SAR 26469:26416 DAR 3060:1651], q=2-31, 3616 kb/s, Level 31, 23.98 fps, 90k tbn (default)
23:25:25.403     Metadata:
23:25:25.403       encoder         : Lavc58.134.100 h264_vaapi
23:25:25.403   Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp, 192 kb/s (default)
23:25:25.403     Metadata:
23:25:25.403       encoder         : Lavc58.134.100 aac
23:25:25.403 elapsed=00:00:00.77 frame=    1 fps=0.0 q=0.0 q=-1.0 size=N/A time=-00:00:00.26 bitrate=N/A throttle=off speed=N/A    
23:25:25.910 elapsed=00:00:01.29 frame=   15 fps= 12 q=-0.0 q=-1.0 size=N/A time=00:00:00.32 bitrate=N/A throttle=off speed=0.248x    
23:25:26.406 elapsed=00:00:01.79 frame=   34 fps= 19 q=-0.0 q=-1.0 size=N/A time=00:00:01.11 bitrate=N/A throttle=off speed=0.62x    
23:25:26.937 elapsed=00:00:02.32 frame=   54 fps= 23 q=-0.0 q=-1.0 size=N/A time=00:00:01.94 bitrate=N/A throttle=off speed=0.838x    
23:25:27.454 elapsed=00:00:02.84 frame=   74 fps= 26 q=-0.0 q=-1.0 size=N/A time=00:00:02.78 bitrate=N/A throttle=off speed=0.98x    
23:25:27.477 [segment @ 0x107e980] Opening '/var/lib/emby/transcoding-temp/B999EF.m3u8.tmp' for writing
23:25:27.477 SegmentComplete=video:0 Index=995 Start=0.000000 End=2988.026711 Duration=2988.026711 offset_pts=0 start_pts=0 Frames=72 filename=B999EF_995.ts
23:25:27.477 [segment @ 0x107e980] Opening '/var/lib/emby/transcoding-temp/B999EF_996.ts.tmp' for writing
23:25:27.902 [segment @ 0x106c7c0] Opening '/var/lib/emby/transcoding-temp/B999EF_s2.m3u8.tmp' for writing
...

The reason I'd like to use NVENC is because the system sometimes hangs when using the Intel iGPU.

 

In Plex I can set something like:

HardwareDevicePath="/dev/dri/renderD129"

 

Is there some similar setting available for Emby?

Posted

Hi there, have you explored Emby Server transcoding settings?

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...