LINUX.ORG.RU

История изменений

Исправление Psych218, (текущая версия) :

с минимальными патерями качества

Не получится.

Файлы у тебя скорее всего не исходники, поэтому ты их пережимаешь второй раз, добавляя ещё больше потерь. Они уже сжаты с потерями. Сделать нормально можно только добыв исходники и сжав с нужными параметрами с них (а не с того, что у тебя есть).

Если очень хочется, а требования по качеству всё же не столь жёсткие, то всё просто:

ffmpeg -i originalfile.mp4 -c:a copy -c:v h264 -crf 21 -preset slower newfile.mp4

Играйся с параметром -crf (то есть, ставь вместо 21 более высокие и более низкие цифры), пока не получишь результат, которые тебя устроит. Чем ниже число, тем выше качество и большего размера файл выйдет. Чем выше число, тем соответственно наоборот меньше получится файл, но и качество хуже. То есть, если качество устраивает — увеличивай цифру ещё на единичку и проверяй. До тех пор, пока не наткнёшься на картинку, которая уже не будет удовлетворять. Ну и вернись к последней удовлетворяющей. Используй всегда это значение для «вот такого» (то есть, устраивающего лично тебя) качества. На мой взгляд, оптимальными являются значения от 20 до 23. В зависимости от целей, я использую, как правило, в этих пределах. Но у тебя могут быть совершенно другие требования, и вполне может быть тебя устроит 28, например. Ещё выше начинается уже совсем (опять же, на мой взгляд) всё плохо.

Двухпроходное кодирование бессмысленно, если тебе не нужно задать точный битрейт. Оно существует лишь для этого. Если тебе нужен «минимально возможный при таком-то визуальном качестве картинки», crf — то, что тебе нужно. Вопреки распространённому заблуждению, двухпроходное кодирование не улучшает соотношение объём/качество по сравнению с crf. Они идентичны. Заблуждение идёт от того, что есть ещё однопроходное кодирование с заданным битрейтом (а не crf), вот его использовать не надо.

То есть, при двухпроходном кодировании ты, грубо говоря, говоришь «хочу максимально возможное качество при вот таком точно битрейте». Соответственно, файл получится предсказуемого размера, но такого качества, которое в него влезет, не выше. При CRF же ты говоришь «хочу вот такое качество при минимально возможном битрейте». Получаешь файл несколько менее предсказуемого размера, но зато того качества, которого хотел. Два файла одинакового объёма, полученные с использованием того и другого способа, будут одинаковы по качеству.

Вместо пресета slower можно использовать, конечно, placebo. Но это очень сильно увеличит время кодирования и очень слабо повлияет на объём файла.

Прошу заметить, что при использовании crf пресет не влияет на качество картинки абсолютно никак. Он влияет лишь на объём файла при том же качестве ценой большего времени на кодирование.

И да, принципиально ли, чтобы в результате было именно mp4? А то есть кодек x265 (HEVC), который при примерно том же качестве картинки даёт объём файла меньше где-то на 40%. Но если нужна поддержка в браузере прямо сейчас или же поддержка железными плеерами (особенно старыми), то конечно он не годится.

P.S. Ах да. Пока играешься с crf в поисках устраивающего значения, используй preset fastest. На картинку-то он не влияет. А когда найдёшь нужное значение, жми уже «чистовик» со slower (ну или даже placebo, если хочется).

Исправление Psych218, :

с минимальными патерями качества

Не получится.

Файлы у тебя скорее всего не исходники, поэтому ты их пережимаешь второй раз, добавляя ещё больше потерь. Они уже сжаты с потерями. Сделать нормально можно только добыв исходники и сжав с нужными параметрами с них (а не с того, что у тебя есть).

Если очень хочется, а требования по качеству всё же не столь жёсткие, то всё просто:

ffmpeg -i originalfile.mp4 -c:a copy -c:v h264 -crf 21 -preset slower newfile.mp4

Играйся с параметром -crf (то есть, ставь вместо 21 более высокие и более низкие цифры), пока не получишь результат, которые тебя устроит. Чем ниже число, тем выше качество и большего размера файл выйдет. Чем выше число, тем соответственно наоборот меньше получится файл, но и качество хуже. То есть, если качество устраивает — увеличивай цифру ещё на единичку и проверяй. До тех пор, пока не наткнёшься на картинку, которая уже не будет удовлетворять. Ну и вернись к последней удовлетворяющей. Используй всегда это значение для «вот такого» (то есть, устраивающего лично тебя) качества. На мой взгляд, оптимальными являются значения от 20 до 23. В зависимости от целей, я использую, как правило, в этих пределах. Но у тебя могут быть совершенно другие требования, и вполне может быть тебя устроит 28, например. Ещё выше начинается уже совсем (опять же, на мой взгляд) всё плохо.

Двухпроходное кодирование бессмысленно, если тебе не нужно задать точный битрейт. Оно существует лишь для этого. Если тебе нужен «минимально возможный при таком-то визуальном качестве картинки», crf — то, что тебе нужно. Вопреки распространённому заблуждению, двухпроходное кодирование не улучшает соотношение объём/качество по сравнению с crf. Они идентичны. Заблуждение идёт от того, что есть ещё однопроходное кодирование с заданным битрейтом (а не crf), вот его использовать не надо.

Вместо пресета slower можно использовать, конечно, placebo. Но это очень сильно увеличит время кодирования и очень слабо повлияет на объём файла.

Прошу заметить, что при использовании crf пресет не влияет на качество картинки абсолютно никак. Он влияет лишь на объём файла при том же качестве ценой большего времени на кодирование.

И да, принципиально ли, чтобы в результате было именно mp4? А то есть кодек x265 (HEVC), который при примерно том же качестве картинки даёт объём файла меньше где-то на 40%. Но если нужна поддержка в браузере прямо сейчас или же поддержка железными плеерами (особенно старыми), то конечно он не годится.

P.S. Ах да. Пока играешься с crf в поисках устраивающего значения, используй preset fastest. На картинку-то он не влияет. А когда найдёшь нужное значение, жми уже «чистовик» со slower (ну или даже placebo, если хочется).

Исправление Psych218, :

с минимальными патерями качества

Не получится.

Файлы у тебя скорее всего не исходники, поэтому ты их пережимаешь второй раз, добавляя ещё больше потерь. Они уже сжаты с потерями. Сделать нормально можно только добыв исходники и сжав с нужными параметрами с них (а не с того, что у тебя есть).

Если очень хочется, а требования по качеству всё же не столь жёсткие, то всё просто:

ffmpeg -i originalfile.mp4 -c:a copy -c:v h264 -crf 21 -preset slower newfile.mp4

Играйся с параметром -crf (то есть, ставь вместо 21 более высокие и более низкие цифры), пока не получишь результат, которые тебя устроит. Чем ниже число, тем выше качество и большего размера файл выйдет. Чем выше число, тем соответственно наоборот меньше получится файл, но и качество хуже. То есть, если качество устраивает — увеличивай цифру ещё на единичку и проверяй. До тех пор, пока не наткнёшься на картинку, которая уже не будет удовлетворять. Ну и вернись к последней удовлетворяющей. Используй всегда это значение для «вот такого» (то есть, устраивающего лично тебя) качества. На мой взгляд, оптимальными являются значения от 20 до 23. В зависимости от целей, я использую, как правило, в этих пределах. Но у тебя могут быть совершенно другие требования, и вполне может быть тебя устроит 28, например. Ещё выше начинается уже совсем (опять же, на мой взгляд) всё плохо.

Двухпроходное кодирование бессмысленно, если тебе не нужно задать точный битрейт. Оно существует лишь для этого. Если тебе нужен «минимально возможный при таком-то визуальном качестве картинки», crf — то, что тебе нужно. Вопреки распространённому заблуждению, двухпроходное кодирование не улучшает соотношение объём/качество по сравнению с crf. Они идентичны. Заблуждение идёт от того, что есть ещё однопроходное кодирование с заданным битрейтом (а не crf), вот его использовать не надо.

Вместо пресета slower можно использовать, конечно, placebo. Но это очень сильно увеличит время кодирования и очень слабо повлияет на объём файла.

Прошу заметить, что при использовании crf пресет не влияет на качество картинки абсолютно никак. Он влияет лишь на объём файла при том же качестве ценой большего времени на кодирование.

И да, принципиально ли, чтобы в результате было именно mp4? А то есть кодек x265, который при примерно том же качестве картинки даёт объём файла меньше где-то на 40%.

P.S. Ах да. Пока играешься с crf в поисках устраивающего значения, используй preset fastest. На картинку-то он не влияет. А когда найдёшь нужное значение, жми уже «чистовик» со slower (ну или даже placebo, если хочется).

Исходная версия Psych218, :

с минимальными патерями качества

Не получится.

Файлы у тебя скорее всего не исходники, поэтому ты их пережимаешь второй раз, добавляя ещё больше потерь. Они уже сжаты с потерями. Сделать нормально можно только добыв исходники и сжав с нужными параметрами с них (а не с того, что у тебя есть).

Если очень хочется, а требования по качеству всё же не столь жёсткие, то всё просто:

ffmpeg -i originalfile.mp4 -c:a copy -c:v h264 -crf 21 -preset slower newfile.mp4

Играйся с параметром -crf (то есть, ставь вместо 21 более высокие и более низкие цифры), пока не получишь результат, которые тебя устроит. Чем ниже число, тем выше качество и большего размера файл выйдет. Чем выше число, тем соответственно наоборот меньше получится файл, но и качество хуже. То есть, если качество устраивает — увеличивай цифру ещё на единичку и проверяй. До тех пор, пока не наткнёшься на картинку, которая уже не будет удовлетворять. Ну и вернись к последней удовлетворяющей. Используй всегда это значение для «вот такого» (то есть, устраивающего лично тебя) качества. На мой взгляд, оптимальными являются значения от 20 до 23. В зависимости от целей, я использую, как правило, в этих пределах. Но у тебя могут быть совершенно другие требования, и вполне может быть тебя устроит 28, например. Ещё выше начинается уже совсем (опять же, на мой взгляд) всё плохо.

Двухпроходное кодирование бессмысленно, если тебе не нужно задать точный битрейт. Оно существует лишь для этого. Если тебе нужен «минимально возможный при таком-то визуальном качестве картинки», crf — то, что тебе нужно. Вопреки распространённому заблуждению, двухпроходное кодирование не улучшает соотношение объём/качество по сравнению с crf. Они идентичны. Заблуждение идёт от того, что есть ещё однопроходное кодирование с заданным битрейтом (а не crf), вот его использовать не надо.

Вместо пресета slower можно использовать, конечно, placebo. Но это очень сильно увеличит время кодирования и очень слабо повлияет на объём файла.

Прошу заметить, что при использовании crf пресет не влияет на качество картинки абсолютно никак. Он влияет лишь на объём файла при том же качестве ценой большего времени на кодирование.

И да, принципиально ли, чтобы в результате было именно mp4? А то есть кодек x265, который при примерно том же качестве картинки даёт объём файла меньше где-то на 40%.