Я всегда делюсь клипами и видео с друзьями, и часто размер файла смехотворно большой, чтобы отправлять большинство социальных сетей (Discord, Twitter, Telegram и т. Д.). Чтобы обойти эти огромные размеры файлов, я использую FFMPEG для сжатия видео. FFMPEG – очень мощный инструмент для всей вашей обработки медиа. Он имеет тонну библиотек для выполнения различных задач, связанных с визуальными и аудиосипедами.
Предисловие
Используя FFMPEG, мы можем сжимать видео в ~ 10x. Например, если у нас есть 1-минутный и 15-секундный клип, который составляет 1080p 60fps @ 432MB, мы можем использовать простую однострочную команду FFMPEG для сжатия этого видео до ~ 50 МБ. Теперь это позволяет нам отправлять его на множестве разных платформ намного проще.
Перед сжатием:
После сжатия:
Все это время мы почти не теряем качества в видео. Это отличное решение, но это может быть серьезной хлопот открывать ваш терминал каждый раз, когда вы хотите сжимать эти видео. Я подумал, что было бы проще просто сделать правой кнопкой мыши элемент меню, чтобы быстро сжать видео. Я проверил его с видео M4V, MKV и MP4, и это работает безупречно.
Обычно вы можете просто бежать:
ffmpeg -i INPUT_FILE.mp4 -vcodec h264 -acodec aac OUTPUT.mp4
Но никто не хочет набирать это каждый раз. Поскольку у меня уже был сценарий сжатия на питоне FFMPEG, я использовал его в качестве основной программы для запуска.
Получение установки
Вам нужна пара инструментов, чтобы начать. Во -первых, получите Python 3 (предпочтительно выше 3,5). Убедитесь, что у вас также установлен Python3. Посмотрите, как здесь. .
Далее, установите ffmpeg
:
scoop install ffmpeg
Убедитесь, что ваши совок на вашем пути! (C: \ users
Теперь вы готовы начать сжатие!
Создание нашего сценария и щелкнуть правой кнопкой мыши файл реестра
compress.py
Начав вы можете сделать compress.py
Поместите и поместите его в любом месте. Я поместил это в C: \ users \ max \ ffmpeg-compress \ compress.py
Анкет Содержание этого файла следующим образом:
import sys from subprocess import run, PIPE from pathlib import Path args = sys.argv[1:] video_file = Path(' '.join(args)) run(['ffmpeg', '-i', video_file.name, '-vcodec', 'h264', '-acodec','aac', video_file.name.replace('.' + video_file.name.split('.')[-1], '-compressed.' + video_file.name.split('.')[-1])])
Пойду линию по линии:
1-3: Импорт наших модулей. Sys
Чтобы получить наши аргументы, бежать
и ТРУБКА
от подпроцесс
Чтобы позвонить в нашу команду и получить вывод, и Путь
от Pathlib
Разобрать и очистить наши строки пути.
4: args
Список аргументов, переданный при вызове исполняемого файла (это будет наше имя файла)
5: video_file
это объект пути с пройденными аргументами, соединенными как строка
6: бежать([...])
где мы называем ffmpeg
исполняемый файл с Python и запустите нашу команду для сжатия.
Compress.bat
Далее вам нужно сделать .bat
файл в любом месте на вашем компьютере. Я положил мой @ C: \ users \ max \ compress.bat
. Содержимое этого файла:
@echo OFF SET subject=%* for %%a in (%*) do set subject=%%a python C:\\Users\\Max\\ffmpeg-compress\\compress.py %subject%
Пойду линию по линии:
1: @echo off
Отключает печать каждой строки в сценарии партии на терминал. Стандарт в партийных сценариях.
2-3: установит все наши аргументы на переменную предмет
4: называет наш сценарий Python с помощью видео в качестве нашего аргумента.
ffmpeg-compress.reg
Наконец, нам нужно сделать файл с именем ffmpeg-compress.reg
в любом месте. Мы можем использовать Блокнот для этого. В этом файле вставьте следующее, но замените FilePath для Compress.bat
с твоим.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\ffmpeg-compress] @="Compress File w/ FFMPEG" [HKEY_CLASSES_ROOT\*\shell\ffmpeg-compress\command] @="\"C:\\Users\\Max\\compress.bat\" \"%1\""
Секция по разделу:
Для [Hkey_classes_root \*\ shell \ ffmpeg-compress]
, мы устанавливаем заголовок нашего кнопки меню правой кнопкой мыши.
Для [Hkey_classes_root \*\ shell \ ffmpeg-compress \ command]
, мы настраиваем фактическую командную строку, которую мы хотим, чтобы кнопка запускалась при нажатии.
Вывод
Теперь, когда мы щелкаем правой кнопкой мыши на файле, у нас есть возможность Сжатие с ffmpeg
Теперь это позволит нам легко сжимать видео без необходимости открытия терминала.
Суть доступна с файлами, используемыми в этом здесь:
Почему вы используете Python? Не могли бы вы сделать это в чистой партии?
Я отстой с партией, и мне действительно не нравится иметь дело со странностью, проходящей аргументы и анализируя их. Python для меня просто более удобный язык. Я также могу делать замену строки, а что не проще, и у меня уже был файл Python
Оригинал: “https://dev.to/m4cs/compressing-videos-easily-on-windows-w-ffmpeg-and-registry-files-5fin”