Внутрикадровый H.264/H.265 по сравнению с DNxHR или Prores в качестве промежуточных кодеков для редактирования

ВАЖНО: ПРОБЛЕМА РЕШЕНА (ХОТЯ ОСТАЛИСЬ НЕСКОЛЬКО ВОПРОСОВ), Я РАЗМЕСТИЛА НЕКОТОРУЮ ИНФОРМАЦИЮ ПОД ИСХОДНЫМ ПОСТОМ В КАЧЕСТВЕ ОБНОВЛЕНИЯ, ЕСЛИ КТО-ТО СЧИТАЕТ ЭТО ПОЛЕЗНЫМ:

Быстрый вопрос: каковы преимущества использования для редактирования наиболее распространенных кодеков с недлинной GOP (DNxHD/DNxHR и Prores) по сравнению с внутрикадровым H.264 с высоким битрейтом? Теоретически возможность сжатия, даже если она только внутрикадровая, лучше с H.264, и только благодаря внутрикадровому воспроизведению производительность при редактировании должна быть эквивалентна двум другим кодекам. Кроме того, H.264 поддерживает до 12 бит и 4:4:4 (поэтому он гибкий). Я прочитал все, что мог, об этих кодеках, но мне еще предстоит найти причину, по которой внутрикадровый H.264 не используется более широко для редактирования.

Для протокола: я спрашиваю об этом, потому что я начинаю проект HDR с видео H.264 high 10 UHD 4:2:0, и у меня есть две проблемы: если я пытаюсь редактировать с прокси (с DNxHR или Prores ), у меня возникают серьезные проблемы с синхронизацией между исходным файлом и прокси-серверами, поэтому я не могу правильно редактировать. И если я перекодирую исходный файл в файл, у которого нет этих проблем с синхронизацией (например, DNxHR, с DNxHR для прокси), я теряю данные HDR, и видео выглядит как SDR (и это происходит с любым кодеком, не только DNxHR.Мне не удалось сохранить информацию HDR исходного файла ни с одним кодеком, и я пытался использовать FFmpeg и Adobe Media Encoder), но это проблема для другого поста. Дело в том, что я застрял с использованием оригинального материала в качестве исходного файла, но не могу редактировать таким образом без прокси (очевидно, воспроизведение очень медленное), поэтому мне было интересно, повлияет ли перекодирование исходного файла во внутрикадровое видео H.264 и работа с ним (и без прокси) на конечное качество. Я не нашел информации, сравнивающей внутрикадровый H.264 с другими промежуточными кодеками по качеству и производительности.

Заранее спасибо.

ОБНОВЛЕНИЕ (03.02.20):

Я провел несколько тестов, чтобы увидеть, как внутрикадровый H.264 ведет себя с Adobe Premiere Pro 2020:

1)Я перекодировал исходный материал (H.264, контейнер MKV, HDR, 10 бит, UHD, 4:2:0, VBR) с помощью FFmpeg во внутрикадровую «версию» файла, не меняя никаких других настроек (просто добавил -intra в мою исходную командную строку FFmpeg). Я использовал CRF 18 и очень медленный в качестве предустановки (у меня очень хороший процессор, поэтому весь файл был перекодирован за ночь). Затем я импортировал файл в Adobe Premiere Pro 2020. Во-первых, я должен сказать, что еще не начал редактировать, но, по крайней мере, я мог сказать, что он был совместим и вел себя как внутрикадровое видео при тестировании воспроизведения ( Я мог двигаться вперед и назад очень быстро). Я также не увидел никакой разницы в качестве по сравнению с оригинальными кадрами. Другими словами, внутрикадровый H.264 пока выглядит хорошей альтернативой другим промежуточным кодекам, таким как Prores или DNxHD/DNxHR. Фактически,

2)Я знаю, что дополнительные шаги транскодирования никогда не бывают хорошими с точки зрения качества, но поскольку мне все равно пришлось перекодировать во внутрикадровое видео, я провел еще один тест и перекодировал исходный материал в видео HEVC с помощью FFmpeg (с libx265), сохранив все исходные настройки. Используемый CRF был 18, с предустановленным очень медленным. Я использовал профиль main10-intra x265. Затем я сделал то же самое с другим видео, которое было SDR. Как и следовало ожидать, это заняло немного больше времени, но я хотел сделать это по нескольким причинам: во-первых, потому что я хотел знать, как Adobe Premiere Pro 2020 обрабатывает внутрикадровое видео H.265 HDR UHD. Во-вторых, потому что я читал (и не цитируйте меня по этому поводу), что после перекодирования любого 8-битного видео в 10-битное многие ощущают увеличение качества, из-за более широкого цветового пространства, которое позволяет кодировщику выбирать из большего количества цветов при перекодировании, что уменьшает полосатость. Что ж, я не заметил никакой разницы в качестве (по сравнению с внутрикадровым файлом H.264 и с исходным материалом, как в файлах HDR, так и в файлах SDR), но размеры файлов были явно меньше и, по крайней мере, на моем ПК они очень хорошо показали себя в Premiere Pro (воспроизведение было таким же быстрым, как и внутрикадровое видео H.264). Очевидно, что при воспроизведении HDR-видео не отображаются правильные цвета, но это ограничение Premiere из-за того, как он обрабатывает цветовые пространства (пока нет REC2020). но размеры файлов были явно меньше, и, по крайней мере, на моем ПК они очень хорошо работали в Premiere Pro (воспроизведение было таким же быстрым, как и с внутрикадровыми видео H.264). Очевидно, что при воспроизведении HDR-видео не отображаются правильные цвета, но это ограничение Premiere из-за того, как он обрабатывает цветовые пространства (пока нет REC2020). но размеры файлов были явно меньше, и, по крайней мере, на моем ПК они очень хорошо работали в Premiere Pro (воспроизведение было таким же быстрым, как и с внутрикадровыми видео H.264). Очевидно, что воспроизведение HDR-видео не отображает правильные цвета, но это ограничение Premiere из-за того, как он обрабатывает цветовые пространства (пока нет REC2020).

3)Поскольку раньше у меня были проблемы с цветом при перекодировании в DNxHR, и я не мог их решить, я начал думать, что это может быть связано с субдискретизацией цветности (ни одна из разновидностей DNxHR не поддерживает 4:2:0, что является субдискретизацией оригинальное видео). Это была еще одна причина попробовать использовать внутрикадровый H.264 (или H.265), чтобы увидеть, дает ли перекодирование в 4:2:0, 4:2:2 или 4:4:4 аналогичную разницу в цветах по сравнению с DNxHR. Выяснилось, что при перекодировании в формат 4:2:0 (с кодеками H.264 или H.265) цвета выглядят точно так же, как и в исходном кадре, а форматы 4:2:2 и 4:4:4 выглядят намного лучше. как видео DNxHR (цвета размыты). Разницы между 4:2:2 и 4:4:4 не вижу, но по сравнению с 4:2:0 разница огромна. Во-первых, я никогда не хотел повышать разрешение видео, это было просто потому, что DNxHR не поддерживает 4: 2: 0, но я никогда не ожидал такой разницы. И если это было из-за повышения частоты дискретизации, то я не совсем понимаю, почему 4:2:2 и 4:4:4 выглядят совершенно одинаково. Может быть, это какая-то ошибка FFmpeg, которая портит цветовое пространство при повышении частоты дискретизации, idk.

Во всяком случае, теперь у меня есть работающие внутрикадровые видео H.264 и H.265 без проблем с цветом (проверил файлы визуально, с помощью Mediainfo и с помощью вкладки областей Lumetri в Premiere. Они действительно сохранили все метаданные, необходимые для HDR) , без проблем с синхронизацией (я также сделал пару прокси с точно такими же настройками, но только с меньшим разрешением. Они отлично синхронизируются с исходным файлом), с меньшим размером файла, чем с DNxHR и Prores, и которые очень хорошо работают на Premiere Pro 2020 при предварительном просмотре (может быть, они не делают с более слабым процессором, я не знаю). Так что пока можно сказать (мне пора приступать к редактированию, возможно, по пути возникнут какие-то проблемы. И я еще не тестировал экспорт из Premiere с использованием этих файлов), что моя проблема решена.

Но мой вопрос остается после этих тестов: почему внутрикадровый H.264 или внутрикадровый H265 не более расширен в качестве альтернативы DNxHR или Prores (наиболее часто используемые промежуточные кодеки)? Я не вижу ничего, кроме преимуществ: меньший размер файла, хорошая производительность воспроизведения, очень хорошее качество (а если у вас достаточно места, вы можете даже сделать внутрикадровый файл H.264 без потерь, если хотите), они сохраняют HDR data, и оба кодека очень хорошо известны и распространены. У них даже есть свои внутрикадровые профили (например, у H.265 есть main10-intra, main444-10-intra и т. д.). По моему опыту, время транскодирования, по крайней мере, с использованием FFmpeg на ПК, не сильно отличается от DNxHR или Prores. Есть ли какая-либо причина, по которой это не идеальный способ редактирования, помимо того факта, что эти внутрикадровые «версии» H.264 и H.

Спасибо, любое понимание этого будет оценено. И я не против поделиться командами FFmpeg, которые я использовал, если кто-то найдет это полезным.

Я думаю, главная причина в том, что это новый подход; хотя все I-кадры h.264 могут иметь производительность, аналогичную ProRes или DNxHR, они обычно не используются для редактирования, поэтому в нелинейных модулях может быть неполная поддержка. Или нет. Я бы попробовал и посмотрел, как он работает
Спасибо за ваш ответ. Я еще не пробовал (перекодировать во внутрикадровый h.264 и импортировать его в Premiere Pro), но, допустим, он отлично работает для редактирования. Знаете ли вы, есть ли разница в качестве по сравнению с большинством установленных промежуточных кодеков (Prores, DNxHD/DNxHR)? Если NLE поддерживает это, на бумаге я не понимаю, почему он должен быть хуже, но я не эксперт.
Привет. Сделал пару тестов, выложил на ОП. Спасибо!

Ответы (1)

ProRes/CineForm/DNxHR завоевали популярность благодаря платформам, которые решили их использовать. Первоначально H.264 не имел 10-битных реализаций, а H.265 не существовало.

Эти форматы созданы для того, чтобы выдерживать повторное кодирование и при этом очень быстро кодировать/декодировать. Они не кропотливо настраиваются для наилучшего возможного качества при заданном битрейте.

Несколько камер могут сохранять файлы в формате all-intra H.264. Я знаю, что Panasonic и Sony поддерживают его. Sony называет это XAVC SI. Это просто их торговая марка для H.264 all-intra с поддержкой 10-бит, 12-бит, 422 и 444. И он поддерживает звук PCM, который на самом деле не соответствует спецификации контейнера MP4. Эти форматы завоевывают популярность в камерах, потому что камеры предъявляют очень специфические требования к битрейту для записи на SD-карту. Но тогда, если вы посмотрите на внешний рекордер, такой как Ninja V, который может записывать на SSD, он будет записывать в ProRes/DNxHR, потому что он может работать с более высоким битрейтом — и потому что никто не собирается покупать что-то, что поддерживает. ХАВК СИ. Люди хотят ProRes/DNxHR, потому что это упрощает их жизнь.

Так что, если вам нужен файл all-intra наилучшего качества, вы, безусловно, можете его получить. Вы можете сделать это без потерь. Вы можете сделать «очень медленный» рендеринг FFMPEG. Но Premiere/Resolve не собирается добавлять возможность делать ночной прокси-рендеринг.

Вот очень хорошее обсуждение качества все-внутри H.265, H.264 и ProRes: https://www.eoshd.com/comments/topic/46562-prores-vs-h264-vs-h265- и-ipb-vs-all-i-насколько они хороши-на самом деле/

Причина, по которой H.265 ненамного лучше, чем H.264, заключается в том, что большая часть выигрыша в сжатии в новых кодеках связана с расширенным временным сжатием, а all-intra по определению не имеет временного сжатия.

Возможно, в будущем у нас будет больше стандартных форматов all-intra, но, вероятно, это будет что-то пост-HEVC. Возможно, есть преимущество в том, чтобы хранить архивные кадры в универсальном формате, с которым легко работать. Формат all-intra имеет меньше причуд и может быть лучше для загрузки на YouTube в некоторых случаях, в зависимости от того, как он ладит с тем, как они его транскодируют. Но это крайние случаи. Версия all-intra по определению имеет более низкое качество для данного битрейта.

Настоящий кошмар — именно это и заставило вас задать вопрос — это работа с метаданными HDR. Это все куча вуду, в которой вы можете разобраться с помощью ffprobe, mkvmerge и mkvpropedit.

Вам нужно выяснить, в чем на самом деле заключается ваша проблема: какие метаданные находятся в файле? Это теги в видеопотоке или теги в отдельном стороннем потоке данных? Вы должны иметь возможность получить FFMPEG, чтобы сохранить это. Но то, что работает в одном формате контейнера, может совершенно не работать в другом формате контейнера.

Похоже, что Premiere не нравится ваш исходный файл и он портит синхронизацию, а FFMPEG не любит ваш исходный файл и портит метаданные. Откуда именно этот источник?