Ошибка, которую вы видите, ожидается, если вы используете графический процессор NVIDIA потребительского уровня, в котором максимальный размер одновременного сеанса NVENC равен 2 на уровне прошивки и драйвера. См. NVIDIA GPU Matrix для получения дополнительной информации об этом.
Есть два способа преодолеть это ограничение:
1. Явно выберите видеопоток, который вы хотите кодировать , с помощью опций -map
, чтобы только два видеопотока кодировались в любой момент времени за сеанс. В приведенном ниже примере явно выбираются только первый и второй видеопоток:
E:\video>ffmpeg -loglevel error -y -i E:\video\19_12_2018\Files\MEDIA\media_data.mxf -map 0:v:0 -map 0:v:1 -map:0:a -c:v h264_nvenc -acodec copy nvidia_output.mp4
Было бы замечательно, если бы вы предоставили вывод ffprobe для входного файла, с которым вы работаете, и таким образом мы можем предложить, что делать с другими видеопотоками. Альтернативой такому было бы использование программного кодера (например, x264), если это необходимо.
2. Переопределите вышеупомянутый предел количества сеансов NVENC выше: Это потребует от вас исправления драйвера NVIDIA, как описано в этом репозитории. Инструкции для Linux также доступны здесь .