Ffmpeg формат имени файла

Обновлено: 06.07.2024

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

Он включает libavcodec - библиотеку кодирования и декодирования аудио и видео и libavformat - библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и FF, означающего Fast Forward. FFmpeg разработан под ОС на основе Linux, однако может быть скомпилирован под многие другие операционные системы. Разработчики не выпускают релизов и рекомендуют использовать последнюю версию из Git. Распространяется под лицензиями GNU LGPL или GNU GPL.

Содержание

Ссылки

Инсталляция

В SoftwareCenter найдите пакет «ffmpeg», и установите его.

Через консоль в консоли наберите следующую команду:

Если не можете найти пакет, подключите репозитории. Как подключать репозитории написано здесь.

Управление FFmpeg через терминал
  • Вызов мануала по FFmpeg:
  • Вызов справки помощи по FFmpeg, где -h - краткая справка помощи. -h long - длинная справка помощи. -h full - полная справка помощи:
  • Актуальны так же следующие некоторые опции, полный список которых можно узнать в начале краткой справки по FFmpeg ffmpeg -h:
Основные и дополнительные ключи параметров FFmpeg
Ключи параметров FFmpeg для Видео

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

немного теории - gop

GOP Settings – для удобства кодирования видеоданных весь видеопоток разбивается на группы, называемые GOP (Group of Pictures - группой изображений) и состоят из I,P,B типов кадров, подробнее wiki-Типы кадров . Cтруктуру GOP обычно описывают в виде дроби M/N, для которой: M сообщает общее число кадров в GOP, а N - каким по счету будет очередной P кадр после предыдущего. GOP зависит от выставленного значения M Frames. Если сцены содержат частую смену освещения, быстрое движение, смены цветов, то лучше выбирать более короткую GOP. Для MPEG-2-PAL максимальное значение GOP (Group Of Pictures) - 15 кадров. Например, при импорте видео с GOP = 18 в программу Adobe Encore можно получить ошибку: "Sorry, an abnormal condition has been detected". Для DVD принято использовать структуру 15/3 (IBBPBBPBBPBBPBB) или 12/3 (IBBPBBPBBPBB) - то же самое для закрытого "closed" GOP 13/3 (IBBPBBPBBPBBP) - M=13, N=3. Чем больше длина GOP, тем сильнее сжатие, но увеличение длины GOP уменьшает качество материала. Для рипов DivX, XviD, mpeg4, x264.mkv - используется более свободный и независимый подход в отношении GOP, но тут так же становится важным - не "переборщить". Смотрите также тематическую статью wiki-Кадровая частота

работа с чёрными полями кадра средствами ffmpeg
  • Обрезка чёрных полей в кадре. Для обрезки чёрных полей видео кадра, в FFmpeg используются следующие функции:

Значения параметров обрезки видео кадра задаются в пикселях. В некоторых версиях ffmpeg эти опции могут отсутствовать и взамен им может быть предложено использовать родственные опции от графического видеофильтра < -vf filter >. Например: -vf crop=width:height:x:y - где: width - горизонтальная "ширина" видеокадра. height - вертикальная "высота" видеокадра. x:y - размеры отступа от левого верхнего угла, это бывает необходимо чтобы сместить вырезанный кусок кадра от центра к противоположным углам - верхнему (нижнему) левому, или нижнему (верхнему) правому. Подробнее о параметрах обрезки ffmpeg-filters-crop. Примеры использования опций обрезки от видеофильтра ffmpeg:

  • Добавление чёрных полей в кадр. Для добавления чёрных полей в кадр, используются функции видео фильтра scale и pad. Это бывает необходимо когда вы встраиваете широкоэкранные аспекты типа 2.24; 2.35; 2.0 - в размер аспекта 16:9, ибо не все плейеры понимают и хорошо работают с широкоэкранными аспектами 2.24; 2.35; 2.0

< scale > - реальный размер входного кадра, к которому требуется добавить чёрные поля (полосы). Например: 720x320 аспектом 2.24 до аспекта 16:9

< pad > - < pad=720:400:0:40:black >, где 720:400 - желаемый (выходной) размер кадра на выходе, аспектом 16:9. X:Y (0:40) - смещение по оси "x" (горизонталь) равно нулю, это значит что добавление чёрных полос по бокам не ведётся, а по оси "y" (вертикаль) мы добавляем по 40 пикселей сверху и снизу, до масштаба 720x400 - где 400-320=80 .. 80/2=40.. Не забываем про функцию < aspect > которая будет регулировать окончательное, выходное соотношение сторон вашего кадра. В данном примере аспект должен быть 16:9 (pad=aspect)

< black > - означает цвет добавляемых полей (полос) - чёрный.

Аналоги ключей ffmpeg для x264

Аналоги основных ключей параметров кодирования ffmpeg для x264. Для просмотра полного списка параметров кодирования кодека x264, следуйте по ссылке в графе таблицы, - это один из лучших мануалов для x264.

Ключи параметров ffmpeg для x264

Свободный кодек x.264 MPEG-4 ISO/AVC стандарта MPEG-4, - является современной и продвинутой формой кодека MPEG-4 ISO/IEC, по этому некоторые ключи параметров между ними могут быть взаимоприменимы.

Внимание! - Некоторые спорные настройки параметров видео libx264 может проигнорировать, выставив свои значения, посчитав их более адекватными профилю и уровню кодирования. Поэтому проверяйте параметры выходного видео самостоятельно, с помощью программы mediainfo. В особых случаях, когда ваш "спор" с libx264 не даёт никаких результатов, то видимо стоит оставить те варианты значений, на которых настаивает кодер. Также - некоторые значения и ключи могут быть взаимозависимы, и изменение или удаление некоторых параметров может дать возможность изменять другие ключи по вашему усмотрению. Всегда помним, что значения "рекомендуемые" или "по умолчанию" - не значит "идеальные", большинство функций устанавливается методом подбора. Смотрите так же - предполагаемая будущая рекомендация ITU-T и проект стандарта ISO/IEC по сжатию видео wiki-H.265

Пример: < -x264-params no-fast-pskip=1 > тоже самое средствами ffmpeg < -fast-pskip 0 > Пример установки группы параметров: -x264opts no-dct-decimate=1:deadzone-intra=8:deadzone-inter=16:colorprim=smpte240m:transfer=bt709:colormatrix=GBR

Использование алгоритма CABAC позволяет сократить битрейт до 50-55% от битрейта оригинального видео, с которого делается Rip. Например максимальный битрейт файлов DVD-MPEG-2-720x576 это - 8000Кб/с. Использование CABAC позволяет сократить битрейт до 4000-4500Кб/c без потери в качестве (см. ниже в графе -coder)

Установка опции средствами x264: < x264opts stats=stats.log >

<baseline> - низкое качество, без CABAC, без адаптивного 8x8dct, weightp=0.

<main> - нормальное качество, но без адаптивного 8x8dct.

<high> - высокий профиль, без ограничений на функции.

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

Все уровни: 1, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1, 4.2, 5, 5.1

Для мобильных устройств обычно не выше чем 3.1

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

Пример: -aspect 16:9 1280/720=16/9=1,78 или -aspect 4:3 640/480=4/3=1,33.

GOP равный фреймрейту и с минимальным keyint_min 4 - устанавливается, если вы создаёте "оригинал-рип" с BlueRay или DVD, с соответствующим видео битрейтом и полным сохранением качества, - (на полку).

Значение от <3> и выше(!), выбирается исключительно редко, когда эффект сжатия важнее чем качество видео на выходе. Не забываем так же, что B-кадр имеет около 30% качества от качества оригинального I-кадра. P-кадр весит порядка 70% от I-кадра

Рекомендуется "умное" значение < -weightp smart >

Даёт хорошие результаты, если GOP и < -sc_threshold > равны между собой и равны 40 или 50. Разумный диапазон от 40 до 50.

wiki-Дискретное косинусное преобразование. Для функции требуется < -profile high > (см. в графе profile)

Отключение < -mixed-refs 0 > или средствами x264 < -x264-params no-mixed-refs=1 >. <0> - выключено, <1> - включено

RDO - Rate–Distortion Optimization - Сигнал-Шум Оптимизация. Позволяет экономно, с точки зрения битрейта, закодировать шумы видеоряда и значительно повысить детализацию изображения. Для включения опции необходимо, что бы < -subq > был больше, или равен 6. Значение <0> уменьшает детализацию и зернистость изображения, <1> повышает детализацию и зернистость изображения.

<variance> - (VAQ) разрешает AQ для перераспределения битов в каждом кадре. <autovariance> - (autoVAQ) - авто, разрешает распределение битов по всему видео (эксперементальная функция)

Ключи параметров ffmpeg для других кодеков формата mpeg-4

Ключи параметров для кодека MPEG-4 ISO/IEC < -vcodec mpeg4 >. Так же могут быть совместимы с другими кодеками стандарта MPEG-4 - DivX, XviD, Quicktime. Некоторые из ключей могут быть применимы для x264.

По умолчанию для кодеков Xvid, DivX и Mpeg4 используется простая матрица H.263. < -flags +aic > не работает с опцией < -mpeg_quant 1 >, которая включает матрицу квантования mpeg. О матрицах квантования смотрите ниже, в разделе о MPEG-2

Возможные значения 8;9;10 - пример: < -dc 9 >. Используется при кодировании в MPEG-2 и MPEG-4

Параметры ffmpeg для формата mpeg-2
  • Для кодирования в MPEG-2 могут подойти некоторые параметры из таблицы кодеков семейства MPEG-4. Для наглядности, вот вам стандартная строка для кодирования в MPEG-2 c закрытой GOP-структурой, переменным битрейтом, постоянным высоким качеством и адаптивно-дефолтной ffmpeg-матрицей квантования, - пригодная для двухслойной DVD-заготовки:

Для расчёта битрейта видео файла под определённый тип DVD диска (4Gb, 8Gb) можно воспользоваться онлайн ссылкой bitrate_calculator. Или же воспользоваться подобной функцией в программе Avidemux.

Размер кадра для кодирования PAL-video всегда выставляйте 720x576, независимо от размера входного кадра, ибо соотношение сторон определяется функцией < -aspect >. При фреймрейте 30 кадр/сек, 30(29.970)fps NTSC - размер кадра нужно установить 720x480 во избежание ошибок определения типа видео декодерами.

Для кодирования mpeg2video так же могут подойти ключи и флаги: < -dc >, < qmin;qmax >, < -b_strategy >, < trellis >, < mbd >, < -mpv_flags +skip_rd+qp_rd+cbp_rd >

Но их, кроме < -dc >, < qmin;qmax > и < -b_strategy > - лучше использовать для средних и низких битрейтов. Значения < -b_strategy > в mpeg2video это: < 1 > - включено и < 0 > - выключено, что отличается от использования этой же опции в x264. Использование флага +qp_rd допустимо только при включённом mbd значением не ниже, чем 2. Так же при кодировании mpeg2video допустимо использование матриц распределения квантов, или проще - матриц квантования, примеры установки которых описаны ниже, включая информацию по ссылке.

  • Установка матриц квантования - Intra и Inter кадров для кодеков MPEG-2, MPEG-4, DivX, XviD. Ниже представлена дефолтная (Default) матрица квантования от известного и качественного кодировщика TMPGEnc. Стандартная матрица квантования MPEG-2 отличается от неё лишь тем, что все значения < -inter_matrix > состоят из числа 16.
  • Крайне не рекомендовано использовать матрицы квантования при кодировании в x.264, который имеет свою адаптивную матрицу распределения квантов.
Ключи параметров FFmpeg для Аудио

Пример применения -af: ускорение темпа на 4%: < -af atempo=1.0427083 >. (точность растяжения <atempo> для перевода с 23.976 до 25 fps пока не достаточна, может это исправят в будущем, проверяйте в новых релизах).

Работа с аудио для видео
  • Расщепление многоканальной аудиодорожки фильма 5.1 на 6 каналов - 6 моно файлов, средствами FFmpeg. Для расщепления используется функция < -filter_complex > из раздела сайта справки FFmpeg-filtersFiltergraph-description . Пример расщепления аудиодорожки с перекодированием в pcm.wav:
  • Создание многоканальной аудио дорожки 5.1 из 6 моно файлов (каналов). Где цифры обозначают очерёдность каналов в исходной папке, по принципу - "как они лежат":

Каналы на выходе конфигурируются по следующей схеме: FL, FR, FC, LFE, SL, SR - и соответственно в строке задания 1.0\,2.0\,0.0\,3.0\,4.0\,5.0

  • Изменение скорости воспроизведения аудиодорожки при переводе видео с 23,976 fps до 25 fps. Смотрите в разделе "Применение".
Демультиплексация средствами FFmpeg
  • Для демультиплексации многопотокового видеофайла используется функция < -map > для обозначения составных (stream)стрим-потоков, исходного файла с несколькими аудио дорожками. Для начала дадим команду <ffmpeg -i> для файла в терминале, чтобы извлечь информацию о всех потоках(stream) нашего видеофайла:
  • Далее формируем строку извлечения потоков в нужную нам директорию и запускаем её в терминале:
  • Если вам нужно вытащить лишь одну дорожку, например аудио с перекодированием в RAW-формат, то это можно сделать так:
Запись видео с экрана монитора средствами ffmpeg

Эту возможность так же называют, как - создание скринкастов, которая подразумевает захват видеосигнала происходящего на экране монитора. Скринкаст, буквально - отбросок экрана; отливка экрана. \\

  • Для захвата видео сигнала используется вывод графической подсистемы - X11grab. Состоит из опций:
  • Для захвата аудио сигнала, нужно сперва определить или просто выставить, если вы уже знаете - тип аудио подсистемы и тип аудио устройства, которые будут участвовать в записи звука. Узнать тип устройства можно дав команду в терминале:

Опция аудио подсистемы у вас будет своя, та которая задействована в системе. В случае неработоспособности этой опции, можно попытаться определить её методом подбора. Если в системе используется звуковой сервер PulseAudio, то опция должна выглядеть как: < -f alsa -i pulse >. Если без PulseAudio, то: < -f alsa -i /dev/dsp >

Опции для аудио:

  • Перечень всех поддерживаемых устройств и форматов вызывается командой:
  • Пример полной строки ffmpeg для записи скринкастов со звуком:

Чуть более подробно эта тема освещена здесь: [скринкастов (видео с рабочего стола)]

Прессеты FFmpeg
  • Прессеты хранятся в /usr/share/ffmpeg. Их перечень можно посмотреть через консоль, дав команду в терминале:
  • Все прессеты - это текстовые файлы. Каждый из них можно просмотреть и даже изменить, а также создать новый, свой. Вот список стандартных прессетов:
Применение

Для работы в видеоредакторах, например Avidemux, иногда бывает необходима предварительная распаковка (разжатие) видеофайла в uncompressed - raw-форматы, для более удобной и безошибочной работы с ними. Включая применение цветого субсемплинга для файла, в случаях если вы получаете - зелёный, чёрный или рябой экран при загрузке рав-файла в Avidemux. Ибо Avidemux не совсем корректно работает с рав-файлами имеющими RGB-цветность. Но хорошо понимает файлы с YUV, YV12, NV и прочими цветовыми профилями основанными на 4:2:2 и 4:2:0 типах цветности, см. - Цветовая субдискретизация

  • Разжатие видеофайла в Uncompressed:
  • Принудительное применение параметров входного цветового пространства rawvideo (полезно для совместимости с кодерами). Например libx264 может отказаться работать с yuv444p и потребовать 420p):
  • Разжатие видеофайла в Кодек Хаффмана:
  • Принудительное применение параметров входного цветового пространства huffyuv (полезно для совместимости с кодерами):
  • Параметры для закрытой GOP-структуры (closed gop) при кодировании кодеком mpeg2video в формат MPEG-2, с GOP-структурой на 13 и 15 кадров:

<code bash> -vcodec mpeg4 -mbd rd -flags +mv4+aic+qpel+qprd+mv0 -mpv_flags skip_rd -trellis 2 -cmp 2 -subcmp 2 -bf 2

  • Качественное кодирование в MPEG4, с продвинутыми настройками и лучшим качеством, - аспект 16:9:
  • Кодирование аудио из AC3 в flac:
  • Склеиваем изображения в видео:

(изображения должны иметь имена 000.jpg, 001.jpg, 002.jpg . )

  • Делаем скриншот из видео с точным указанием времени:
Ссылки

FFmpeg-wiki официальная wiki по FFmpeg

FFmpeg и FFmpeg GUIs/Frontends альтернативные ссылки на релизы, включая релизы с GUI (граф. оболочкой)

Русское описание ключей кодирования для x264.

Английское описание ключей кодирования x264, включая версии ключей для ffmpeg (устаревшая версия).

Оригинал: 20 FFmpeg Commands For Beginners
Автор: SK
Дата публикации: 10 мая 2017 года
Перевод: А. Кривошей
Дата перевода: октябрь 2017 г.

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

Стандартный синтаксис команды FFmpeg:

Далее мы рассмотрим некоторые важные и полезные команды FFmpeg.

1. Получение информации об аудио/видео файле

Для этого используется следующая команда:

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

информация о мультимедийном файле

2. Конвертирование видеофайлов в различные форматы

FFmpeg - это мощный аудио и видео конвертер, позволяющий преобразовывать медиафайлы в различные форматы. Например, чтобы преобразовать файл mp4 в avi, выполните команду:

Точно так же вы можете конвертировать медиафайлы в любой формат по вашему выбору.
Например, чтобы преобразовать видео в формате FLV из YouTube в формат mpeg, выполните:

Проверить список поддерживаемых FFmpeg форматов можно с помощью следующей команды:

3. Конвертирование видео файлов в аудио

Чтобы преобразовать видео файл в аудио, просто укажите формат вывода, например .mp3 или .ogg, либо любой другой аудиоформат.
Приведенная ниже команда преобразует видео файл file.mp4 в file.mp3.

Также вы можете использовать различные опции конвертирования, как показано ниже:

-vn – говорит о том, что мы отключили запись видео в конечный файл.
-ar – задает частоту дискретизации звука конечного файла. Наиболее широко используются значения 22050, 44100, 48000 Гц.
-ac – задает количество аудиоканалов.
-ab – задает битрейт.
-f – формат конечного файла. В нашем случае это mp3.

4. Изменение разрешения видео

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

Приведенная выше команда задает разрешение видео 1280×720.

Аналогично, чтобы преобразовать этот файл к разрешению 640×480, выполните:

5. Сжатие видео

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

Помните, что при сжатии ухудшается качество. Для его сохранения можно снизить значение crf до 23 или еще ниже.

6. Сжатие аудио.

Вы также можете сжимать аудио файлы с помощью флага -ab, чтобы освободить место на диске.
Предположим, что ваш файл имеет битрейт 320 кб/с. Вы можете сжать его, уменьшив битрейт.

Ниже список доступных битрейтов:

96kbps
112kbps
128kbps
160kbps
192kbps
256kbps
320kbps

7. Удаление из медиафайла аудиопотока.

Если вам не нужен звук в видео файле, вы можете удалить аудиопоток с помощью флага -an.

Приведенная выше команда отменяет все связанные с аудио флаги, потому что мы удаляем звук из input.mp4.

8. Удаление видеопотока из медиафайла.

Аналогично, если вам не нужен видеопоток, вы можете легко удалить его из медиафайла с помощью флага «vn». Другими словами, эта команда преобразует заданный медиафайл в звуковой файл.

Следующая команда удалит видео из медиафайла.

Вы также можете задать битрейт конечного файла с помощью флага "ab", как показано ниже.

9. Извлечение изображений из видео

Еще одна полезная функция FFmpeg - извлечение изображений из видео файлов. Например, для создания фотоальбома.
Извлечение изображений из видео файла производится с помощью следующей команды:

-r – задает фреймрейт, то есть количество извлекаемых фреймов в 1 секунде видео. Значение по умолчанию - 25.
-f – формат извлекаемого изображения.
image-%2d.jpg – задает названия для наших файлов изображений. В этом примере это имена image-01.jpg, image-02.jpg, image-03.jpg и так далее. Если вы зададите %3d, то получите имена image-001.jpg, image-002.jpg и так далее.

10. Обрезка видео

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

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

11. Конвертирование части видео

Иногда нужно конвертировать в другой формат только часть видео файла. Например, приведенная ниже команда конвертирует первые 50 секунд файла video.mp4 в файл video.avi.

Здесь мы задаем время в секундах. Также можно задавать его в формате hh.mm.ss.

12. Установка соотношения сторон видео

Вы можете задать соотношение сторон видео файла с помощью флага -aspect, как показано ниже.

Обычно используются следующие соотношения:

13. Добавление постера в аудио файлы

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

14. Вырезание части видео файла

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

–s – указывает время, с которого начинается вырезание видео, в нашем примере с 50-й секунды.
-t – указывает продолжительность нашего клипа.

15. Разрезание видео файла на несколько частей

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

Здесь -t 00:00:30 показывает, что первая часть берется от начала видео до 30-й секунды. -ss 00:00:30 задает начальную точку для второй части. То есть вторая часть берется с 30-й секунды до конца оригинального видео.

16. Объединение нескольких видео файлов

FFmpeg также позволяет объединять несколько видео файлов в один.

Создайте файл join.txt, в котором записаны пути ко всем видео файлам, которые вы хотите объединить. Все части должны иметь один формат (один кодек).

/home/sk/myvideos/part1.mp4
/home/sk/myvideos/part2.mp4
/home/sk/myvideos/part3.mp4
/home/sk/myvideos/part4.mp4

Теперь вы можете объединить их с помощью команды:

17. Добавление субтитров в видео файл

С помощью FFmpeg мы также можем добавлять субтитры в видео файл. Это делается с помощью следующей команды:

18. Тестирование видео и аудио файлов

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

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

19. Ускорение/замедление воспроизведения видео

FFmpeg позволяет вам регулировать скорость воспроизведения. Для увеличения скорости воспроизведения используется команда:

Для замедления скорости воспроизведения:

20. Получение помощи

В этом руководстве мы показали только самые основные и часто используемые команды FFmpeg. На самом деле он имеет огромное количество различных опций для реализации разных продвинутых возможностей. Найти их описание можно на man-странице:

Как конвертировать весь каталог / папку с помощью ffmpeg через командную строку или с помощью пакетного скрипта?

Предыдущий ответ создаст только 1 выходной файл с именем out.mov. Чтобы создать отдельный выходной файл для каждого старого фильма, попробуйте это.

Если вы похожи на меня и в именах файлов есть много пробелов (и несколько других проблемных символов), я бы предложил добавить двойные кавычки: ffmpeg -i "$ i" "$ name.mov"; do name=`echo "$"`; будет работать с именами файлов с точками (и пробелами) в них.

Для Linux и macOS это можно сделать в одну строку, используя расширение параметра, чтобы изменить расширение имени файла выходного файла:

Это прекрасно, спасибо! Вот полная команда, которая в итоге отлично работает для меня: для меня в * .avi; do ffmpeg -i "$ i" -c: aac -b: a 128k -c: v libx264 -crf 20 "$ .mp4"; сделано @Junaid 1) Убедитесь, что вы используете другое имя для выходного файла, чем для ввода, или выводите в другой каталог, потому что ffmpeg не можете вводить и выводить в один и тот же файл. 2) Я не уверен, что команды Bash работают на Windows 10 изначально. Возможно, я должен добавить к ответу, что он нацелен на системы, которые могут использовать Bash, такие как Linux и macOS. LXS предоставил ответ Windows на этот вопрос. Потрясающий ответ. Работает с именами файлов с пробелами тоже! Это должен быть главный ответ. По общему признанию, объяснение, почему Не простое, но если вы можете отложить это в сторону и просто «использовать», вы можете быстро изменить его в соответствии с требованиями. Например, я преобразовал сотни .mp4 (с именами файлов, имеющими пробелы и специальные символы) в меньший формат, используя: for i in .mp4; do ffmpeg -i "$ i" -s 512x288 -c: копия "$ > .m4v"; сделано Чтобы сделать еще один шаг вперед, вы можете использовать подстановку параметров Bash, если хотите заменить строку «x265» на «x264», если вы транскодируете с H.265 на H.264, что является распространенным случаем использования. for f in *.mkv; do ffmpeg -i "$f" -map 0 -movflags faststart -c:v libx264 -c:a copy -c:s copy "$"; done если вы запускаете эту команду в пакетном (.bat) файле, вам нужно удвоить знак% => %% Любая идея, как запустить эту команду, но скопировать в новый файл, который содержит метаданные исходного файла? @ Barryman9000 это было давным-давно, но я думаю, что есть опция выходного файла, которую вы могли бы передать Использовал его для удаления метаданных. Но это дает мне доступ отказано в ошибке. Поэтому я изменил имя выходного файла с дополнительным пробелом, чтобы сделать его новым файлом. FOR /F "tokens=*" %G IN ('dir /b *.mp3') DO ffmpeg -i "%G" -map_metadata -1 -c:v copy -c:a copy "%

Легко сделать однострочный сценарий bash - замените его *.avi типом файла:

Кодировщик по умолчанию для .mov - libx264 (если доступен), но этот кодировщик игнорирует -qscale . Удалите его и используйте настройки по умолчанию или используйте -crf вместо него (по умолчанию это -crf 23 ). Если в имени файла есть пробелы, команда потерпит неудачу, поскольку basename подоболочка с обратным символом не заключена в кавычки . Именно поэтому bash имеет расширение оболочки: для i в * .avi; do ffmpeg -i "$ i" -qscale 0 "$ (базовое имя" $ i ".avi)". mov; сделано спасибо @Calimo полностью согласен - я обновил свой ответ

Для преобразования с подкаталогами используйте, например,

Я использовал это, в сочетании с этим ответом, чтобы преобразовать VTT в SRT, чтобы получить отличный эффект. find -name "*.vtt" -exec ffmpeg -i <> <>.srt \; Я эту команду, с небольшим модификацией для преобразования всех mp4 в mp3: find *.mp4 -exec ffmpeg -i <> <>.mp3 \; Или, если вы хотите конвертировать файлы нескольких типов: find . -name *.ogg -or -name *.wma -exec ffmpeg -i <> <>.mp3 \; Конвертируйте все файлы wma в mp3 и после их удаления: find . -name *.wma -exec ffmpeg -i <> <>.mp3 \; -exec rm <> \;

Для Windows:

Здесь я конвертирую все (.mp4) файлы в (.mp3) файлы.
Просто откройте cmd, перейдите в нужную папку и введите команду.

Ярлык: (необязательно)
1. Перейдите в папку, где находятся ваши файлы (.mp4)
2. Нажмите Shift и щелкните левой кнопкой мыши и выберите «Открыть окно PowerShell здесь»
или «Открыть окно командной строки здесь»
3. Введите «cmd» [ПРИМЕЧАНИЕ. : Пропустите этот шаг, если он непосредственно открывает cmd вместо PowerShell]
4. Запустите команду

Если вы хотите поместить это в командный файл в Windows 10, вам нужно использовать %% i.

Для тех, кто хочет что-то пакетно конвертировать с помощью ffmpeg, но хотел бы иметь удобный интерфейс Windows, я разработал этот интерфейс:

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

Хорошо, это хороший проект! Я целый час гонялся за хвостом, пытаясь заставить ffmpeg принять относительный путь к файлу в Windows, и это похоже на обман. РЕДАКТИРОВАТЬ: я использовал это, чтобы конвертировать .xwm в

Если у вас есть GNU параллельно, вы можете конвертировать все файлы .avi ниже vid_dir в mp4 параллельно, используя все, кроме одного из ваших процессорных ядер с

Чтобы конвертировать из / в разные форматы, измените '*.avi' или по .mp4 мере необходимости. Параллель GNU указана в большинстве репозиториев дистрибутивов Linux в пакете, который обычно называется parallel .

не могли бы вы сделать то же самое, добавив ! в конец одну из строк строки bash?

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

Требуется 2 аргумента, чтобы сделать его более гибким:

  1. расширение, из которого вы хотите конвертировать
  2. новое расширение, которое вы хотите преобразовать в

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

Это конвертирует все mkv файлы в mp4 файлы.

Как видите, он немного более универсален. Пока вы ffmpeg можете конвертировать его, вы можете указать любые два расширения.

Это немного похоже на Code Golf, но так как почти все ответы пока что bash (за исключением одного одиночного cmd), вот кроссплатформенная команда windows, которая использует powershell (потому что это здорово):

Вы можете изменить * .avi на то, что соответствует исходному материалу.

Конечно, в настоящее время PowerShell пришел вместе, специально разработан , чтобы сделать что - то точно , как это очень легко.

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

Сначала вы захотите перечислить все файлы в текущем каталоге, поэтому мы начнем с:

Вы также можете использовать, ls -Recurse если вы хотите рекурсивно конвертировать все файлы в подкаталогах тоже.

Затем мы отфильтруем их по типу файлов, которые мы хотим преобразовать, например, «avi».

После этого мы передадим эту информацию в FFmpeg через ForEach .

Для ввода FFmpeg мы будем использовать FullName - это полный путь к файлу. А для вывода FFmpeg'овской библиотеки мы будем использовать Name - но заменяя .avi на конце .mp3 . Итак, это будет выглядеть примерно так:

Итак, давайте соберем все это вместе, и вот результат:

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

Вы можете сделать еще один шаг и добавить Remove-Item в конец, чтобы автоматически удалять старые файлы.

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

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

1. Изменить формат и качество записи;
2. Изменить разрешение и битрейт для видео и аудио;
3. Нарезать фрагменты записи на отдельные записи;
4. Замедлить и ускорить воспроизведение видео и аудио;
5. Склеить видео и аудио в единый файл;
6. Удалить аудио из видео, а также извлечь аудио из видео.

(Более подробную информацию см. в шаге №5).

С ЧЕГО НАЧАТЬ?

Шаг №1. Скачиваем программу на Windows

Шаг №2. Установка программы

Этот шаг требует особого внимания, так как работа с FFMPEG происходит через командную строку, поэтому разберём по пунктам алгоритм установки FFMPEG:

pymxzcqr6dy

zgakvfxg9la

fmdibh4iqxe

y81jsa6nx-m

y8h_zk7bq_m

%d0%b1%d0%b5%d0%b7%d1%8b%d0%bc%d1%8f%d0%bd%d0%bd%d1%8b%d0%b9

5. Нажимаем на «Дополнительные параметры системы» и заходим в «переменные среды»;

kg0byuk-jh0

6. Находим в окошке «системные примененные» пункт «Path», нажимаем «изменить»;

uu7ln5kvcqq

7. В появившемся окне нажимаем на кнопку «создать» и указываем путь к файлу ffmpeg. Для этого переходим в папку с ffmpeg и кликаем на строчку, выделенную красным (см. на картинке), после чего нажмите сочетание клавиш Ctrl+C;

alsokr3uyce

tsw5ewb0cv0

8. После того, как нажали клавишу «Создать» (1), вставляем скопированное в строку (2) и нажимаем на «Ок» (3).

6swtiav37ug

Шаг №3. Запускаем программу

1) Если вы используете ОС Windows10, то вам достаточно нажать на значок «поиск»(лупа) и ввести английскими буквами «cmd»:

80vzrx8dcwi

(Прим. Если же Вы используете более ранние версии Windows (7,8), то Вам нужно зайти в меню «пуск» и строка «поиск» будет в самом низу).

2) Далее, заходим в командную строку и проверяем – работает ли программа. Для этого вводим: ffmpeg, после чего нажимаем кнопку Enter. Если Вы всё сделали правильно, у Вас будет примерно следующий отклик в командной строке:

aqd8fvhao8w

(Прим. Если же у Вас появляются строки красного цвета, то вероятно – Вы сделали что-то не так. Попробуйте повторить алгоритм по новой).

Шаг №4. Используемые файлы

Для начала работы с видео-файлом необходимо, чтобы файл находился в директории доступных дисков. Например: имеется видео-файл «Testovii File.mp4». Я расположил его прямо на диск D.

adewyi-9jq

Таким же образом разместите остальные файлы, с которыми вы собираетесь работать в ffmpeg.

Либо, если не хотите перетаскивать файл, вам нужно будет скопировать путь к файлу(об этом позже).

(Прим. Рекомендуется использовать английские буквы в названии файлов, с которыми собираетесь работать)

Теперь с файлами можно работать.

Запускаем командную строку. Как правило, по умолчанию в командной строке указан путь к корневой папке, например:

mtnqxyasbxi

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

После чего нажимаем Enter и видим, что теперь у нас отображается Диск D:

5ru6wyjoyvu
0c4bdd1ycay

Теперь мы можем начать работать с файлами. Любая команда начинается со слова ffmpeg в строке:

yfzwtulib1g

Далее будет представлен ряд простых команд, где input.mp4 – название исходного видео-файла; input.mp3 – название исходного аудио-файла; output.format – название полученного файла; а ключ «–i» -это то, что необходимо прописывать перед обрабатываемым файлом (input.mp4/input.mp3).

Шаг №5. Основные команды

1) Для того, чтобы перевести видео в другой видеоформат:

ffmpeg –i Z\input.avi output.mp4

2) Для того, чтобы перевести видео в аудио:

ffmpeg –i Z\input.mp4 output.mp3

(Прим. – Если появляется красная строка при нажатии ENTER, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)

3) Для того, чтобы вырезать фрагмент из видео:

Способ : 1 – обрезать концовку.

ffmpeg -i input.mp4 –t 00:00:00 output.mp4

(Прим. -t 00:00:00 – указывается время продолжительности видео от начала)

Способ : 2 – вырезать кусок из любой точки.

ffmpeg -ss 00:00:00 -i input.mp4 -t 00:00:00 output.mp4

(Прим. –ss 00:00:00 – указывается время начала желаемого куска; -t 00:00:00 – указывается время продолжительности желаемого куска;

Если появляется красная строка, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)

P.S Применимо как к видео, так и к аудио файлам!

4) Команда для склеивания пустого видео файла и аудио файла:

ffmpeg -i input.mp3 -i input.mp4 output.mp4

(Прим. Если вы используете разные по длительности файлы, то у них вседа будет совпадать начало, а длительность конечного файла будет равна самому длинному исходному файлу, пример:

Аудиофайл.mp3 – длительность 00:05:00 + Видеофайл.mp4 – длительность 00:03:00 = финальный файл.mp4 – длительность 00:05:00)

5) Команда для удаления аудио из видео:

ffmpeg -i input.avi -vcodec copy –an output.avi

6) Команда для ускорения/замедления видео:

ffmpeg –i input.avi -vf setpts=X*PTS output.avi

7) Команда для ускорения/замедления аудио:

(Прим. X значение больше нуля – ускорение; X значение меньше нуля (0.5;0.8) – замедление)

8) Команда для ускорения/замедления файла с аудио и видео:

(Прим. X больше 1 – замедление; X меньше 1 – ускорение;

Y значение больше нуля – ускорение; Y значение меньше нуля (0.5;0.8) – замедление)

9) Для того, чтобы изменить параметр «качество»:

ffmpeg -i input.avi -q X output.avi

(Прим. X от 23 до 50, где 50 – минимальное качество; данная опция помогает уменьшить размер файла)

ffmpeg -i input.mp4 -crf X output.mp4

10) Для того, чтобы изменить Битрейт:

Для аудио: ffmpeg -i input.mp4 -b:a 128k output.mp4

(Прим. Где 128k– цифра, обозначающая размер битрейта)

11) Для того, чтобы изменить разрешение видео:

ffmpeg -i input.mp4 -s X output.mp4

Для общего сжатия видео:

13) ffmpeg -i input.mp4 -codec:a copy -vcodec libx264 -preset fast -crf 32 output.mp4

В этой статье были рассмотрены:

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

Мы же предоставили краткий мануал по основным возможностям, и надеемся, что этот материал окажется полезным для наших пользователей!

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