Разные скрипты

Логотип FFmpeg

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

# FFcompress

Сжатие видео до нужного размера с помощью всего одной команды.

Поддерживается только кодек H.264 и формат контейнера MP4, поскольку они универсально поддерживаются на всех платформах. Лучше использовать WebM для более качественного конечного результата, но кодирование WebM происходит настолько невероятно, невероятно медленно, что я решил вообще его не поддерживать.

Скрипт также поддерживает аппаратное ускорение (hardware acceleration), но есть большая вероятность, что оно не будет работать на другом оборудовании, кроме моего.

NAME:
 ffcompress - ffmpeg helper script for compressing a file to a desired file size.

USAGE:
  ffcompress [command options] [arguments...]

VERSION:
 0.0.1

OPTIONS:
   -y, --[no-]yes       false    Whether to overwrite the output file.
   -d, --[no-]dry       false    Just print what would've been done, not actually run it. Useful for testing.
   -i, --input S*                Input video file to compress.
   -s, --size N.N       9        Target size for the video in MB.
   -p, --preset S       medium   Preset to use for encoding the video.
       --m:a N          0        Audio track to use. More than one options merge audio tracks.
       --c:a S          libopus  Audio codec to use.
       --b:a N          128000   Audio bitrate for the output.
   -r, --fps N          60       Video framerate.
       --scale S        1280:-2  Video scale (resolution).
       --[no-]hw-accel           Hardware acceleration.
   -o, --output S*               Compressed video file output path.
   -?, --help

# FFmpeg Split Timestamps

Разделяет аудио мэшап на отдельные песни в соответствии с предоставленными временными метками (включая название в метаданных).

Пример использования:

./ffmpeg-split-timestamps 'OLDER Electro Swing Collection.mp3' <<< "
0:00 All Night - Parov Stelar
2:43 Peeping Tom - Rosie Harte
6:13 Thrift Shop - (Bart & Baker Remix)
9:58 Mojo Radio Gang - Parov Stelar
12:38 It Don't Mean a Thing (If It Ain't That Swing) - Lionel Hampton
16:15 Dragons - Caravan Palace
20:27 Geraldine's Routine - Tape Five
23:32 Suzy - Caravan Palace
27:39 Delight - Jamie Berry
33:24 Cinnamon Girl (Club Edit) - dunkelbunt music
37:19 Rascal - Jamie Berry
41:28 Booty Swing - Parov Stelar
44:40 Libella Swing - Parov Stelar
49:01 Catgroove - Parov Stelar
53:30 Chambermaid Swing - Parov Stelar
59:15 Dirty Stop Out - Jamie Berry*
1:05:26 BeatBuddy Swing - Parov Stelar
1:09:44 Josephine - Parov Stelar
"

# Gifski Video

Позволяет конвертировать любой видеофайл в высококачественную GIF-анимацию.

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

Использование:

gifski-video <FFMPEG-OPTS> --- <GIFSKI-OPTS>

# GPU Average Usage

Рассчитывает среднюю загрузку графического процессора (GPU) на основе файла, показывающего текущую загрузку GPU.

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

USAGE:
  gpu-average-usage [command options]

OPTIONS:
  -t  Whether to truncate the decimal part of the percentage. [default=false]
  -d  Sampling duration in seconds. [default=1]
  -s  Amount of samples to take. [default=10]
  -g  GPU usage file.
  -h  Print this help message.