Могу ли я проверить работу декодера nvidia (nvdec/cuvid) на сгенерированном видео ffmpeg?

цель: В моем скрипте я пытаюсь проверить, доступен ли/функционален ли nvdec на моей видеокарте. У меня нет исходного видео (H.264 / H.265), которое я намеренно использовал бы в качестве входных данных в настоящее время, поэтому я хочу его создать. Также нет необходимости использовать кодировщик, потому что мне не нужен выходной файл. Я тестирую код выхода команды ffmpeg ($?). Я использую nvidia-smi для проверки загрузки dec/enc.

Моя попытка:

      ffmpeg -y -hwaccel cuda -hwaccel_output_format cuda -c:v h264_cuvid -f lavfi -i testsrc="duration=5:size=1920x1080:rate=25" -c:v copy test.ts

вывод моих команд:

      Input #0, lavfi, from 'testsrc=duration=5:size=1920x1080:rate=25':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], 25 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_cuvid) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
No information about the input framerate is available. Falling back to a default value of 25fps for output stream #0:0. Use the -r option if you want a different framerate.
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf58.65.101
    Stream #0:0: Video: wrapped_avframe, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn
    Metadata:
      encoder         : Lavc58.119.100 wrapped_avframe
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

Я попытался добавить -t 5 перед test.ts, но ничего не изменилось. Выходной файл ts имеет нулевой размер.

Если я отлаживаю команду, я ожидаю добавить ее в конец "-f null - 2>/dev/null". Выходной файл предназначен только для целей отладки.

Спасибо.

1 ответ

Вам нужно сначала сгенерировать видео с помощью кодировщика H.264, а затем попробовать декодировать его отдельно.

      ffmpeg -y -f lavfi -i "testsrc2=duration=5:size=1920x1080:rate=25" -c:v h264 test.ts

ffmpeg  -c:v h264_cuvid -i test.ts -f null -
Другие вопросы по тегам