Я настраивал сборку записи для друга, похожего на моего, но я не могу заставить работать вещи в режиме реального времени, несмотря на достаточное (насколько я могу судить) аппаратное обеспечение.

Системные характеристики: 8600K, GTX 1050ti, 16 Гб оперативной памяти, 1 Тб 860 EVO

Тестовая команда (обновлена для простоты):

ffmpeg -y -hide_banner -thread_queue_size 9999 -f dshow -rtbufsize 2147.48M -video_size 1920x1080 -framerate 60 `
-i video="@device_pnp_\\?\usb#vid_07ca&pid_0570&mi_00#7&3886ab1a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" `
-thread_queue_size 9999 -f dshow -rtbufsize 2147.48M -video_size 1920x1080 -framerate 60 `
-i video="@device_pnp_\\?\usb#vid_07ca&pid_0570&mi_00#7&24df76f&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" `
-map 0 -c:v h264_nvenc -r 60 -preset: llhp -pix_fmt yuv420p -b:v 1M -minrate 1M -maxrate 1M -bufsize 1M `
C:\Users\Jordan\Videos\FFmpeg\Left\Left.ts `
-map 1 -c:v h264_nvenc -r 60 -preset: llhp -pix_fmt yuv420p -b:v 1M -minrate 1M -maxrate 1M -bufsize 1M `
C:\Users\Jordan\Videos\FFmpeg\Right\Right.ts

Цель этой команды - записать 2 отдельных синхронизированных выхода. Однако по той или иной причине эта команда не транскодирует видео в режиме реального времени, что является большой проблемой при попытке записи, а не просто конвертировать файл. Когда я опускаю один из двух выходов или делю пополам разрешение каждого входа / выхода, все работает в режиме реального времени. Это заставило бы меня поверить, что где-то в системе есть узкое место, но при мониторинге всего в диспетчере задач ничто даже близко не выходит из строя (кодер GPU, процессор, оперативная память и SSD используют менее 30%).

Более того, когда я пытаюсь записать оба потока в одном видео 4K60 через OBS, все работает отлично, как в режиме реального времени. Поэтому я не понимаю, как транскодирование двух потоков 1080p60 в FFmpeg будет более интенсивным, чем один поток 4K60 в OBS ...

С тех пор я поменял 1050ti на GTX 1080 без разницы в производительности. Это привело бы меня к мысли, что процессор виноват. Похоже, что FFmpeg на самом деле только 1-2 потока ... любой способ заставить его использовать больше? -потоки, кажется, не оказывают никакого влияния, независимо от того, где я ввожу их в команду. Что действительно странно, так это то, что у меня очень похожая команда, но я делаю два потока 4K60, а не два потока 1080p60 с GTX 1080 и 6800K ... Насколько я могу судить, 8600K имеет более высокую производительность в расчете на поток по сравнению с 6800K, поэтому я не уверен, как мне удастся добиться гораздо большего.

Любое понимание будет высоко ценится.

1 ответ1

0

Проблема была с картами захвата, я вытащил одну из его системы и вставил в свою, и смог повторить проблему. Это не воспроизводится ни с одной из моих других карт захвата, и у меня их 4.

Похоже, что проблема вызвана вирусом потокового движка Avermedia, хранящимся на самой карте. Карта фактически отображается как два устройства, одно без потокового движка в названии и одно с, если вы выберете одно, с проблемами устранены, но все еще присутствуют. В любом случае, поскольку я могу подтвердить, что проблема отсутствует на Elgato HD60 Pro, мы разместили заказ на 2 из них.

В ретроспективе взломы / нетрадиционные прошивки легко объясняют чрезвычайно сложные для диагностики проблемы. К счастью, мы приобрели Avermedia Live Gamer HD 2s и можем перепродать их для полного возврата денег.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .