У меня есть несколько прямых трансляций (закодированных с постоянным битрейтом), и я пытался уменьшить размер файла для длительного хранения. Я подумал, что, поскольку скорость кодирования больше не является для меня ограничением, я мог бы позволить кодировщику занять больше времени и сделать файл меньшего размера.
Исходный материал был закодирован со скоростью 12 Мбит/с, но когда я попытался перекодировать его с помощью FFmpeg (libx264, CRF 18 и настройка veryslow), результат был 17 Мбит/с.
Мой вопрос в том, как с помощью этих настроек сделать файл настолько большим, чем оригинал? Насколько я понимаю, смысл предустановки veryslow в том, чтобы занять много времени и сделать возможным максимально сжатое видео H.264 (игнорируя предустановку плацебо), но в этом случае мне лучше ничего не делать! Я бы понял, что он немного больше, потому что он должен кодировать некоторые артефакты сжатия, но не увеличение на 40%.
Вы используете коэффициент сжатия с переменным битрейтом на основе качества для чего-то, что уже имеет артефакты. Это означает, что он попытается сохранить видео точно таким, какое оно есть, включая артефакты, а артефакты, как правило, плохо кодируются. Это означает, что у вас есть видеовход, который, вероятно, сложнее кодировать, чем исходный, и вы выбрали сжатие на основе качества, которое также, вероятно, имеет более высокое качество, чем ваши исходные 12 Мбит/с. Это означает, что в целом необходимо использовать более высокую скорость передачи данных, чтобы попытаться избежать дополнительных потерь при кодировании второго поколения, даже с дополнительными оптимизациями, с которыми может справиться более медленный цикл сжатия, вы не сможете преодолеть дополнительную сложность первого кодирования. и используемая настройка качества.
Если это был любой вид HD-потока, это не так уж удивительно, поскольку 12 Мбит/с — это очень сильно сжатый уровень сжатия для конечного потребителя для любых HD-форматов. Неудивительно, что он плохо перекодируется.
пользователь 24601
Пунктуальныйсмайлик
пользователь 24601