Посоветуйте как сжать видео без потери качества и оригинального разрешения
Я предполагаю, что файлы сделаны большого размера умышленно, так сказать чтобы придать весу.
Какой ffmpeg командой посоветуете сжать видео без потери качества и не уменьшая оригинальное разрешение?
Я предполагаю, что файлы сделаны большого размера умышленно, так сказать чтобы придать весу.
Битрейт маленький, оно и так сильно пожато.
Да тут уже жать особо некуда. Можешь попробовать сделать переменный поток со средним значением в районе 3000 и два прохода, чтобы совсем вырвиглазно не было.
Можно еще звук пережать до 128 или даже 96 kbps с даунсемплингом до 44,1kHz, если там качество звука роли не играет. Но это крохи.
Ясно ребята, всем спасибо, придется смириться.
Судя по параметрам кодирования, железка была слабая и картинка не слишком качественная (даже совсем плоха). На такие параметры битрейт нужен раза в 3 выше. Чтобы можно было уменьшить битрейт без значительных потерь качества, тебе придётся найти оригинал или вероятно снимать заново на нормальную камеру.
Сделай рип 720х400, битрейт 500 килобит. Можно поюзать модный h265, звук в AAC+ HE v2 в 32 килобита моно.
А тебе нужно там 1080p? Может в 720p пережать?
Можешь поиграть с параметрами и посмотреть будет ли качетсво удовлетворительным.
не программирование, не связано с IT и электроникой вообще
Он до тепловой смерти вселенной перекодировать в h265 будет. Звук лучше не трогать.
Ну чтобы качество оставалось тем же, то нужно использовать -qscale:v 0
Можно на Youtube залить, в скрытые видео, чтоб вероятность бан словить была поменьше. Через пару недель будет пожато в VP9.
Ан нет, они и скрытые видео проверяют, оказывается.
libx264 или h264.
картинка не слишком качественная (даже совсем плоха).
качество видео лучше себе сложно представить для FullHD, разве что такое же + 60 fps, так что вот так.
x264 -pix_fmt yuv444p -qp 0 лосслесс тащемт.
Транскодировать видео с неизвестными параметрами кодека, транскодировать звук из нормального формата дерьмовым кодеком. Какие ещё будут советы?
Эх, не видел ты качественного видео. Хотя если там совершенно никакой динамики, может и не столь заметно (пока артефакты не полезут).
Ну если на видео размер не достаточно уменьшить будет, и захочется пойти дальше, то придётся со звуком что-то делать. Я написал же, что звук так максимум 320kbps, да и проверил, видео с mp3 меньше занимает чем видео с aac, и из примера, который он привёл
Ты забываешь, что mp3 для сравнимого по качеству звучания нужен больший битрейт. И что он гораздо хуже проявляет себя на низких битрейтах. И вообще во всём гораздо хуже. Кроме того, AAC в MP3 транскодировать ну просто очень плохая идея. А ещё не все контейнеры поддерживают mp3 для звука и на то есть причины, он же был предшественником aac по принципу работы, о чём может быть разговор?
Ладно бы там AC3 vs AAC обсуждать. Но тут опять же достаточно однозначно: AC3 имеет смысл на высоких битрейтах и множестве каналов, AAC во всех остальных случаях.
Никак. Есть lossless-кодеки, но размер у тебя получится ещё больше. Причём очень намного. А при lossy2lossy кодировании потери качества будут всегда. Они могут быть незаметны глазу, это другой вопрос. Если устраивает с потерями, то:
С параметром crf играйся. Чем он больше, тем выше получится качество и больше размер. Чем он меньше, тем меньше размер, но ниже качество. Где будет казаться, что «без потери», с тем и жми. Для проверки жми кусочек ( -t 2:00 например). 21 — довольно разумное значение.
upd: НО! У тебя FullHD с битрейтом 4 500. Куда тебе ещё меньше? Ещё сильнее жать некуда.
ffmpeg -i movie.mp4 -qscale:v 0 -c:v h264 -qscale:a 0 -c:a mp3 out.mkv
файл размером 1.12 GB продолжительностью 00:34:11 уменьшил до 791.9 MB за 00:34:15.
Разницы по качеству картинки не вижу, но смущает 1:1 время видео и время затраченное на конвертирование, я так пару суток буду получается на всех ядрах его сжимать.
Я чего-то думал, что будет быстрее.
ffmpeg -i video.mp4 -c:v copy -c:a copy output.mp4
сделало мой файл на пару сотен килобайт больше.
Это была шутка юмора, ты же просил без потери качества. Вон пару постами выше
только кодировать действительно долго будет, стоит ли оно того?
-codec:v nvenc_h264 -b:v 800k -preset:v hq
Такой уж процесс перевод кодека в кодек для меньшего размера без потери качества.
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 -c:a copy output.mp4
файл размером 1.12 GB продолжительностью 00:34:11 уменьшил до 826.5 MB за 00:34:15.
(интересно, что другим выше способом за то же время секунда в секунду уменьшил до 791.9 MB)
С параметром crf играйся. Чем он больше, тем выше получится качество и больше размер. Чем он меньше, тем меньше размер, но ниже качество.
Всё верно, только наоборот.
Да, наоборот. Спасибо за уточнение. Думал одно, написал другое.
ffmpeg -i original.mkv -c:a copy -c:v libx264 -preset slow -crf 21 result.mkv
дало самый плохой результат, 1.12 GB сжало до 1.1 GB, вон там выше есть результаты до
ну так там crf 23. Качество ниже. Тебе только размер важен? На тогда тебе:
читай не только код, но и то, что к нему написано. Увеличивать и уменьшать надо параметр -crf
двупроходное кодирование с таргетированием на размер конечного файла
veryslow даёт меньший размер файла с лучшим качеством. Что-то мне кажется отыквится. Если нет, битрейт можно сделать ещё меньше.