7 порад щодо використання командного рядка для зменшення медіафайлів

Сьогодні поговоримо про те, як використовувати команди Linux для виконання найпоширеніших перетворень для економії місця. Використання командного рядка дає повний контроль над функціями стиснення та перетворення файлів. Крім того, можна буде використовувати командний рядок для написання скриптів, які будуть адаптовані до ваших потреб.

Існує безліч інших способів стиснення та перетворення файлів. Можна встановити програму з графічним інтерфейсом користувача з відкритим вихідним кодом на комп’ютер або навіть перетворити формати файлів, використовуючи функції збереження та експорту багатьох поширених програм.

Видалення файлів

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

Команди du, ncdu та dust виводять список найбільших підкаталогів у поточному каталозі. Вони повідомляють вам, які каталоги використовують найбільше дискового простору:

$ du -a . | sort -n -r | head -n 50

Цей командний рядок визначає 50 найбільших файлів у дереві каталогів. Найбільші файли, розміщені за розміром:

<span class="co4">$ </span><span class="kw2">find</span>  <span class="re5">-type</span> f  <span class="re5">-exec</span>  <span class="kw2">du</span> <span class="re5">-Sh</span> <span class="br0">{</span><span class="br0">}</span> +  <span class="sy0">|</span>  <span class="kw2">sort</span> <span class="re5">-rh</span>  <span class="sy0">|</span>  <span class="kw2">head</span> <span class="re5">-n</span> <span class="nu0">50</span>

За допомогою цієї команди ви можете дізнатися, де у вас є великі файли, що зберігаються більш ніж в одному місці. Видаліть дублікати, і ви зможете звільнити достатньо місця.

Якість або місце на диску

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

Деякі формати файлів не містять втрат: вони зберігають всі записані дані. Формати файлів без втрат можуть бути як несжаті, так і сжаті. Залежно від різних факторів, їх розміри можуть відрізнятися.

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

Наприклад, при створенні цифрового зображення у форматі без втрат, такому як RAW, PNG або BMP, створюється великий файл. Перетворення цього зображення на альтернативу з втратами, таку як JPG або WEBP, дозволяє заощадити багато місця. Чи варте воно того? Все залежить від того, як ви плануєте використовувати зображення.

Якщо ви є професійним фотографом, який друкує фотографію в книзі з високою якістю, ви захочете зберегти вихідний файл без втрат. Швидше за все, для ваших робіт вам знадобиться зображення найвищої якості. Можна редагувати зображення без втрат без втрати якості.

Якщо ви розробник веб-сайтів, ви можете зробити вибір у бік розміру. Файли JPG або WEBP меншого розміру з втратами завантажуються на комп’ютери користувачів набагато швидше ніж зображення без втрат, що прискорює завантаження веб-сторінок. Мало хто може сказати, чи є зображення, яке вони переглядають на екрані свого комп’ютера або мобільного телефону, без втрат або з втратами.

Пам’ятайте, що після перетворення з формату без втрат у формат із втратами ви видалили деякі дані. Ви не можете перетворити файл назад, щоб відновити ці дані. Ви можете перетворити назад на попередній формат, але зробите це без даних, якими ви вже пожертвували. Видаляйте вихідний файл лише після того, як переконайтеся, що перетворений файл відповідає всім вашим потребам! Ви можете взагалі не видаляти вихідний файл.

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

Конвертація файлів зображень

Одним із форматів для зображень є формат JPG із втратами. Завдяки налаштуванням якості JPG дозволяє вказати менший розмір файлу з більшою втратою даних або більший розмір файлу з меншими втратами. Це може дати рівень стиснення до 10: 1 в порівнянні з деякими форматами без втрат. Проте, якщо ви показуєте зображення у форматі JPG на екрані комп’ютера або телефону, око рідко може визначити, що файл перетворено та стиснуто.

Файл WEBP виглядає на екранах так само добре, як і JPG файли, але вони економлять ще більше місця. Завдяки цій економії WEBP стає найпопулярнішим форматом зображень із втратами, що підтримуються всіма сучасними браузерами та найсучаснішими програмами. Формат WEBP підтримує альфа-прозорість, анімацію та хорошу передачу кольору. Він майже завжди використовується як формат із втратами, хоча може підтримувати формат без втрат.

Я перетворив більшість моїх файлів PNG та JPG у формат WEBP та звільнив багато місця для зберігання. На одному диску 500 мегабайт файлів PNG перетворилися приблизно на 120 мегабайт WEBP. Якщо ви впевнені, що ваші зображення будуть переглядатися лише на екрані, перетворення на WEBP дає очевидні переваги.

Утиліта ImageMagick із відкритим вихідним кодом дає вам команди терміналу Linux для перетворення зображень. Можливо, її потрібно буде встановити в системі:

$ sudo apt install imagemagick

Команди ImageMagick допомагають зменшити розмір файлу зображення за допомогою трьох методів:

  • Зміна формату файлу
  • Зміна ступеня стиснення
  • Зміна розміру зображення

Ось синтаксис команди ImageMagick convert, яка виконує перетворення формату файлу:

convert  <span class="br0">[</span>input options<span class="br0">]</span>  input_file   <span class="br0">[</span>output options<span class="br0">]</span>  output_file

Усі ці команди зменшили розмір файлів. Результати тестових прогонів:

$ convert image.bmp  new_image.jpg   #  7.4MB down to 1.1MB
$ convert image.tiff new_image.jpg   #  7.4MB down to 1.1MB
$ convert image.png  new_image.webp  #  4.8MB down to 515KB
$ convert image.png  new_mage.webp   #  1.5MB down to 560KB
$ convert image.jpg  new_image.webp  #  769KB down to 512KB
$ convert image.gif  new_image.jpg   #  13.2MB down to 10.9MB
$ convert image.gif  new_image.webp  #  13.2MB down to 4.1MB

Ви також можете конвертувати зображення RAW. При перетворенні зображення RAW ім’я файлу не повинно мати розширення, щоб команда convert могла правильно обробити його.

<span class="co4">$ </span>convert image new_image.png <span class="co0">#  RAW 67.1MB down to 45.3MB</span>

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

У цьому прикладі економиться місце за рахунок зміни розміру зображення JPG якомога ближче до 800×600 при збереженні правильного співвідношення сторін. У цьому прикладі я конвертую вхідний файл розміром 285 КБ з роздільною здатністю 1277×824 пікселів у вихідний файл розміром 51 КБ з роздільною здатністю 800×600 пікселів.

<span class="co4">$ </span>convert image.jpg  <span class="re5">-resize</span> 800x600  new_image.jpg

Команда convert може змінювати зображення, оскільки вам подобається. Наприклад, ви можете підібрати компроміс між якістю та розміром зображення. Але вам доведеться спробувати кілька варіантів налаштувань, щоби зрозуміти всі можливості. Щоб дізнатися більше про ImageMagick, відвідайте веб-сайт ImageMagick.

Конвертація аудіофайлів

Як і файли зображень, аудіофайли бувають у несжатому без втрат, стиснутому без втрат та стисненому із втратами форматах.

Компроміс між “без втрат” та “із втратами” полягає в першу чергу між якістю та економією місця. Якщо вам потрібен звук найвищої якості, обирайте файли без втрат. Це можливо при редагуванні оцифрованої музики. Якщо вам потрібна музика для слухача, яка займає набагато менше місця, більша частина світу вирішила, що формати з втратами, такі як MP3, M4A та OPUS, є найкращим вибором.

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

  • Без втрати та стиску
    • WAV
    • PCM
    • AIFF
  • Без втрат та стиснутий
    • FLAC
    • ALAC
  • Стиснутий із втратами
    • WEBM
    • OPUS
    • OGG (Vorbis)
    • AAC (деякі формати не є відкритими)
    • MP3
    • M4A
    • WMA (не відкритий формат)

Якщо ваша мета – заощадити місце на диску, спробуйте перетворити формат без втрат у формат із втратами. Не конвертуйте з одного формату із втратами в інший без необхідності. Це дуже погіршить якість звуку.

Дуже гнучка команда терміналу Linux для перетворення аудіофайлів – ffmpeg. Щоб встановити його:

<span class="co4">$ </span><span class="kw2">sudo</span> apt <span class="kw2">install</span> <span class="kw2">ffmpeg</span>

Як і команда ImageMagick convert, ffmpeg підтримує величезну кількість форматів файлів та кодеків. Перегляньте їх усі, ввівши:

<span class="co4">$ </span><span class="kw2">ffmpeg</span> <span class="re5">-encoders</span>

Використання ffmpeg є досить простим. Ось стандартний синтаксис. Прапорець -i ідентифікує вхідний файл, а прапорець -vn повідомляє ffmpeg не викликати будь-якого зв’язку з відео кодом, який може змінити аудіовиход:

<span class="co4">$ </span><span class="kw2">ffmpeg</span>  <span class="re5">-i</span>  audiofile_input.ext <span class="re5">-vn</span> audiofile_output.new

Всі ці приклади конвертують WAV файли без втрат у формати з втратами для економії місця. Процес перетворення файлів AIFF такий самий (але замініть .wav на .aiff):

ffmpeg -i audio.wav -vn audio.ogg  # 38.3MB to 3.3MB
ffmpeg -i audio.wav -vn audio.mp3  # 38.3MB to 3.5MB
ffmpeg -i audio.wav -vn audio.m4a  # 38.3MB to 3.6MB
ffmpeg -i audio.wav -vn audio.webm # 38.3MB to 2.9MB

Усі команди зменшили розмір вхідних файлів без втрат в 10 разів. Основне питання: наскільки звук на виході відрізняється від оригіналу? Більшість людей, використовують побутові устрою, різниця незначна. Ось чому MP3, M4A та інші стислі формати є найпопулярнішими музичними форматами у світі. Незважаючи на те, що технічно це не найкращий варіант, звук цілком прийнятний для прослуховування і займає невелику частину дискового простору (або смуги пропускання потокової передачі).

Конвертація відео файлів

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

Відеоформат – це комбінація формату файла-контейнера та кодека. Кодек – це програмне забезпечення, яке кодує та декодує потік даних при його переміщенні у файл-контейнер та з нього.

Контейнери можуть бути пов’язані з декількома кодеками. На практиці часто буває лише один, два або три популярні кодеки в парі з конкретним контейнером. Наприклад, з аудіофайлами WAV файли можуть бути закодовані як без втрат, так і з втратами, але кодування без втрат переважає над форматом, тому більшість людей вважає, що будь-який файл WAV не містить втрат.

Ось деякі з найбільш широко використовуваних відеоформатів з відкритим вихідним кодом:

  • Формат MP4, що містить відео H.264 та аудіо AAC, використовується в потоковій передачі BluRay та в Інтернеті.
  • Формат WEBM, що містить відео VP9 та аудіо Opus, є надзвичайно гнучким і використовується як для файлів архівної якості, так і для файлів меншого розміру для потокової передачі.
  • Формат контейнера Matroska (MKV) може містити практично будь-яку комбінацію відео, аудіо та навіть стереоскопічних (3D) зображень. Це база WEBM.

Основними факторами, що визначають розмір та якість відеофайлу, є:

  • Роздільна здатність (розмір кадру)
  • Бітрейт
  • Спосіб кодування

Команда ffmpeg може змінювати всі три параметри. Ось простий приклад перетворення:

$ ffmpeg -i input_video.mov output.webm

Це перетворення призвело до вихідного файлу розміром 1,8 МБ із вхідних 39 МБ.

Оскільки я не вказав жодних параметрів, ffmpeg копіює більшість атрибутів файлу-джерела. У цьому прикладі моїм вхідним файлом був файл MOV, що містить відео MJPEG з роздільною здатністю 1280×720, частотою кадрів 23,98 і бітрейтом 40219 кілобайт в секунду (кбіт/с). Отриманий вихідний файл містить відео VP9 з такою самою роздільною здатністю та частотою кадрів. Проте бітрейт становить лише 1893 кбіт/с.

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

Зберігання файлів у архівах

Архівування бере кілька вхідних файлів – часто файлів різних типів – і збирає в один вихідний файл. Стиснення не є обов’язковим. Стиснутий архів корисний для надсилання файлів через Інтернет та для тривалого зберігання даних. Це чудовий спосіб заощадити місце. Назад є те, що ви обмежені в тому, як ви можете обробляти заархівовані файли, поки ви не витягнете їх з архіву (хоча деякі інструменти тепер досить гнучкі у своїх маніпуляціях з файлами в архівах).

Серед безлічі форматів архівних файлів найбільш популярними форматами стиснення є GZ, BZ2, XZ, ZIP та 7Z. Команда tar працює з багатьма форматами архівів. Він підтримує команди стиснення, включаючи gzip, bzip2, xz та інші.

$ tar --xz --create --file myarchive.tar.xz bigfile.xcf bigfile.tiff

Ця команда зменшила 56 МБ до стисненого архіву 28 МБ. Ступінь стиснення залежить від використовуваних файлів. Деякі медіафайли (особливо ті, які вже знаходяться у стислому форматі) стискаються мало або зовсім не стискаються.

Щоб розархівувати файл TAR, використовуйте параметр –extract:

<span class="co4">$ </span><span class="kw2">tar</span> <span class="re5">--extract</span> <span class="re5">--file</span> myarchive.tar.xz

Команда tar об’єднує багато файлів в один контейнер (іноді званий tarball). Однак якщо ви стискаєте лише один файл, у контейнері немає потреби.

Натомість ви можете просто стиснути файл за допомогою таких команд, як gzip, bzip2, xz, zip, 7z та інші.

$ xz bigfile.xcf
ls
bigfile.xcf.xz

Щоб розпакувати стислий файл, можна використовувати “un”-версію команди, яку ви використовували для стиснення файлу:

<span class="co4">$ </span>unxz bigfile.xcf.xz

Іноді також є опція –decompress:

$ xz --decompress bigfile.xcf.xz

Не всі дистрибутиви Linux включають всі ці команди, тому вам доведеться встановити деякі з них.

Поради щодо написання скриптів

Щоб перетворити всі файли в каталозі, просто вставте команду перетворення цикл for. Помістіть у подвійні лапки змінну назву файлу, щоб обробляти будь-які імена файлів, що містять вбудовані пробіли. Цей скрипт перетворює всі файли PNG у каталозі на файли WEBP:

#!/bin/bash
for file_name in *.png ; do
convert $file_name  $file_name.webp
done

Щоб обробити всі файли в каталозі та у всіх підкаталогах, вам необхідно пройти по структурі каталогів. Використовуйте для цього команди pushd та popd stack або команду find.

На завершеня

При розумному використанні команди Linux, які стискають та переформатують файли мультимедіа, допоможуть заощадити гігабайти на жорсткому диску. Я впевнений, що і у вас є кілька чудових порад, тому, будь ласка, залишайте їх у коментарях.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x