mirror of
https://github.com/kkroening/ffmpeg-python.git
synced 2025-08-07 18:39:47 +08:00
Detect: Fix VAAPI handling, add -hwaccel_output_format handling
This commit is contained in:
parent
dc243a6e9c
commit
a3e784b0d1
@ -40,8 +40,17 @@ parser.add_argument(
|
|||||||
|
|
||||||
# List `hwaccel` options by order of expected performance when available.
|
# List `hwaccel` options by order of expected performance when available.
|
||||||
HWACCELS_BY_PERFORMANCE = [
|
HWACCELS_BY_PERFORMANCE = [
|
||||||
'cuvid', 'amf', 'vdpau',
|
# NVidia
|
||||||
'qsv', 'd3d11va', 'dxva2', 'vaapi', 'drm']
|
'nvdec', 'cuvid', 'cuda',
|
||||||
|
# AMD
|
||||||
|
'amf',
|
||||||
|
# Windows
|
||||||
|
'qsv', 'd3d11va', 'dxva2',
|
||||||
|
# Linux
|
||||||
|
'vaapi', 'vdpau', 'drm']
|
||||||
|
HWACCEL_OUTPUT_FORMATS = {
|
||||||
|
'nvdec': 'cuda',
|
||||||
|
'vaapi': 'vaapi'}
|
||||||
# Loaded from JSON
|
# Loaded from JSON
|
||||||
DATA = None
|
DATA = None
|
||||||
|
|
||||||
@ -126,6 +135,9 @@ def detect_codecs(decoder, encoder, hwaccels=None, cmd='ffmpeg'):
|
|||||||
hwaccel_kwargs = dict(
|
hwaccel_kwargs = dict(
|
||||||
input=dict(hwaccel=hwaccel['name']),
|
input=dict(hwaccel=hwaccel['name']),
|
||||||
output=dict(codec=hwaccel_encoder))
|
output=dict(codec=hwaccel_encoder))
|
||||||
|
if hwaccel['name'] in HWACCEL_OUTPUT_FORMATS:
|
||||||
|
hwaccel_kwargs['input']['hwaccel_output_format'] = (
|
||||||
|
HWACCEL_OUTPUT_FORMATS[hwaccel['name']])
|
||||||
codecs_kwargs.append(hwaccel_kwargs)
|
codecs_kwargs.append(hwaccel_kwargs)
|
||||||
for hwaccel_decoder in hwaccel['codecs'].get(
|
for hwaccel_decoder in hwaccel['codecs'].get(
|
||||||
decoder, {}).get('decoders', []):
|
decoder, {}).get('decoders', []):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user