Есть ли способ указать параметр качества для h.264, который не зависит от программного обеспечения?
Я пытаюсь помочь коллеге создать спецификацию для внешних подрядчиков, когда они доставляют нам видео для использования на нашем веб-сайте в виде файлов mp4 со сжатием h.264. Мы можем указать битрейт, но это не так хорошо работает, если нам нужно сжатие с переменным битрейтом и постоянным качеством (CRF).
Если бы я знал, что они будут использовать libx264 для сжатия, я мог бы дать им диапазон для -crf
настройки, но они будут использовать все виды программного обеспечения для сжатия. Итак, как мне указать качество, кроме как сказать что-то расплывчатое, например, «визуально без потерь» или «хорошее качество»?
Любой приличный кодировщик может достичь целевого битрейта (с 2-проходным), но при этом разумно расходовать биты для достижения одинакового качества во всем файле. x264 2pass выясняет, какой CRF даст нужный битрейт (pass1), а затем использует его (pass2). (источник: Dark Shikari. ср. ссылки, которые я откопал для своего ответа на этот вопрос о потоковой передаче VBR ).
Вы получаете CBR только с x264, если vbv-maxrate
= bitrate
, и даже тогда это может быть VBR в пределах размера буфера. (h.264 никогда не будет строго CBR, как mp3 или что-то в этом роде, если только ваши I-кадры не будут выглядеть УЖАСНО: P)
Однако вы, вероятно, имели в виду переменный для клипов, а не обычное значение для одного файла, потому что CFR в качестве цели качества явно намного лучше, чем слепая установка целевого битрейта для множества разных источников.
(Есть ли слово для этого? гибкий битрейт? Кроме целевого качества, в отличие от целевого битрейта. CRF нацелен на эвристику качества, а не строго на цель качества.)
В любом случае, в таком случае я понятия не имею, что поддерживают другие кодировщики. H.264 без потерь, вероятно, лучший формат для отправки файлов. Он значительно меньше, чем huffyuv или utvideo, и может поддерживать до 10 бит. (на самом деле, я думаю, что FFmpeg может декодировать более высокую битовую глубину, но x264 может создавать файлы только до 10 бит.) Или, я думаю, вы могли бы заставить их отправлять вам файлы pro-res с небольшими потерями, если это намного проще для ваших рабочих процессов.
LordNeckBeard поднимает вопрос о том, доставляете ли вы эти файлы напрямую клиентам. Если это так, вам, вероятно, следует потребовать, чтобы они кодировали с помощью x264, по крайней мере, с предустановкой = медленнее, поэтому вы можете просто дать им значение crf, если вам уже требуется x264. Компромисс между скоростью и искажением имеет значение для конечных файлов, которые вы собираетесь транслировать много раз.
-vf codecview
.codecview
предназначен для визуализации векторов движения и showinfo
не печатает среднее значение QP для каждого кадра. Я просмотрел весь список видеофильтров ffmpeg, и ни один из них не печатает значения QP :/
Джим Мак
Логан
удар
удар
Логан
ffmpeg -f lavfi -i testsrc=s=hd720:d=5,format=yuv420p -c:v libx264 -level 3 output.mp4
)Логан
x264
выбирать.Питер Кордес
Питер Кордес