ffmpeg: «Невозможно конвертировать между форматами» при использовании аппаратного ускорения Cuda - PullRequest
0 голосов
/ 12 ноября 2018

Я использую ffmpeg из командной строки в Windows 10, и я хотел дать Cuda попытку улучшить время выполнения.Такая простая команда обрезки работает нормально, а время ее выполнения сокращается на 60-70%.Потрясающе.

ffmpeg -hwaccel cuvid -c:v h264_cuvid -ss 00:00:10 -i in.mp4 -c:v h264_nvenc out.mp4

Теперь я попытался использовать флаг -filter_complex для наложения, затухания и преобразования изображения в формате png поверх видео.Вот рабочая команда без расширения cuda:

ffmpeg -i in.mp4 -loop 1 -t 75 -i overlay.png -filter_complex "[1:v]fade=t=in:st=30:d=0.3:alpha=1,fade=t=out:st=35.7:d=0.3:alpha=1[png1];[0:v][png1]overlay=x='if(gte(t,30), (t-30)*10, NAN)'" -movflags +faststart out.mp4

Затем я добавил в команду флаги, связанные с cuda, вот так:

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i in.mp4 -loop 1 -t 75 -i overlay.png -filter_complex "[1:v]fade=t=in:st=30:d=0.3:alpha=1,fade=t=out:st=35.7:d=0.3:alpha=1[png1];[0:v][png1]overlay=x='if(gte(t,30), 60-tanh((t-30)*30/5)*60, NAN)'" -movflags +faststart -c:v h264_nvenc out.mp4

Но она не будет работать,Я получаю эту ошибку.

Impossible to convert between the formats supported by the filter 'graph 0 input from stream 0:0' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0

Я даже не знаю, что это значит.Могу ли я на самом деле запустить любую команду ffmpeg на графическом процессоре с Cuda?Я нашел некоторую информацию о флаге hwupload_cuda, но я не уверен, должен ли я его использовать и как.Мои попытки пока не увенчались успехом.Любой совет, как мне изменить команду, чтобы она работала на GPU?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...