Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как называется программа для сжатия файлов


Лучшие программы для сжатия данных и архивации

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

Содержание: [показать]

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

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

Каким бывает коэффициент сжатия и что это такое?

Сжатие данных может быть разным. Оно определяется специальным коэффициентом, то есть уровнем сжатия. В зависимости от программы, сжатие варьируется от 10% до 30%. Есть возможность создания многотомных архивов, а также установки архива на их распаковку. Отдельные виды ПО позволяют создавать самораспаковывающиеся файлы в формате .EXE. Что это значит? Вы запускаете файл с такой компрессией – и все файлы извлекаются в автоматическом режиме.

Отдельные виды документов и других файлов можно сжать ещё сильнее, и 30% – далеко не предел.

Однако вы должны понимать, что программа, осуществляющая такое сжатие, работает на максимуме. Она полностью загружает процессор, поэтому во время архивации компьютер немного подвисает. Разнообразные виды и уровни сжатия позволяют скачать архиватор и балансировать между размером архива, скоростью создания и некоторыми другими характеристиками.

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

ТОП-4 популярных платных архиваторов

  1. WinRAR. Пожалуй, самая известная программа для сжатия файлов, которую активно используют миллионы пользователей во всём мире. Отличается удобством использования и простотой. А знаменитая иконка в виде упакованных книжек у многих из нас ассоциируется с архивацией.
  2. WinZIP. Вы будете удивлены, но самой первой утилитой для компрессии файлов на операционной системе Windows была не WinRAR, а WinZip. Она также пользуется популярностью среди определённого круга пользователей. Поддерживает все распространённые расширения.
  3. ZipZag. Приложение с оригинальным названием, чем-то напоминающим слово «ЗигЗаг». Не менее удачный архиватор. Его характерной особенностью является поддержка большого количества форматов, среди которых встречается и rar с zip, и cab, и даже RPM.
  4. PowerZip. Мощнейший «комбайн» для работы. Легко распаковывает загруженные файлы. Умеет создавать собственные файлы в формате .zip, установка паролей тоже есть.

ТОП-10 популярных архиваторов бесплатно

  1. 7-ZIP рекомендуется скачать всем, кто регулярно работает как с .zip, так и с многими другими архивами. Доступно, бесплатно, просто – именно так можно охарактеризовать 7-ZIP.
  2. J7Z. Доступная и вместе с тем очень мощная утилита, которую можно установить на любую версию ОС
  3. IZArc. Поддерживает не только разнообразные форматы сжатия данных, но и монтирование образов диска.
  4. PeaZip. Бьёт все рекорды по количеству загрузок, поддерживает более 30 форматов.
  5. KGB Archiver. Полностью бесплатная утилита. Характеризуется поддержкой нескольких вариантов сжатия, достаточно удобным интерфейсом.
  6. TUGZip. Интуитивно понятный интерфейс, множество форматов являются визитной карточкой этого архиватора.
  7. WinUHA. Имеет GUI-интерфейс, работает даже с архивами UHARC.
  8. ZipItFree. Также входит в ТОП-12 архиваторов по количеству загрузок.
  9. RAS/MP2M – программный продукт с максимальной производительностью. Предназначен специально для работы с архивами.

ZipGenius. Приложение, которое используется для сжатия в ZIP. Характеризуется большим количеством возможностей.

Тестируем программы архивации. Какая сжимает лучше?

Чтобы провести тестирование, мы выбрали 5 популярных программ:

  • WinRAR
  • 7-Zip
  • WinZIP
  • Hamster Free Archiver
  • PowerArchiver

Все приложения переведены на русский и характеризуются поддержкой большого количества расширений. Но какая из них окажется лучше? Для тестирования были взяты три набора файлов:

  • Документы. Подборка из документов XLS и DOC. Размер – 3,8 Мб, количество файлов – 35 штук.
  • Фотографии. 14 фотоснимков, сделанных на хороший смартфон. Размер пакета – 78 Мбайт. Хитрость в том, что формат jpeg уже предполагает сжатие данных. Поэтому сжать его ещё больше весьма проблематично. Так что если архиватор сможет сжать их ещё больше, это будет огромным преимуществом.
  • Программы. Мы взяли пакет «старенького» офисного пакета Microsoft Office 2003 и решили проверить, насколько хорошо программы смогут его заархивировать. Общее количество файлов и папок – 2055 и 125 соответственно, размер – 875 Мб.

Результаты тестирования

При сжатии офисных документов лучше всего зарекомендовала себя программа 7-ZIP (алгоритм LZMA2). На втором и третьем месте оказались архиваторы WinRAR и Hamster FZA.

Хорошо сжать фотоснимки удалось разве что приложением WinZIP, однако результат оказался впечатляющим. Экономится более 20% места.

Напоминаем, что видеофайл мы не использовали, только фотоснимки.

При компрессии файлов из папки «Офис» специальной утилитой лучший результат показало приложение WinRAR. Оно оказалось ещё и самым быстрым.

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

Как работает сжатие файлов | HowStuffWorks

В нашем предыдущем примере мы выбрали все повторяющиеся слова и поместили их в словарь. Для нас это наиболее очевидный способ составления словаря. Но программа сжатия видит это совершенно иначе: в ней нет концепции отдельных слов - она ​​только ищет шаблоны. А чтобы максимально уменьшить размер файла, он тщательно выбирает, какие шаблоны включить в словарь.

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

Объявление

Если программа сжатия просканирует фразу Кеннеди, первая повторяемость, с которой она столкнется, будет состоять всего из пары букв. В словах «не спрашивайте, что у вас» есть повторяющийся узор из буквы «т», за которой следует пробел - в «не» и «что». Если программа сжатия записала это в словарь, она могла бы записывать «1» каждый раз, когда за буквой «t» следовало пробел. Но в этой короткой фразе этого шаблона недостаточно, чтобы его можно было использовать, поэтому программа в конечном итоге его перезапишет.

Следующее, что программа может заметить, - это «ou», которое встречается как в «your», так и в «country». Если бы это был более длинный документ, запись этого шаблона в словарь могла бы сэкономить много места - «ou» - довольно распространенная комбинация в английском языке. Но по мере того, как программа сжатия прорабатывала это предложение, она быстро нашла лучший выбор для словарной статьи: не только повторяется «ou», но и повторяются целые слова «your» и «country», и они фактически повторяются. вместе, как фраза «ваша страна.«В этом случае программа заменит словарную статью для« ou »записью« ваша страна ».

Фраза «может сделать для» также повторяется, один раз за ней следует «ваш» и один раз за ней следует «вы», что дает нам повторяющийся образец «могу сделать для вас». Это позволяет нам записывать 15 символов (включая пробелы) с одним числовым значением, в то время как «ваша страна» позволяет нам записывать только 13 символов (с пробелами) с одним числовым значением, поэтому программа перезапишет запись «ваша страна» как просто «r страна, а затем напишите отдельную запись для "может сделать для вас.«Программа действует таким образом, собирая все повторяющиеся биты информации и затем вычисляя, какие шаблоны следует записать в словарь. Эта способность переписывать словарь является« адаптивной »частью алгоритма LZ на основе адаптивного словаря . способ, которым программа на самом деле это делает, довольно сложен, как вы можете видеть из обсуждений на Data-Compression.com.

Независимо от того, какой конкретный метод вы используете, эта система глубокого поиска позволяет сжимать файл гораздо эффективнее, чем если бы вы просто выбирали слова.Используя шаблоны, которые мы выбрали выше, и добавив «__» для пробелов, мы получили более крупный словарь:

  1. спросите__
  2. what__
  3. you
  4. r__country
  5. __can__do__for__you

И это меньшее предложение: «1not__2345 __ - __ 12354»

Предложение теперь занимает 18 единиц памяти, а наш словарь занимает 41 единицу.Итак, мы уменьшили общий размер файла с 79 до 59 единиц! Это всего лишь один способ сжатия фразы, и не обязательно самый эффективный. (Посмотрим, сможете ли вы найти лучший способ!)

Так насколько хороша эта система? Коэффициент уменьшения файла зависит от ряда факторов, включая тип файла, размер файла и схему сжатия.

В большинстве языков мира определенные буквы и слова часто встречаются вместе в одном шаблоне.Из-за такой высокой степени избыточности текстовые файлы , очень хорошо сжимаются. Уменьшение на 50 процентов и более типично для текстового файла хорошего размера. Большинство языков программирования также очень избыточны, потому что они используют относительно небольшой набор команд, которые часто идут вместе в заданном шаблоне. Файлы, содержащие много уникальной информации, например графику или файлы MP3, не могут быть сильно сжаты с помощью этой системы, потому что они не повторяют многие шаблоны (подробнее об этом в следующем разделе).

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

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

.

Объяснение WinZip Computing

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

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

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

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

Что такое сжатие файлов?

Это правда, что ZIP - не единственный тип сжатого файла, но он определенно один из самых распространенных. Мы могли бы продолжать и говорить о ZIP, ARC, ARJ, RAR, CAB и десятках других, но все они, по сути, работают одинаково.Итак, чтобы этот пост был понятным и легким для понимания, мы сосредоточимся только на расширении ZIP.

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


Нужно скачать Winzip?

Загрузите бесплатную 30-дневную пробную версию прямо сейчас!


Все еще не знаете, как на самом деле работает это волшебство? Потерпите меня, пока я буду немного разбираться в технике.

Как работает сжатие файлов?

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

Сжатие файлов без потерь

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

Что такое избыточность, спросите вы?

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

За счет исключения избыточности у вас остается только один экземпляр каждого бита данных.

Сжатие файлов без потерь будет примерно таким:

AAABBBBBCC

и сжав его до этого:

A3B5C2

Там же информация, но она упрощена и занимает меньше места (обратите внимание, что числа соответствуют количеству повторений предыдущей буквы). Таким образом, когда вы распаковываете (распаковываете / открываете / извлекаете) файл, он знает, как вернуться в исходную форму.Это в основном используется для текста и электронных таблиц, потому что потеря слов или данных из документа - это не то, чего вы хотите.

Сжатие файлов с потерями

Сжатие с потерями работает в основном так же, но, как вы, вероятно, можете понять по названию, это приводит к безвозвратной потере некоторых данных (не так плохо, как кажется).

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

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

Зачем сжимать файлы?


Нужно скачать Winzip?

Загрузите бесплатную 30-дневную пробную версию прямо сейчас!


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

Занимает меньше места

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

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

Храните свою коллекцию старых фильмов о кунг-фу на жестком диске? Сожмите их все в один ZIP-файл и удивитесь, сколько места вы сэкономите.

Более эффективные переводы

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

Конечно, вы можете отправить серию нескольких писем с небольшими вложениями к каждому, но это отнимает много времени и сложно отслеживать (и вы, вероятно, рассердите получателя).

Благодаря сжатию ваших документов в один ZIP-файл, он займет меньше места и будет передаваться намного быстрее.Получателю просто нужно использовать такую ​​программу, как WinZip, для извлечения файлов, и у него будет все, что вы отправили, в одной организованной папке.

Можно сэкономить деньги

Жесткие диски дорогие - я не должен вам об этом говорить. Очевидно, что для хранения большого количества данных требуется много места, так почему бы не получить максимальную отдачу от вложенных средств?

Допустим, у вас есть 200 ГБ данных, которые вам нужно спрятать на вашем компьютере, но на вашем жестком диске всего 250 ГБ.Конечно, он подойдет, но тогда у вас останется только 50 ГБ, что в наши дни немного.

Вы можете пойти и купить более крупный и дорогой жесткий диск, перенести все со старого на новый и все готово.

ИЛИ

Вы можете сжать 200 ГБ данных в ZIP-файл, который занимает всего 100 ГБ. У вас все еще есть все ваши файлы, готовые к использованию, когда они вам понадобятся, но вам не нужно тратить деньги на дополнительное пространство для хранения.

Как сжимать / распаковывать файлы

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

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

Но что, если вы имеете дело с несколькими гигабайтами данных? Вам понадобится что-то более привлекательное, чтобы заботиться о вещах. К счастью для вас WinZip - ведущий файловый компрессор.


Нужно скачать Winzip?

Загрузите бесплатную 30-дневную пробную версию прямо сейчас!


Сжатие больших файлов в WinZip

  1. Эта часть довольно сложная.Во-первых, вам нужно открыть WinZip (сложно, правда?).
  2. Затем вам нужно найти и выбрать все файлы, которые вы хотите сжать, на панели Файлы .
  3. После того, как все они выбраны, нажмите Добавить в архив.
  4. Щелкните Сохранить как.
  5. Выберите целевое местоположение, дайте ему имя и нажмите Сохранить. И это все.

Сжатие больших файлов за пределами WinZip (для работы необходимо установить WinZip)

  1. Откройте папку, содержащую все файлы, которые вы хотите сжать.
  2. Выделите каждую, которую собираетесь застегнуть.
  3. Щелкните правой кнопкой мыши в выделенной области, и появится подменю WinZip. У вас есть пара вариантов на выбор.
  4. * Добавить в Zip-файл: , щелкнув эту опцию, вы сможете присвоить имени вашему Zip-файлу, определить, как он должен быть сжат, и добавить шифрование.

    * Добавить в [имя файла] .zip: Эти параметры работают намного быстрее, но у вас не так много свободы.По сути, он создаст Zip-файл с именем содержащей его папки, но вы не сможете настроить параметры.

  5. Теперь ваш Zip-файл создан для хранения или передачи.

Распаковка файлов

Распаковать файл очень просто:

  1. Перетаскивание файла или папки из заархивированной папки в новое место.

ИЛИ

  1. Щелкните правой кнопкой мыши внутри заархивированной папки, выберите Извлечь все , затем следуйте инструкциям.

Вот и все

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

Если вы хотите узнать больше, посетите веб-сайт WinZip для получения дополнительной документации.


Нужно скачать Winzip?

Загрузите бесплатную 30-дневную пробную версию прямо сейчас!

.

Сжатие файлов mp4, перечисление содержимого каталогов и копирование файлов на удаленный сервер в Python

Потерпи меня.

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

В этой статье я создаю приложение, которое принимает файлы mp4 и сжимает их, прежде чем отправлять их на веб-сервер. Мне как учителю, который записывает свои лекции, нужно это делать. У меня есть устройство, которое записывает мои лекции прямо в mp4, записывая все, что я помещаю на экран своего компьютера, и все, что я говорю, в микрофон, но получаемые файлы mp4 не такие маленькие, как могли бы быть. Я редко включаю в свои лекции полноформатное видео, и видео меняется гораздо медленнее, чем аудио. Таким образом, я должен иметь возможность обходиться гораздо меньшим количеством кадров в секунду, чем предполагает мое записывающее устройство, когда оно производит mp4.Важно, чтобы я сжимал записи в формате mp4 до разумного размера, который не влиял бы на качество, потому что я размещаю эти записи на веб-сайте, чтобы мои студенты могли посмотреть их позже. Если размер файла слишком велик, им потребуется слишком много времени для его загрузки и просмотра, даже если они будут просматривать его, пока видео продолжает буферизоваться. Итак, мне нужно было решение, которое могло бы уменьшить записи до меньшего размера, жертвуя качеством видео, которое мне не нужно для моего приложения.

Первой моей мыслью было использовать такой инструмент, как Camtasia, который я долгое время использовал для записи и подготовки своих лекций.Но, как бы ни была прекрасна Camtasia, у нее нет API, который позволил бы мне ее автоматизировать, и поэтому я должен был выполнять много ручных манипуляций с Camtasia, чтобы сжать лекции, которые я записываю. Поскольку я обычно читаю 4 или 5 лекций в день, использование Camtasia показалось мне слишком неудобным. Итак, я начал изучать более автоматизированные подходы, которые не зависели от Camstasia, и в конце концов решил написать свой собственный.

Так как я писал свое собственное приложение, я понял, что могу автоматизировать и остальную часть варианта использования.Записав и сжав записи лекций, я загружаю их на веб-сервер кафедры нашего университета. Я всегда делал это вручную с помощью winscp. Почему бы не автоматизировать и это, пока я был. Я так и сделал, и вы увидите, как это сделать в этой публикации.

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

Чтобы сжать mp4, я использовал великолепную библиотеку ffmpy. ffmpy - это библиотека Python, которая обеспечивает доступ к утилите командной строки ffmpeg. ffmpeg - это приложение командной строки, которое может выполнять ряд различных видов преобразований видеофайлов, включая сжатие видео, которое является наиболее часто запрашиваемой функцией ffmpeg. Ресурс https://unix.stackexchange.com/questions/28803/how-can-i-reduce-a-videos-size-with-ffmpeg предоставляет несколько примеров использования ffmpeg для сжатия видеофайла.Самый полезный пример, представленный на этой странице, - это:

ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4

Обратите внимание на формат этой инструкции. Предложение -i, которое продолжает ffmpeg, указывает имя входного файла. После имени входного файла команда указывает параметры вывода. В этом случае параметры вывода указывают используемый видеокодек и коэффициент постоянной скорости, или CRF, который следует использовать для сжатия видеофайла. CRF, который в данном случае равен 20, может находиться в диапазоне от 18 до 24, где большее число сжимает вывод до меньшего размера.Последняя часть инструкции - это имя полученного сжатого файла.

Обратите внимание, что ffpeg не имеет ничего общего с Python. Если вы установите ffmpeg на свой компьютер с https://www.ffmpeg.org/download.html, вы сможете запустить эту команду в командной строке для сжатия файлов таким образом.

В этом примере, однако, мы хотим сжимать файлы не путем ввода команд в командной строке, а путем выполнения инструкций из написанного нами сценария Python. Для этого нам нужно использовать библиотеку ffmpy.Хороший ресурс по библиотеке ffmpy - https://pypi.python.org/pypi/ffmpy/0.0.4.

Во-первых, нам нужно установить библиотеку ffmpy. Предполагая, что вы уже установили Python, установите ffmpy, введя следующую команду в командной строке.

pip install ffmpy

После установки вы можете использовать его в программе Python. Для этого вам сначала нужно импортировать ffmpy. Затем, после того как вы установили имена входных и выходных файлов, а также видеокодек и коэффициент постоянной скорости для использования, вам необходимо настроить два словаря, один из которых описывает параметры, применяемые к входному файлу, а второй определяет параметры, применяемые к выходному файлу.В этом примере у нас нет никаких параметров, которые можно было бы применить к исходному входному файлу (мы просто хотим его использовать), но мы должны указать видеокодек и CRF, которые будут использоваться для результирующего выходного файла. Если имена наших входных и выходных файлов хранятся в переменных input_name и output_name, тогда мы могли бы настроить словарь с именем inp для хранения параметров, применяемых к входному файлу, и словарь с именем outp для применения к выходному файлу. Вот код:

inp = {input_name: None}
outp = {output_name: ’- vcodec libx264 -crf% d’% crf}

Мы передаем эти словари в функцию FFmpeg, определенную в библиотеке ffmpy, для создания объекта FFmpeg.Как только объект создан, мы просим его выполнить свою функцию запуска, которая фактически выполняет сжатие.

ff = ffmpy.FFmpeg (входы = inp, выходы = outp)
ff.run ()

Для целей отладки может быть удобно посмотреть, какую соответствующую инструкцию командной строки выполняет объект FFmpeg. Вы можете сделать это, распечатав значение ff.cmd.

Вот полный код, чтобы взять один файл mp4 и сжать его с использованием заданного пользователем постоянного коэффициента скорости:

import ffmpy
input_name = input («Введите имя входного файла:») ​​
crf = int (input («Введите постоянный коэффициент скорости между 18 и 24:»))
output_name = input («Введите имя выходного файла:«)
inp = {input_name: None}
outp = {output_name: '- vcodec libx264 -crf% d'% crf}
ff = ffmpy.FFmpeg (inputs = inp, output = outp)
print (ff.cmd) # просто чтобы убедиться, что он производит правильную команду ffmpeg
ff.run ()
print («готово!»)

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

Очень простой способ перечислить все файлы в определенном каталоге можно выполнить с помощью этой команды Python:

имена_файлов = glob.glob («% s \\ *. Mp4»% the_dir)

Значение the_dir указывает каталог, файлы mp4 которого мы хотим перечислить. Полученные в результате file_names будут списком Python, и мы можем перемещаться по нему по одному, используя цикл for. Внутри этого цикла for мы выполним код для сжатия каждого из них.

для f в file_names:
выполнить код для сжатия f и создания нового выходного файла

Когда мы сжимаем каждый файл, мы можем захотеть удалить оригинал. Большинство задач файловой системы обрабатываются библиотекой os в Python, которую мы можем импортировать для использования в наших собственных программах. Например, в ОС есть функция удаления, которая принимает имя файла, который мы хотим удалить. Итак, чтобы удалить файл с именем junk.txt, например, мы могли бы ввести следующую команду в Python:

ос.удалить («junk.txt»)

Наконец, как насчет переноса уменьшенных видео на удаленный веб-сервер? Для этого нам нужно импортировать библиотеку Python ftplib в нашу программу. Получив доступ к ftplib, мы можем создать сеанс с помощью FTP-команды ftplib, которая принимает имя сервера, имя пользователя и пароль пользователя для подключения к удаленному серверу. После того, как соединение установлено командой FTP, мы можем использовать storbinary функцию результирующего сеанса для отправки целевого файла в удаленное место.

Вот код для установки соединения в первую очередь:

try:
session = ftplib.FTP (config [«server»], config [«user»], config [«passwd»])
print («Done connected to remote server.»)
except:
print (« Не удалось подключиться к удаленному серверу »)

Предполагая, что это сработало и соединение было установлено, мы можем отправить файл на удаленный сервер следующим образом. Предположим, что имя файла mp4 хранится в переменной с именем outfile, а имя желаемого удаленного местоположения хранится в переменной с именем remote_file.Затем следующий код скопирует локальный файл mp4 в удаленное место:

compressed = open (outfile, «rb»)
try:
session.storbinary («STOR% s»% remote_file, сжатый)
compressed.close ()
except:
print («Произошла ошибка при загрузке.»)
session.quit ()

Давайте теперь соберем все вместе. Следующий код доступен по адресу https://github.com/klumpra/lecture_recording_processor

.

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

dir = d:
crf = 24
server = my.server.name
user = myusername
passwd = mypassword
folder = ~ / public_html / somesubdirectory

Строки файла конфигурации представляют собой пары "имя-значение". Параметр конфигурации отображается слева от знака равенства, а соответствующее значение отображается справа. Вот что означают различные параметры:

  • каталог: где появляются исходные файлы mp4, а где будут записаны уменьшенные
  • crf: постоянный коэффициент скорости от 18 до 24, при этом более высокие значения приводят к более сильному сжатию
  • server: IP-адрес или имя хоста, на котором файлы должны быть размещены
  • пользователь: имя пользователя учетной записи для входа на сервер
  • passwd: пароль учетной записи для входа на сервер
  • Папка
  • : куда файлы должны быть помещены на удаленном сервере

Код, показанный ниже, первым читает этот файл конфигурации.Затем он перечисляет все файлы mp4 в каталоге dir и запрашивает у пользователя имя сжатого файла, который нужно создать из каждого файла. Затем он сжимает файлы. После этого он загружает их в удаленный каталог. Как только это будет сделано, он спрашивает пользователя, хочет ли он удалить исходные и сжатые файлы.

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

Как я уже сказал, это было чрезвычайно специализированное приложение. Но из него вы можете увидеть, как использовать ffmpeg для сжатия файлов, как выводить список содержимого каталогов, как удалять файлы и как копировать файлы на удаленный сервер.Я уверен, что у вас есть приложение, в котором можно было бы использовать эти уроки. Удачного кодирования!

.

Архивирование и сжатие с использованием Linux

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

На первом этапе программа упаковки компилирует все файлы данных в выбранном каталоге в один файл архива, не разрывая связи ни с одним из содержащихся файлов.На втором этапе файлы сжимаются с помощью одной из специальных программ сжатия. В результате этого сжатия, которое описывается как прогрессивный , компактный или solid , архивные файлы получают расширенные форматы, такие как .tar.gz ( .tgz для краткости) или .tar.bz2 (сокращенно .tbz2 ). Программа упаковки также позволяет распаковывать такие файлы (например, тип файла .tar.gz ).

.

Смотрите также