Я записываю несжатое видео 4K с моего Sony A7R II через устройство видеозахвата и использую ffmpeg для сохранения видео.
Моя проблема в том, что я не знаю, какой кодек использовать. Два варианта, которые я пробовал:
libx264
, nvenc
и qvx
все они по существу заполняют буфер, а затем начинают пропускать кадры менее чем через минуту съемки.Я делаю все это на ноутбуке, поэтому у меня мало возможностей для добавления аппаратного кодирования, особенно учитывая, что решения Intel и Nvidia — по крайней мере, на моей машине — явно недостаточны для 4K.
Мои требования заключаются в том, что кодек позволяет:
На всякий случай, мой ноутбук имеет i7-4710MQ и 32 ГБ ОЗУ.
Обновление : некоторые уточнения: я записываю со скоростью 30 кадров в секунду, мое устройство захвата — INOGENI, выборка — 4:2:0. И нет, я не хочу терять больше качества, чем должен. Если мне придется тратить 100 Гб/час на запись, я согласен.
Как уже упоминал @Mulvya, я думаю, что проблема в «медленной» предустановке.
Одним из вариантов является кодирование сжатого потока без потерь. Например, кодировщик x264 может сделать это с помощью «-preset ultrafast -qp 0». Это, вероятно, приведет к невыполнению вашего третьего требования (совместимость), но, поскольку это без потерь, вы можете позже перекодировать на дешевые вращающиеся диски. Вы также можете изучить возможность использования кодировщика без потерь huffyuv, который может лучше поддерживаться. В этом методе есть некоторые подводные камни, поэтому вам обязательно нужно протестировать рабочий процесс от начала до конца. В частности, см. этот вопрос: Использование h264 в режиме без потерь приводит к небольшим неожиданным результатам .
Если вы пойдете по этому пути, я бы также поэкспериментировал с отбрасыванием субдискретизации и кодированием в формате 4:4:4. Это может не сильно увеличить размер вашего файла и поможет вам, если вы планируете выполнять какую-либо постобработку.
Другой вариант, в зависимости от вашего бюджета, — покупка энкодера. Я люблю FFmpeg, но он предназначен для работы везде, а не для того, чтобы в полной мере использовать ваше оборудование. Mainconcept не слишком дорог и лучше сможет использовать тот процессор i7, на который вы уже раскошелились. (См ., например , https://software.intel.com/en-us/articles/using-the-intel-media-sdk-within-mainconcept-h264avc-encoder-for-intel-quick-sync-video .) Они также предложите кодировщик HEVC, который еще больше уменьшит размер вашего файла. Однако я не могу ручаться за качество, так как у меня есть опыт работы с Ateme. Но я считаю, что вы можете, по крайней мере, оценить его бесплатно.
Гьян
RawBean
RawBean
Дмитрий Нестерук
Дмитрий Нестерук
ffmpeg -f dshow -rtbufsize 2000M -video_size 3840x2160 -i video="2318-INOGENI 4K2USB3":audio="Digital Audio Interface (2318-INOGENI 4K2USB3)" -c:v nvenc -preset slow -loglevel info r:\4k.mp4
Гьян
libx264
с пресетомveryfast
илиultrafast
и профилемmain
илиbaseline
.Дмитрий Нестерук
Дмитрий Нестерук
veryfast
, кажется, работает, все, что медленнее, - нет .