ffmpeg: Почему у меня упала скорость захвата? (больше нельзя захватывать с помощью той же команды)

Я использовал следующую команду для захвата видео с помощью ffmpeg в течение последних двух месяцев, используя мою карту захвата Blackmagic Intensity Pro 4K:

ffmpeg -bm_v210 1 -rtbufsize 1500M -threads 4 -f decklink -i "Intensity Pro 4K@20" -c:a copy -c:v prores -profile:v 1 movie1.mov

Это было нормально, хотя иногда я получаю сообщение «Переполнение входного буфера Decklink!» ошибка, и в этом случае я должен перезапустить захват.

Однако, начиная со вчерашнего дня, я получаю сообщение «Переполнение входного буфера Desklink!» ошибка каждый раз.

[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=479405.2kbits/s speed=0.849x
    Last message repeated 1 times
[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=480001.5kbits/s speed=0.842x
    Last message repeated 8 times
[decklink @ 0000000002552cc0] Decklink input buffer overrun!bitrate=480685.0kbits/s speed=0.842x
    Last message repeated 15 times

Итак, похоже, что мой SSD уже недостаточно быстр для записи данных, но почему? Последние два месяца работал нормально.

Я записываю на твердотельный накопитель Sandisk Extreme Pro (960 ГБ). На диске всего 10 ГБ данных. Я только что вручную запустил TRIM, но это не помогло. Панель SanDisk SSD Dashboard показывает, что у него осталось «99%» срока службы.

Я также отключил OneDrive, Dropbox и все другое программное обеспечение, которое я мог найти, которое может записывать в систему во время захвата.

Замените movie1.movна -map 0 -f null -, чтобы увидеть, связано ли это с диском. Примечание: файл не будет сохранен, так что это только для целей тестирования.
@Mulvya Когда я делаю замену, я получаю ту же ошибку. Что это значит?
Дополнительная информация: Когда я захватываю в dnxhr (hq) вместо prores (lt), несмотря на то, что битрейт dnxhr составляет ~850000 кбит/сек против ~450000 кбит/сек для prores, dnxhr работает, но не prores.
Какая у вас версия ffmpeg?
3.2.0. Невозможно использовать сборки 3.2.2 или 3.2.4, потому что флаг "enable_decklink" не включен, поэтому карта захвата не работает.

Ответы (1)

Поскольку это также происходит с -f null, но не с другим кодеком, возможной причиной является загрузка процессора во время захвата. Вы не упомянули об этом в своем вопросе. Есть ли какая-то конкретная причина для использования -threads 4? Попробуйте увеличить это число или опустите параметр.