Hi
I have got an Nvidia Quadro P620 and I am trying to convert my DX50 and libx264 files into libx265 format.
The command i'm using is
ffmpeg -hwaccel cuda -i abc.mp4 -c:v libx265 converted.mp4
I don't see any workload has been offloaded to my graphic card. All workload has been borne on my CPU.
What is the right syntax?
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 1 to 19 of 19
Thread
-
Last edited by wonmanfactory; 3rd Oct 2021 at 05:51. Reason: code emphasis
-
a. your source can't be decoded by cuda, so hardware accelleration can't be used for decoding
b. the encoder you chose (x265) does not use cuda.
If you want to use the Hevc hardware encoder on your card with ffmpeg, read: https://trac.ffmpeg.org/wiki/Encode/H.265
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
users currently on my ignore list: deadrats, Stears555
-
Last edited by Truthler; 3rd Oct 2021 at 06:56.
-
FFmpeg like NVEncC can use the NVIDIA hardware decoder (NVDec) and the NVIDIA hardware encoder (NVEnc) nowadays and is by no means slower than NVEncC or any other tools using NVEnc. That statement isn't correct any more.
Personally I do prefer NVEncC, but only since:
a. I get way faster feedback from it's developer.
b. it's a lot better documented.
So advertising other tools to users who ask how to do something with tool X is not what I would do unless I know that tool X can't do it.
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
so in order to deploy the graphics card, both input and output codecs have to be supported by the graphics card?
-
No, you can:
a. use the hardware decoder chip of the graphics card if the content is supported by it.
b. use the hardware encoder chip of the graphics card if the encoder that you use uses it.
In your example you use:
a. a content that is not supported by the decoder chip of the graphics card
b. an encoder that does not use the encoder chip of the graphics card.
For example:- Code:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "Path to input" -c:v h264_nvenc -preset slow "path to output"
- Code:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "Path to input" -c:v hevc_nvenc -preset slow "path to output"
- Code:
ffmpeg -i "Path to input" -c:v h264_nvenc -preset slow "path to output"
- Code:
ffmpeg -i "Path to input" -c:v hevc_nvenc -preset slow "path to output"
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
users currently on my ignore list: deadrats, Stears555
-
According to my tests, FFMPEG can achieve 10-18 FPS in 4K with full max settings in NVENC HEVC, using HW decoder. I achieved 30-40 FPS with Rigaya's NVENC. Moreover Rigaya's NVENC uses HW accelerated avisynth too.
Last edited by Truthler; 6th Oct 2021 at 01:38.
-
@Truthler: no clue how you conducted your tests,.. so sure everything is possible on your setup.
are you sure that nvencc doesn't revert to software decoding in that case, since last I read the documentation there was no was to use hardware decoding on ray yuv/rgb data like you get it from AviSynth,... (also last I looked at the source code of NVEncC there was nothing that would suggest that something lie that would even be tried)
This should be in another thread so that this thread doesn't get unnecessary confusing for the topic starter.users currently on my ignore list: deadrats, Stears555 -
Last edited by Truthler; 6th Oct 2021 at 03:24.
-
I have no idea what you are smoking but get off it.
Ffmpeg is used by numerous applications as there back end; I will grant you that in terms of hardware encoding via NVENC, QSV, or AMF it may not offer the fine grained control that competing solutions do, but it is definitely not slow.
BTW, ffmpeg is used by Amazon for hardware transcoding via Xelinx FPGA cards through their AWS service:
https://www.servethehome.com/amazon-aws-ec2-vt1-instances-use-xilinx-fpgas-for-video-transcoding/ -
-
There is no compression at all. My original file is 99.2MB, the hevc file is 553MB.
But the file converted by libx265 is only 76.1MB.
Why so??
Since you use hevc_nvenc, looking at the options with:
Code:ffmpeg -h encoder=hevc_nvenc
Code:hevc_nvenc AVOptions: -preset <int> E..V....... Set the encoding preset (from 0 to 18) (default p4) default 0 E..V....... slow 1 E..V....... hq 2 passes medium 2 E..V....... hq 1 pass fast 3 E..V....... hp 1 pass hp 4 E..V....... hq 5 E..V....... bd 6 E..V....... ll 7 E..V....... low latency llhq 8 E..V....... low latency hq llhp 9 E..V....... low latency hp lossless 10 E..V....... lossless losslesshp 11 E..V....... lossless hp p1 12 E..V....... fastest (lowest quality) p2 13 E..V....... faster (lower quality) p3 14 E..V....... fast (low quality) p4 15 E..V....... medium (default) p5 16 E..V....... slow (good quality) p6 17 E..V....... slower (better quality) p7 18 E..V....... slowest (best quality) -tune <int> E..V....... Set the encoding tuning info (from 1 to 4) (default hq) hq 1 E..V....... High quality ll 2 E..V....... Low latency ull 3 E..V....... Ultra low latency lossless 4 E..V....... Lossless -profile <int> E..V....... Set the encoding profile (from 0 to 4) (default main) main 0 E..V....... main10 1 E..V....... rext 2 E..V....... -level <int> E..V....... Set the encoding level restriction (from 0 to 186) (default auto) auto 0 E..V....... 1 30 E..V....... 1.0 30 E..V....... 2 60 E..V....... 2.0 60 E..V....... 2.1 63 E..V....... 3 90 E..V....... 3.0 90 E..V....... 3.1 93 E..V....... 4 120 E..V....... 4.0 120 E..V....... 4.1 123 E..V....... 5 150 E..V....... 5.0 150 E..V....... 5.1 153 E..V....... 5.2 156 E..V....... 6 180 E..V....... 6.0 180 E..V....... 6.1 183 E..V....... 6.2 186 E..V....... -tier <int> E..V....... Set the encoding tier (from 0 to 1) (default main) main 0 E..V....... high 1 E..V....... -rc <int> E..V....... Override the preset rate-control (from -1 to INT_MAX) (default -1) constqp 0 E..V....... Constant QP mode vbr 1 E..V....... Variable bitrate mode cbr 2 E..V....... Constant bitrate mode vbr_minqp 8388612 E..V....... Variable bitrate mode with MinQP (deprecated) ll_2pass_quality 8388616 E..V....... Multi-pass optimized for image quality (deprecated) ll_2pass_size 8388624 E..V....... Multi-pass optimized for constant frame size (deprecated) vbr_2pass 8388640 E..V....... Multi-pass variable bitrate mode (deprecated) cbr_ld_hq 8388616 E..V....... Constant bitrate low delay high quality mode cbr_hq 8388624 E..V....... Constant bitrate high quality mode vbr_hq 8388640 E..V....... Variable bitrate high quality mode -rc-lookahead <int> E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0) -surfaces <int> E..V....... Number of concurrent surfaces (from 0 to 64) (default 0) -cbr <boolean> E..V....... Use cbr encoding mode (default false) -2pass <boolean> E..V....... Use 2pass encoding mode (default auto) -gpu <int> E..V....... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any) any -1 E..V....... Pick the first device available list -2 E..V....... List the available devices -delay <int> E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX) -no-scenecut <boolean> E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false) -forced-idr <boolean> E..V....... If forcing keyframes, force them as IDR frames. (default false) -spatial_aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false) -spatial-aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false) -temporal_aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false) -temporal-aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false) -zerolatency <boolean> E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false) -nonref_p <boolean> E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false) -strict_gop <boolean> E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false) -aq-strength <int> E..V....... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8) -cq <float> E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0) -aud <boolean> E..V....... Use access unit delimiters (default false) -bluray-compat <boolean> E..V....... Bluray compatibility workarounds (default false) -init_qpP <int> E..V....... Initial QP value for P frame (from -1 to 51) (default -1) -init_qpB <int> E..V....... Initial QP value for B frame (from -1 to 51) (default -1) -init_qpI <int> E..V....... Initial QP value for I frame (from -1 to 51) (default -1) -qp <int> E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1) -qp_cb_offset <int> E..V....... Quantization parameter offset for cb channel (from -12 to 12) (default 0) -qp_cr_offset <int> E..V....... Quantization parameter offset for cr channel (from -12 to 12) (default 0) -weighted_pred <int> E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0) -b_ref_mode <int> E..V....... Use B frames as references (from 0 to 2) (default disabled) disabled 0 E..V....... B frames will not be used for reference each 1 E..V....... Each B frame will be used for reference middle 2 E..V....... Only (number of B frames)/2 will be used for reference -a53cc <boolean> E..V....... Use A53 Closed Captions (if available) (default true) -s12m_tc <boolean> E..V....... Use timecode (if available) (default true) -dpb_size <int> E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0) -multipass <int> E..V....... Set the multipass encoding (from 0 to 2) (default disabled) disabled 0 E..V....... Single Pass qres 1 E..V....... Two Pass encoding is enabled where first Pass is quarter resolution fullres 2 E..V....... Two Pass encoding is enabled where first Pass is full resolution -ldkfs <int> E..V....... Low delay key frame scale; Specifies the Scene Change frame size increase allowed in case of single frame VBV and CBR (from 0 to 255) (default 0) -extra_sei <boolean> E..V....... Pass on extra SEI data (e.g. a53 cc) to be included in the bitstream (default true) -intra-refresh <boolean> E..V....... Use Periodic Intra Refresh instead of IDR frames (default false) -single-slice-intra-refresh <boolean> E..V....... Use single slice intra refresh (default false) -constrained-encoding <boolean> E..V....... Enable constrainedFrame encoding where each slice in the constrained picture is independent of other slices (default false)
If you use bitrate encoding your could for example add "-b:v 5M" to aim for rougkly 5MBit/s, so depending on what size you want you could adjust the target bitrate,...
May be after reading https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/ and similar articles (internet search engines should provide a few) about encoding with ffmpeg and NVEnc you understand what is happening.
Cu Selurusers currently on my ignore list: deadrats, Stears555
Similar Threads
-
Public Windows PrintNightmare 0-day exploit allows domain takeover.
By El Heggunte in forum ComputerReplies: 1Last Post: 2nd Jul 2021, 18:58 -
Google discloses Windows 0-day that’s been under active exploit
By El Heggunte in forum ComputerReplies: 2Last Post: 3rd Nov 2020, 11:05 -
best graphic card for rendering under 1000$
By gta5 in forum Newbie / General discussionsReplies: 7Last Post: 15th Oct 2018, 10:34 -
Terrible picture problem with new monitor and graphic card
By kodec in forum Newbie / General discussionsReplies: 11Last Post: 17th Jun 2018, 14:46 -
Exist PCI graphic card for Windows 10 x64?
By MIRKOSOFT in forum ComputerReplies: 38Last Post: 3rd Dec 2016, 20:26