Linux ffmpeg сжать mp4

Обновлено: 04.07.2024

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

К счастью, для использования изображения в качестве доказательства идеальное качество и высокое разрешение часто не нужны, достаточно иметь возможность прочесть необходимый текст или рассмотреть внешность и действия человека. Поэтому размер файла можно сократить, уменьшив размер картинки, усилив сжатие изображения, а в видео — ещё и уменьшив количество кадров в секунду.

Для компрессии можно использовать различное программное обеспечение:

  • Профессиональные пакеты для работы с графикой и видео, например, Adobe Photoshop, Adobe Premier, Vegas (бывший Sony Vegas). Для быстрого сжатия пары десятков фотографий и видеороликов малопригодны, т.к. имеют большой размер, высокие системные требования, сложны в использовании и ОЧЕНЬ дороги.
  • Бесплатное ПО, например, IrfanView, FastStone или VirtualDub. Как правило, менее требовательны к ресурсам и просты в использовании, но имеют свои недостатки в виде неоднозначных (особенно для коммерческого использования) лицензий, отсутствия некоторых необходимых функций, закрытого проприетарного кода и т.п.
  • Бесплатное и свободное ПО, имеющее богатый функционал, открытый, модифицируемый и верифицируемый код и гибкий и мощный программный интерфейс. Звучит как сказка, но существует в реальности в виде двух пакетов — FFMpeg для обработки видео и ImageMagick для работы с изображениями.

Рассмотрим эти инструменты подробнее и начнём с пакета обработки видео

Скачиваем FFMpeg для Windows (будем работать с этой ОС) (в зависимости от версии используемой вами операционной системы, 32- или 64-битной). В открывшейся в браузере папке найдите последний по времени ZIP-архив и скачайте его на свой компьютер.

Для дальнейшей работы нам потребуется файл ffmpeg.exe, который находится в скачанном архиве в папке BIN.

1. Создайте пустую папку, в которой в дальнейшем будете производить обработку видеофайлов. Для удобства назовём эту папку WORK.
2. В папке WORK создайте две папки IN и OUT.
3. Распакуйте файл ffmpeg.exe из папки BIN скачанного архива в папку WORK.
4. Скопируйте в папку WORK\IN видеофайл, который вы хотите сжать. Для удобства условимся, что этот видеофайл называется video.avi.
5.В папке WORK создайте текстовый файл convert.bat. В текстовом редакторе запишите в него команду:

ffmpeg.exe -y -i in\video.avi -vcodec mpeg4 -q:v 10 -r:v 10 out\video.avi

Сохраните и закройте файл convert.bat, затем запустите его. На экране появится окно, демонстрирующее ход работы программы ffmpeg.exe, производящей обработку видеофайла:

В зависимости от производительности вашего компьютера скорость кодирования может составить 10% — 50% от продолжительности видеозаписи.

После завершения работы конвертора окно исчезнет, а в папке OUT будет находиться сконвертированный файл video.avi. В зависимости от размеров, качества и параметров сжатия исходного файла, размер сконвертированного файла может быть от 2 до 10 раз меньше исходного. А может и не быть, или быть даже немного больше, если исходный файл уже был сильно и качественно сжат — но такие случаи встречаются не очень часто.

Рассмотрим подробнее параметры команды, которую мы записали в файле convert.bat.

ffmpeg.exe — Собственно, имя самого запускаемого конвертора

-y — Ключ, который разрешает FFMpeg перезаписать сжатый файл в папке OUT, если он там уже есть с таким же именем

-i — Ключ, который говорит, что следующий элемент команды будет именем исходного файла

in\video.avi — Имя исходного файла. В данном случае говорит о том, что файл video.avi находится в папке IN в той же папке, что и исполняемый файл ffmpeg.exe. При необходимости можно записать полный путь к файлу, например c:\work\in\video.avi. Помните, что если в имени файла или папки есть пробелы, то всю строчку с путём и именем исходного файла нужно заключить в кавычки, например: «c:\Мои документы\in\Мой видеофайл.avi»

-vcodec — Ключ, который говорит, что следующий элемент команды будет названием кодека, т.е. условного имени программной библиотеки, реализующей определённый стандарт сжатия видеопотока

mpeg4 — Название кодека, которое следует за ключом –vcodec. В данном случае используется кодек, реализующий стандарт сжатия видео MPEG-4 Part 2. Для эффективной компрессии видео, как правило, применяются несколько кодеков, реализующих различные стандарты обработки: mpeg4, h263, h264 и wmv3. Не будем подробно описывать каждый из них, достаточно сказать, что для нашей задачи кодек mpeg4 представляет собой наиболее оптимальный вариант с точки зрения соотношения скорости работы, степени сжатия и конечного качества изображения (но вы можете попробовать изменить это значение и посмотреть, что у вас получится)

-q:v — Ключ, который говорит о том, что следующий элемент команды будет значением уровня качества изображения

10 — Уровень качества изображения сжатого видеофайла, которое следует за ключом -q:v. 1 — максимально возможное для исходного видеофайла качество, далее чем число больше, тем качество хуже (но при этом размер конечного видеофайла — меньше). При выборе качества нужно находить разумный компромисс между желанием получить изображение идеального качества, без «квадратиков» и т.п., и необходимостью как можно сильнее уменьшить исходный файл. Экспериментально установлено, что 10 – оптимальное для нашей задачи соотношение качества и размера (но вы также можете попробовать изменить это значение и посмотреть, что у вас получится)

-r:v — Ключ, который говорит, что следующий элемент команды будет числом кадров в секунду в сжатом видео

10 — Число кадров в секунду в сжатом видео. Видеозапись, полученная из системы видеонаблюдения или снятая мобильным телефоном, стандартно имеет 24-30 кадров в секунду. Для просмотра и идентификации событий, происходивших на проверяемом объекте, как правило, достаточно 5-10 кадров в секунду, что позволяет при конвертации сразу сжать видеофайл в 2-3 раза, с тем же качеством изображения

out\video.avi — И последний элемент команды — всегда имя сжатого файла. Для него действуют те же правила записи, что и для исходного

Ключей, опций и прочих возможностей у программы ffmpeg.exe огромное количество. Комбинируя их различными способами, можно реализовать практически любой возможный вариант обработки исходного видеофайла. Более подробную справку по ключам и примеры команд вы можете посмотреть в документации.

Меняя в файле convert.bat имя обрабатываемого файла, можно использовать его для сжатия разных файлов. Можно скопировать в папку IN несколько файлов и в файле convert.bat сделать несколько строк с именами этих файлов, чтобы они были сжаты одним запуском convert.bat. Но хорошо, если файлов 2-3, а если 20-30? Или 200-300? И все они имеют разные названия?

В Windows существует встроенный механизм (так называемый Windows Script Host, или WSH), который позволяет запускать написанные в виде простого текстового файла программные скрипты на языках JScript и VBScript. Эти языки довольно похожи по своим возможностям и используют одни и те же функции WSH, которые, в отличии от bat-файлов, позволяют пользоваться всем тем, что есть у настоящих языков программирования — переменными, циклами, условиями, работой со строками, файлами и т.д.

Для автоматизации процесса обработки всех исходных видеофайлов, которые находятся в папке IN, в папке WORK создайте текстовый файл convert.js. В текстовом редакторе вставьте в него следующий программный код:

Разбирать этот скрипт в рамках данной статьи мы не будем – основные комментарии по его работе есть в коде, а те, кто заинтересовался вопросом программирования на JScript, могут обратиться к ресурсам в интернете.

Итак, сохраните файл, закройте редактор. Запустите файл convert.js на исполнение. Если всё сделано правильно, то на экране будут друг за другом последовательно появляться и исчезать окна с процессами преобразования программой ffmpeg.exe исходных файлов из папки IN. Когда последнее окно исчезнет, то в папке OUT будут лежать все преобразованные файлы.

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

Как я могу использовать, ffmpeg чтобы уменьшить размер видео за счет снижения качества (естественно, в минимально возможной степени, но мне нужно, чтобы оно работало на мобильном устройстве, на котором мало свободного места)?

Я забыл написать еще одну вещь. Когда видео может использовать субтитры (* .srt или * .sub), я бы тоже хотел конвертировать их, чтобы соответствовать параметрам преобразованного видеофайла.

Я не использовал его, но на ffmpeg странице man показана -fs опция ограничения размера вывода, что-то вроде ffmpeg -i in.avi -fs 100M out.avi работы? Я не буду перенаправлять вас на страницу man ffmpeg | wc -l --> 5254 @Kevin Это хочет больше параметров для преобразования.

Смотрите этот ответ. Приведено ниже для удобства:

Рассчитайте необходимый вам битрейт, разделив 1 ГБ на длину видео в секундах. Итак, для видео длиной 16:40 (1000 секунд) используйте битрейт 1000000 байт / с:

Дополнительные опции, которые стоит рассмотреть, - это установить коэффициент постоянной скорости, который снижает среднюю скорость передачи данных, но сохраняет лучшее качество. Изменяйте CRF между 18 и 24 - чем ниже, тем выше битрейт.

При необходимости измените кодек - libx264 может быть доступен, если нет libx265, за счет немного большего результирующего размера файла.

Видео размером 338 МБ было уменьшено на 130 МБ. Качество быстро снижается. Есть ли какое-то объяснение этому процессу? Первоначальный автор не объясняет свою рекомендацию. Вторая команда, используя, -crf 24 взяла 255,3 МБ видео, которое у меня было, и уменьшила его до 72,7 МБ без заметного снижения качества. Имейте upvote!

2G до 14 МБ, все еще выглядит хорошо, это был первый результат поиска, и это именно то, что я искал, спасибо!

Может быть, стоит отметить, что теперь вы можете использовать libx265 для еще большего уменьшения размера. Используется ffmpeg -i input.avi -vcodec libx264 -crf 24 output.avi . Это уменьшило 100 МБ видео до 9 МБ. Очень небольшое изменение качества видео. Спасибо!

Короче говоря, CRF из 23 позволит получить фильм с качеством DVD (

700 МБ-1 ГБ), а более низкие значения CRF будут более качественными (большие файлы).

Пожалуйста, приведите примеры полной команды вместо ссылки на внешний сайт (который может когда-нибудь сломаться :) @Vicky Chijwani предоставляет код в приведенном выше примере. Это лучше подходит для комментариев, но это было мое первое действие на этом сайте. Ссылка содержит более подробное описание опции crf, но не обязательна, чтобы заставить код работать.

Вы упомянули о желании уменьшить размер файла, чтобы разместить больше видео на мобильном устройстве, что также является моим вариантом использования. Все ответы здесь для снижения качества сжатия, но никто не упомянул уменьшение размера видеокадра. Это намного быстрее, примерно в 3-5 раз быстрее, чем повторное сжатие в моем опыте. См. Ffmpeg документы по масштабированию для получения дополнительной информации.

(BR) Изменить битрейт, используя:

(CR) Измените коэффициент постоянной скорости, используя:

(SZ) Измените размер экрана видео (например, на половину его размера в пикселях), используя:

(BL) Измените профиль H.264 на «базовый уровень», используя:

(DF) Использовать обработку ffmpeg по умолчанию, используя:

ДАННЫЕ

  • «размер» - процентный размер пикселя преобразованного видео по отношению к оригиналу.
  • «битрейт» - битрейт оригинальных и конвертированных видео.
  • «определение» - размер видео в пикселях.
  • «конвертировать» - время конвертации видео в секундах.

Я рассчитал целевой битрейт для (BL), используя предложенный метод.

=== Файл A - Как узел помогает продвигать Angular-Fnbixa7Ts6M.mkv ===

=== Файл B - Использование GraphQL с Angular _ By - Ли Костелло-OGyFxqt5INw.mkv ===

ВЫВОДЫ

(SZ) метод, безусловно, самый быстрый метод. Это было в 2-4 раза быстрее. Это может быть очень серьезной проблемой для видео высокой четкости, поскольку для преобразования всех остальных методов требовалось больше времени, чем для реальной длины видео! Например, метод (CR) занял 53 минуты для преобразования 21-минутного видео.

Метод (SZ), безусловно, является лучшим методом, если определение видео больше, чем определение экрана, на котором оно будет отображаться. Например, если ваш телефон может отображать только изображение в формате 1080p, отправка видео с разрешением 3840x2160 будет просто расточительной. Лучше всего вдвое уменьшить его до 1080p.

Правильный (или лучший) ответ

Всегда лучше сначала уменьшить разрешение до максимума, поддерживаемого вашим целевым дисплеем.

Если вы хотите уменьшить размер файла, это будет зависеть от вашего личного выбора. Вы можете уменьшить объем информации или увеличить степень сжатия.

Вы можете уменьшить разрешение больше, если это не то, что вас беспокоит.

Если видео не содержит быстрых сцен, вы можете снизить частоту кадров.

Если у вас мощный процессор, а пространство - это единственная проблема, вы можете увеличить степень сжатия.

Скорость передачи данных является комбинацией нескольких факторов. Поэтому простое указание ffmpeg понижения скорости передачи может не дать желаемых результатов.

Другим способом снижения содержания информации является снижение глубины цвета. Как это сделать, пока не обсуждалось.

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

В моем случае он уменьшил битрейт как видео, так и аудио (вы можете проверить и сравнить входной и выходной файл, запустив ffprobe их), превратив видео 700 Мб в видео 60 Мб, имеющее, казалось бы, похожее качество.

(от 10Mo до 1.2Mb, ffmpeg автоматически конвертировал мое видео, которое было в VP8 в VP9 ) Это увеличило размер моего видео с 10,8 МБ до 14 МБ

У меня есть рецепт, который я изначально подделал для себя, чтобы преобразовать видео в формате Motion JPEG, которые генерирует моя старая камера (это очень большие видео, поскольку каждый кадр представляет собой целое изображение JPEG), в h264. Вот адаптация для других видов видео (курсов и т. Д.).

Я не использую ffmpeg , но mplayer и mencoder . Во-первых, мы должны демультиплексировать аудио с помощью mplayer:

  • Параметры -vo null и -ao null указывает mplayer не извлекать видео.

На следующих шагах мы сделаем 3-проходное сжатие с помощью mencoder. На первом этапе мы выберем подходящее сжатие в режиме постоянного качества ( параметр crf ) в качестве начальной точки:

Вы можете добавить параметр slow_firstpass в -x264encopts, если вы не уверены в конечном качестве видео. В руководстве Mencoder говорится, что эта опция отключает некоторые параметры, которые «значительно улучшают скорость кодирования, практически не влияя на качество последнего прохода». Итак, используйте его только на последнем шаге.

Вы должны попробовать несколько значений для crf - попробуйте начиная с 25 и продолжайте увеличивать его, пока вы не заметите артефакты в получающемся видео (более высокие значения сжимают больше). Помните, что последующие этапы кодирования улучшат качество, которое вы выбрали для crf .

Альтернативы для пресета veryslow - медленный , медленный , средний и т. Д. Полный список см. В руководстве по mencoder.

RateTol контролирует изменение битрейта - я не уверен, правильно ли я здесь делаю, но я установил его на максимальное значение, чтобы предоставить mencoder полную свободу выбора правильного битрейта для каждой сцены.

После первого прохода вы заметите, что последняя строка дает вам средний битрейт, который вы будете использовать на следующих шагах:

Измените параметр crf , рекомендуемый при первом проходе, на битрейт , требуемый при последующих проходах:

Это второе проходное кодирование будет считывать статистику, сгенерированную на первом проходе ( divx2pass.log и divx2pass.log.mbtree ), чтобы оптимизировать сжатие.

Обратите внимание, что вы будете использовать тот же видеовход, а не сгенерированный при первом проходе - видео с первого прохода полезно только для проверки исходного качества.

Также обратите внимание, что pass=3 ( не pass=2 ) создаст новый файл статистики, поэтому вы можете повторить последний шаг столько раз, сколько захотите. Я обычно делаю pass=3 дважды, всегда обращая внимание на битрейт результата.

Сохранение видео на своих переносных накопителях, в облачных сервисах или на жестких дисках может оказаться непростым делом при ограниченном пространстве. Уменьшение размера файлов облегчает хранение больших файлов и растущих коллекций, но есть способы сделать это более эффективно.

В области обработки видео можно выбирать из множества инструментов, способных оптимизировать размеры файлов. Однако многие из них, включая VLC, Cinelerra и Blender, используют один и тот же механизм - утилиту командной строки под названием FFMPEG. Здесь мы покажем вам, как вы можете уменьшить размеры видеофайлов с помощью FFMPEG из терминала Linux.

FFMPEG, пожалуй, самая мощная утилита для обработки мультимедиа в командной строке в программной экосистеме Linux. Среди множества функций, этот инструмент может в том числе создавать GIF-файлы, нарезать/редактировать и записывать видео.

Что наиболее важно, FFMPEG может конвертировать видео на удивительно детальном уровне, позволяя поддерживать хорошее качество, в то время как размеры файлов положительно уменьшаются вдвое (или даже в четыре раза в крайних случаях).

Установить FFMPEG в Ubuntu достаточно просто, выполнив следующую команду:


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

Когда дело доходит до видеофайлов, не все их типы создаются одинаково. Например, файлы с расширением AVI, как правило, намного больше, чем файлы MP4.

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

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

Интересно, однако, что формат mp4 не самый лучший, чтобы достичь идеального крошечного размера файла. В настоящее время коронованными чемпионами по качеству сохраняемых типов видеофайлов являются различные контейнеры, доступные для флеш-видео и Windows медиа (FLV и WMV). Они составляют часть простого уравнения, которое мы можем использовать для получения очень маленьких, но высококачественных видеофайлов:

маленький контейнер + эффективный кодек + низкий fps + низкий битрейт = крошечный/высококачественный видеофайл

Примечание. Для целей данной статьи высокое качество означает минимальную видимую пикселизацию или потерю цвета. Снижение качества в некоторой степени неизбежно, если мы действительно хотим оптимизировать размер файла; однако насколько оно заметно, зависит от того, что мы оптимизируем. Скорость движения, разнообразие цветов и качество/плотность звука играют роль в определении того, насколько низкими могут быть наши настройки качества.

Опций в мире видеокодеков и контейнеров огромное количество, поэтому мы упростим задачу, просто используя WMV 8 (FFMPEG пока не полностью поддерживает WMV 9).

Когда мы запускаем FFMPEG, он преобразует наше входное видео в тип файла, который мы задаем, используя параметры, которые мы устанавливаем с помощью специальных флагов. Вот наш код:


Комментариев нет:

Подпишитесь на RSS


Перевод. Оригинал здесь. Если вы новичек в Linux и ранее использовали iTunes для управления своим iPod/iPhone/iPad, то скорее всего буд.

uTorrent - это легкий и эффективный торрент-клиент для Linux, Windows OS и Mac OS. Установка uTorrent в Linux отличается тем, что здесь uT.

Вы можете запускать скрипты на python в Linux непосредственно из терминала. Знать, как это делается, полезно как программистам, так и пол.

Как вы наверное знаете, Safari является браузером по умолчанию в Mac OS X и iPhone OS. Вышло уже несколько релизов и для Windows, но версии .

Способ сброса пароля root в CentOS 7 кардинально отличается от такового в Centos 6. 1. В загрузочном меню нажмите "е" - реда.

Внезапно ваш диск под завязку забит фотографиями и видео, а впереди новые поездки. Что делать, покупать новый, арендовать дисковое пространство на облаке, или может лучше сжать видео файлы через ffmpeg?




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

Библиотека ffmpeg и обработка видео

Библиотека с открытым исходным кодом ffmpeg скорее всего уже установлена на вашей операционной системе. Если же нет, установите его штатной программой управления пакетами, это не займет много времени.

Конвертировать один формат аудио и видео файлов в другой

Уменьшаем видео, записанное на фотоаппарате:

То же самое, но с контролем качества.

Размер видео уменьшился более чем в 5 раз без ощутимой потери качества. Опция -qscale:v n , сокращенно -q:v n позволяет установить уровень качества генерируемого видеопотока, где n принимает значения в интервале от 1 до 31. Значение 1 соответствует самому лучшему качеству, а 31 — самому худшему.

Указать кодек

Для того, чтобы выбрать нужный нам кодек используем ключи -c:a <codec> -c:v <codec> .

Увидеть все поддерживаемые кодеки можно командой ffmpeg -codecs .

Поменять контейнер файла

Возьмем теперь такой юзкейс случай. Встроенный плеер вашего телевизора поддерживает формат mkv, но не поддерживает m4v. Для того, чтобы поменять контейнер воспользуемся следующей командой.

Если же нужно поменять только звук, а видео оставить как есть, запускаем эту команду. Почему-то телевизоры Филипс понимают только форматы звука AAC/AC3.

Добавить звуковую дорожку

Просто перечисляем файлы ввода и задаем вывод.

Извлечь звуковую дорожку

Если нужно просто извлечь звук, то можно так.

Задаем формат извлекаемой звуковой дорожки.

Указывает приемлемый битрейт, по умолчанию будет записано 128k.

Делаем слайд-шоу из картинок

Тот самый случай, когда гладко было на бумаге. На практике приходится ходить по граблям, продираясь через разнобой форматов, кодеков, размеров и ориентации фотографий.

Требуются некоторые пояснения.

  • -r number — частота кадров в секунду.
  • -pix_fmt — Пиксельный формат, список из команды ffmpeg -pix_fmts . Не со всеми форматами получается выставить нужный размер кадра.
  • -pattern_type glob — Для того, чтобы использовать совпадение по шаблону как в командной оболочке. Альтернативой является использование формата C printf , например image%03d.jpg для всех image0001.jpg , image0002.jpg и т. д.

Изменить видеопоток

Допустим, вам нужен не весь видео файл, а лишь часть его. Данная команда вырежет 10 секунд видео, начиная с первой минуты.

Как повысить качество потоков аудио или видео? Для этого используется ключ битрейта -b .

Захват экрана

Для захвата экрана используется устройство x11grab , а ffmpeg должен быть собран с опцией --enable-x11grab .

  • -video_size word — Размер захвата, cif = 352x288, 4cif = 704x576. Подробнее в info ffmpeg-utils .

Бонусная дорожка

Для автоматической обработки фотографий удобно работать с программой ImageMagick. Поменять размер всех фотографий в папке.

Аккуратное повышение резкости изображения, наподобие Smart Sharpen с помощью Perl скрипта, использующего convert и composite из набора утилит ImageMagick.

Я предполагаю, что файлы сделаны большого размера умышленно, так сказать чтобы придать весу.

Какой 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.

Ан нет, они и скрытые видео проверяют, оказывается.

i-rinat ★★★★★ ( 24.10.16 15:54:01 )
Последнее исправление: i-rinat 24.10.16 15:56:31 (всего исправлений: 1)


libx264 или h264.

Переведёт без потери качества на другой кодек, если звук перевести на mp3, то размер станет меньше, но для mp3 максимум 320kbps можно выжать с опцией -qscale:a 0.

картинка не слишком качественная (даже совсем плоха).

качество видео лучше себе сложно представить для FullHD, разве что такое же + 60 fps, так что вот так.

x264 -pix_fmt yuv444p -qp 0 лосслесс тащемт.


Транскодировать видео с неизвестными параметрами кодека, транскодировать звук из нормального формата дерьмовым кодеком. Какие ещё будут советы?

Эх, не видел ты качественного видео. Хотя если там совершенно никакой динамики, может и не столь заметно (пока артефакты не полезут).


Ну если на видео размер не достаточно уменьшить будет, и захочется пойти дальше, то придётся со звуком что-то делать. Я написал же, что звук так максимум 320kbps, да и проверил, видео с mp3 меньше занимает чем видео с aac, и из примера, который он привёл

Бит рейт меньше, максимально поддерживаемого для mp3. Качество то же, а с mp3 размер меньше.

Ты забываешь, что mp3 для сравнимого по качеству звучания нужен больший битрейт. И что он гораздо хуже проявляет себя на низких битрейтах. И вообще во всём гораздо хуже. Кроме того, AAC в MP3 транскодировать ну просто очень плохая идея. А ещё не все контейнеры поддерживают mp3 для звука и на то есть причины, он же был предшественником aac по принципу работы, о чём может быть разговор?

Ладно бы там AC3 vs AAC обсуждать. Но тут опять же достаточно однозначно: AC3 имеет смысл на высоких битрейтах и множестве каналов, AAC во всех остальных случаях.


Никак. Есть lossless-кодеки, но размер у тебя получится ещё больше. Причём очень намного. А при lossy2lossy кодировании потери качества будут всегда. Они могут быть незаметны глазу, это другой вопрос. Если устраивает с потерями, то:

upd: НО! У тебя FullHD с битрейтом 4 500. Куда тебе ещё меньше? Ещё сильнее жать некуда.

Psych218 ★★★★★ ( 24.10.16 17:07:13 )
Последнее исправление: Psych218 24.10.16 17:08:29 (всего исправлений: 1)

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

Psych218 ★★★★★ ( 24.10.16 20:42:11 )
Последнее исправление: Psych218 24.10.16 20:42:29 (всего исправлений: 1)

veryslow даёт меньший размер файла с лучшим качеством. Что-то мне кажется отыквится. Если нет, битрейт можно сделать ещё меньше.


если звук перевести на mp3, то размер станет меньше

Из AAC? В MP3? Ты долбанулся?


vp9 сильнее размазывает и хуже на динамичных сценах, даже vp8 лучше - пруф (обрати внимание на траву и падающее бревно). h265 показывает самые лучшие результаты.


Сравнение видеокодеков видео от 2013 года на youtube.. Своего мета объелся?

devl547 ★★★★★ ( 27.11.16 20:14:22 )
Последнее исправление: devl547 27.11.16 20:15:21 (всего исправлений: 1)


Кстати да, vp9 тогда был эксперементальным. А вот сейчас. Не могу найти свежих сравнений. Не подкинешь ссылку?


А видеокарта есть? Какая именно? А то я такой же результат на интеловстройке имею, и это на целероне-то. мобильном.


Я имею в виду, что современные видики могут неплохо кодировать на себе.

Тащемто в процессорах тоже quick sync и прочие.

Radeon R7 Spectre.


Бл*, назувается сасай. И чего это красные нихрена не реализовали для кодировки? Даже на швабодке нет поддержки, пичаль.

А чо за проц? не интель? там может быть quic sync.


И чего это красные нихрена не реализовали для кодировки?

Читайте также: