@@ -377,6 +377,59 @@ def has_h264_v4l2m2m_support():
377377
378378 return 'h264_v4l2m2m' in codecs .get ('h264' , {}).get ('encoders' , set ())
379379
380+ def has_h264_nvenc_support ():
381+ binary , version , codecs = mediafiles .find_ffmpeg ()
382+ if not binary :
383+ return False
384+
385+ # TODO also check for motion codec parameter support
386+
387+ return 'h264_nvenc' in codecs .get ('h264' , {}).get ('encoders' , set ())
388+
389+ def has_h264_nvmpi_support ():
390+ binary , version , codecs = mediafiles .find_ffmpeg ()
391+ if not binary :
392+ return False
393+
394+ # TODO also check for motion codec parameter support
395+
396+ return 'h264_nvmpi' in codecs .get ('h264' , {}).get ('encoders' , set ())
397+
398+ def has_hevc_nvmpi_support ():
399+ binary , version , codecs = mediafiles .find_ffmpeg ()
400+ if not binary :
401+ return False
402+
403+ # TODO also check for motion codec parameter support
404+
405+ return 'hevc_nvmpi' in codecs .get ('hevc' , {}).get ('encoders' , set ())
406+
407+ def has_hevc_nvenc_support ():
408+ binary , version , codecs = mediafiles .find_ffmpeg ()
409+ if not binary :
410+ return False
411+
412+ # TODO also check for motion codec parameter support
413+
414+ return 'hevc_nvenc' in codecs .get ('hevc' , {}).get ('encoders' , set ())
415+
416+ def has_h264_qsv_support ():
417+ binary , version , codecs = mediafiles .find_ffmpeg ()
418+ if not binary :
419+ return False
420+
421+ # TODO also check for motion codec parameter support
422+
423+ return 'h264_qsv' in codecs .get ('h264' , {}).get ('encoders' , set ())
424+
425+ def has_hevc_qsv_support ():
426+ binary , version , codecs = mediafiles .find_ffmpeg ()
427+ if not binary :
428+ return False
429+
430+ # TODO also check for motion codec parameter support
431+
432+ return 'hevc_qsv' in codecs .get ('hevc' , {}).get ('encoders' , set ())
380433
381434def resolution_is_valid (width , height ):
382435 # width & height must be be modulo 8
0 commit comments