Полезные команды Ffmpeg. FFmpeg как консольный видеоредактор FFmpeg: удаление звуковой дорожки
ffmpeg действительно мощный видеокодер/декодер. Он работает в командной строке, а не в графическом интерфейсе. Командная строка - это то черное окно, которое вы найдете, щелкнув и набрав cmd , затем нажмите enter. Это также называется «командной строки». После настройки вы вводите команды ffmpeg в одном из этих окон, чтобы использовать его.
Вот основные шаги, чтобы «установить» и использовать его:
Установка
ffmpeg теперь «установлен». Командная строка теперь распознает команды ffmpeg и попытается запустить их.
Обновление FFmpeg
Чтобы обновить FFmpeg, просто вернуться на страницу загрузки в шаге 1 и загрузите файл почтового индекса. Распакуйте файлы и скопируйте их поверх старых файлов в папке, созданной на шаге 2.
Использование FFmpeg
Использование FFmpeg требует, чтобы вы открыть окно командной строки, а затем введите FFmpeg определенные команды. Вот типичная команда FFmpeg:
Ffmpeg -i video.mp4 -vn -ar 44100 -ac 1 -b:a 32k -f mp3 audio.mp3
Эта команда состоит из четырех частей:
- ffmpeg - Эта команда сообщает CMD, что мы хотим запустить FFmpeg команды. cmd сначала ищет ffmpeg.exe в одной из папок с шага 6 в разделе «Установка». Если он найден, он попытается выполнить команду.
- -i video.mp4 - Это входной файл. Мы будем работать над этим файлом.
- -vn -ar 44100 -ac 1 -b:a 32k -f mp3 - Это «аргументы». Эти символы похожи на мини-команды, которые точно определяют, что мы хотим делать. В этом случае говорится, что нужно создать mp3-файл из источника ввода.
- -vn - Оставьте из видеопотока
- -ar 44100 - Определяет аудио разрешение в герцах.
- -ac 1 - Аудиоканалы, только 1. Это эффективно «сделать моно».
- -b:a 32k - Битрейт аудио, установлен на 32 кбит/с.
- -f mp3 - Принудительное преобразование MP3. Без этой команды ffmpeg пытается интерпретировать то, что вы хотите, на основе расширения, которое вы используете в имени выходного файла.
- audio.mp3 - Это выходной файл.
Как вы можете догадаться, эта короткая команда делает аудиофайл MP3 из файла MP4.
Чтобы выполнить эту команду, если у вас есть файл MP4, чтобы попробовать это на, выполните следующие действия:
- Нажмите клавишу Windows + R.
- Тип cmd затем введите.
- Изменить путь к файлу, над которым вы хотите работать. Тип cd . Он должен выглядеть примерно как cd C:\Users\name\Desktop\ .
- Теперь введите команду ffmpeg с именем вашего входного файла. Команда будет работать с некоторой обратной связью. Когда это будет сделано, cmd будет доступен для большего количества команд.
Это основной способ использования ffmpeg. Команды могут быть намного сложнее, но это только потому, что у программы столько энергии. Используя the ffmpeg documentation , вы можете узнать все команды и создать очень мощные скрипты. После этого вы можете сохранить эти сценарии в файл.bat, чтобы вам просто нужно дважды щелкнуть файл, а не набирать всю команду каждый раз. Например, this answer contains a script that will create MP3"s from all the MP4"s in a folder . Затем мы будем комбинировать мощность ffmpeg с мощностью cmd, и это приятное место, когда вам нужно делать профессиональное видео/аудио кодирование в горных файлах.
Перевод весьма кривой, но представление об опциях получить можно.
FFMPEG (1) FFMPEG (1)
НАИМЕНОВАНИЕ
FFmpeg - FFmpeg видео конвертер
СИНТАКСИС
FFmpeg [[Опции_входного_файла] [-i INFILE ]]... {[Опции_выходного_файла] OUTFILE} ...
ОПИСАНИЕ
Как правило, применяются параметры на любой указанный файл.
Таким образом, порядок важен, вы можете использовать одну и ту же опцию в
Командной строке несколько раз. В каждом случае применяются к
Входному или выходному файлу.
* Чтобы установить видео битрейт выходного файла в 64 Кбит / с:
FFmpeg -i input.avi -b 64K output.avi
* Чтобы установить частоту кадров выходного файла до 24 кадров в секунду:
FFmpeg -i input.avi -r 24 output.avi
* Чтобы установить частоту кадров входного файла (действителен только для сырых форматов)
1 кадр в секунду, а частоту кадров выходного файла 24 кадра в секунду:
Ffmpeg -r 1 -i input.m2v -r 24 output.avi
Опции формата могут быть необходимы для входных файлов.
По умолчанию, FFmpeg пытается преобразовать без потерь, в качестве возможного образца он
Использует те же аудио и видео параметры выхода как и у входа.
ВАРИАНТЫ ОПЦИЙ
*Общие опции*
Эти опции доступны из инструментов ffmpeg *.
L Показать лицензии.
H, -?,-help, --help.
Показать справку.
Version
Показать версию.
Formats
Показать доступные форматы.
Поля предыдущего формата имеют следующие значения:
D декодирование доступно
E Кодировка доступна
Codecs
Показать доступные кодеки.
Поля названия кодеков, имеют следующие значения:
D декодирование доступно
E Кодировка доступна
V / A / S
Видео / аудио / субтитров кодек
S кодек поддерживает ломтики
D Кодек поддерживает прямой рендеринг
T кодек может обрабатывать входные усечения в случайных местах, а не
Только в границе кадров
Bsfs
Показать доступных битов фильтров.
Protocols
Показать доступные протоколы.
Filters
Показать доступные libavfilter фильтры.
Pix_fmts
Показать доступные форматы пиксела.
LogLevel LogLevel
Установить уровень ведения журнала используется библиотека LogLevel, число или
Строка, содержащая одно из следующих значений:
Quiet
Panic
Fatal
Error
Warning
Info
Verbose
Debug
Основные опции:
F fmt
Группа форматов.
I файла
Входное имя файла
У Переписать выходной файл.
T Продолжительность
Ограничить транскодирование / захватывание видео последовательности с длительностью,
Которое указываются в секундах. "Чч: мм: [. XXX] SS" синтаксис также поддерживается.
Fs limit_size
Устанавливает предельный размер файла.
Ss позиция
Стремитесь данный момент положение в считанные секунды. "Чч: мм: [. XXX] SS" Синтаксис
Также поддерживается.
Itsoffset
Установите входное смещение по времени в секундах. "[-] Чч: мм: сс ". Синтаксис
Также поддерживается. Этот параметр влияет на все входные файлы, которые
Следовавшие за ним. К смещению добавляется метки из входных
Файлов. Указание положительного смещение означает, что соответствующие
Потоки с задержкой "compensation" секунд.
Timestamp время
Установить метку.
Metadata Значение метаданных <ключ ="значение">
Устанавливает метаданные в паре ключ / значение.
Например, для установки титул в выходной файл:
FFmpeg -i in.avi -metadate Title = "мой титул" out.flv
V число
Установить регистрации уровень подробности.
Target Целевого типа
Укажите целевой тип файла ("VCD", "SVCD", "DVD", "DV", "DV50",
"PAL-VCD", "NTSC-SVCD", ...). Все варианты формата (битрейт,
Кодеков, размер буфера) при этом устанавливается автоматически. Вы можете просто
Указать тип:
FFmpeg -i myfile.avi -target VCD /tmp/vcd.mpg
Тем не менее вы можете указать дополнительные параметры, как вы знаете
Они не конфликтуют со стандартными, как и в:
FFmpeg -i myfile.avi -target VCD -bf 2 /TMP/vcd.mpg
Dframes число
Устанавливает число кадров данных для записи.
Scodec кодек
Группа субтитров кодека ("copy", чтобы скопировать поток).
Newsubtitle
Slang код
Устанавливает код языка ISO 639 (3 буквы) из текущей строки
Потока.
Параметры видео
B битрейт
Устанавливает скорость передачи видео в бит/с (по умолчанию = 200 Кб/с).
Vframes число
Устанавливает число кадров видео для записи.
R fps
Устанавливает частоту кадров (Гц значения, доли или аббревиатура), (по умолчанию =
25).
S размер
Устанавливает размер кадра. Формат WxH (ffserver по умолчанию = 160x128, ТВМ-
Привязки по умолчанию = такие же, как и исходного). Следующие сокращения
Признаны:
SQCIF
128x96
QCIF
176x144
352x288
4CIF
704x576
16cif
1408x1152
QQVGA
160x120
QVGA
320x240
640x480
SVGA
800x600
1024x768
UXGA
1600x1200
QXGA
2048x1536
SXGA
1280x1024
Qsxga
2560x2048
Hsxga
5120x4096
WVGA
8520x480
WXGA
1366x768
WSXGA
1600x1024
WUXGA
1920x1200
Woxga
2560x1600
Wqsxga
3200x2048
Wquxga
3840x2400
Whsxga
6400x4096
Whuxga
7680x4800
320x200
640x350
Hd480
852x480
Hd720
1280x720
Hd1080
1920x1080
Aspect аспект
Устанавливает соотношение сторон (4:3, 16:9 или 1,3333, 1,7777).
Croptop размер
Установить верхний размер группы культур (в пикселях).
Cropbottom размер
Устанавливает нижний размер группы культур (в пикселях).
Cropleft размер
Обрезать левую полосу (в пикселях).
Cropright размер
Установить правильный размер группы культур (в пикселях).
Padtop размер
Установите верхнюю площадку размером группы (в пикселях).
Padbottom размер
Установить нижний размер группы панели (в пикселях).
Padleft размер
Левый размер площадки (в пикселях).
Padright размер
Установить правильный размер группы площадки (в пикселях).
Padcolor hex_color
Установить цвет проложенной полосы. Соотношение padcolor выражается как
Шесть цифр шестнадцатеричного числа, где первые две цифры представляют
Красный, две средние цифры зеленого и последние две цифры синий (по умолчанию
000000 (черный)).
Отключить запись видео.
Bt толерантности
Установите скорость передачи видео (в битах, по умолчанию 4000K). С минимальным и
Максимальным значением: (target_bitrate / target_framerate). В 1-проходном режиме,
Битрейт толерантности определяет, как далеко <битпоток> готов делить
С битрейтом среднее значение цели. Это не связано с
Мин / макс битрейтом. Снижение толерантности слишком негативно влияет
На качество.
Maxrate битрейт
Установить максимальную скорость передачи видео (в бит / с). Требуется что бы
Bufsize быть установлен.
Minrate битрейт
Установить минимальный видео битрейт (в бит / с). Самые полезные в создании кодирования:
FFmpeg -i myfile.avi -b 4000K -minrate 4000k -maxrate 4000K -bufsize 1835k out.m2v
Это мало пользы elsewise.
Bufsize размер
Устанавливает видео буфер верификатор размера буфера (в битах).
Vcodec кодек
Вызовите видео кодек для кодека. Используйте "copy" что бы задать особое значение с
RAW Codec данные должны быть скопированы, как есть.
Sameq
Использование качество видео в качестве источника (подразумевает VBR).
Pass n
Выберите передать номер (1 или 2). Он используется, чтобы передавать видео
Кодировки. Статистика видео записываются в первом
Перейти в лог-файл (см. также опцию -passlogfile), а в
Второй проход, что лог-файл используется для создания видео,
Точное запрошенный битрейт. На проход 1, вы можете просто отключить звук
И установить выход к нулю, примеры для Windows и Unix:
FFmpeg -i foo.mov -vcodec libxvid -pass -an -f rawvideo -y NULL
FFmpeg -i foo.mov -vcodec libxvid -pass -an -f rawvideo -y /dev/null
Passlogfile префикса
Установить двухпроходной имя файла журнала префикса имени файла по умолчанию
Префикс `` ffmpeg2pass"". Полное имя файла будет PRE-
FIX-N.log, где N это номер конкретной в выходной поток.
Newvideo
Добавить новый поток видео на текущий выходной поток.
Vlang код
Установите ISO 639 код языка (3 буквы) текущего видео
Потока.
Функции Advanced Video
Pix_fmt формат
Установить формат пикселей. "list" используется в качестве параметра для отображения
Всех поддерживаемых пиксель форматов.
Sws_flags флаги
Установить SwScaler флаги.
G gop_size
Установить группы размер фотографии.
Intra
Используйте только внутри кадра.
Vdt n
Отмена порога.
Qscale q
Использование фиксированного масштаба видео (VBR).
Qmin q
Минимальный масштаб видео (VBR)
Qmax q
Максимальный масштаб видео (VBR)
Qdiff q
Максимальная разница между квантователя веса (VBR)
Qblur размытия
Видео квантователя масштаб размытия (VBR) (диапазон 0,0 - 1,0)
Qcomp сжатия
Масштаб сжатия видео(VBR) (по умолчанию 0,5). Постоянная
Lmin лямбда
Минимальный коэффициент Лагранжа видео (VBR)
Lmax лямбда
Максимальный видео множитель Лагранжа (VBR)
Mblmin лямбда
Минимальный масштаб квантователь макроблоков (VBR)
Mblmax лямбда
Максимальный масштаб квантователь макроблоков (VBR)
Эти четыре варианта (Lmin, Lmax, mblmin, mblmax) единиц "lambda" использования,
Но вы можете использовать значение постоянной QP2LAMBDA легко конвертировать из "Q"
Единиц:
Ffmpeg -i src.ext-Lmax 21 * QP2LAMBDA dst.ext
Rc_init_cplx сложности
Начальные сложности для прохода одной кодировки
B_qfactor-фактор
Qp фактором между P- и B-кадром
I_qfactor-фактор
Qp фактором между Р- и I-кадром
B_qoffset смещение
Qp смещение между P- и B-кадром
I_qoffset смещение
Qp смещение между Р- и I-кадром
Rc_eq уравнения
Установить курс управления уравнение (по умолчанию = "text ^ qComp").
Rc_override переопределить
Контроль переопределение скорости в определенные промежутки времени
Me_method метод
Установить метод оценки движения к методу. Доступные методы
(От самого низкого до самого лучшего качества):
Zero
Попробуйте просто (0, 0) вектор.
Phods
Epzs
(По умолчанию метод)
Full
Исчерпывающий поиск (медленно и незначительно лучше, чем epzs)
Dct_algo алгоритм
Установить DCT алгоритм. Возможные значения:
0 FF_DCT_AUTO (по умолчанию)
1 FF_DCT_FASTINT
2 FF_DCT_INT
3 FF_DCT_MMX
4 FF_DCT_MLIB
5 FF_DCT_ALTIVEC
Idct_algo алгоритм
Установить IDCT алгоритм. Возможные значения:
0 FF_IDCT_AUTO (по умолчанию)
1 FF_IDCT_INT
2 FF_IDCT_SIMPLE
3 FF_IDCT_SIMPLEMMX
4 FF_IDCT_LIBMPEG2MMX
5 FF_IDCT_PS2
6 FF_IDCT_MLIB
7 FF_IDCT_ARM
8 FF_IDCT_ALTIVEC
9 FF_IDCT_SH4
10 FF_IDCT_SIMPLEARM
Er n
Установить устойчивость к ошибкам n:
1 FF_ER_CAREFUL (по умолчанию)
2 FF_ER_COMPLIANT
3 FF_ER_AGGRESSIVE
4 FF_ER_VERY_AGGRESSIVE
Ec bit_mask
Установить маскировки ошибок в bit_mask. bit_mask маски имеют
Следующие значения:
1 FF_EC_GUESS_MVS (по умолчанию = включено)
2 FF_EC_DEBLOCK (по умолчанию = включено)
Bf кадров
Используйте "frame" B-кадрах (поддерживаются MPEG-1, MPEG-2 и MPEG-4).
Mbd режим
Решения макроблоков
0 FF_MB_DECISION_SIMPLE: Используйте mb_cmp (не может изменить его еще в mmpeg).
1 FF_MB_DECISION_BITS: Выберите один, требующий меньшее количество
Бит.
2 FF_MB_DECISION_RD: соотношение сигнал-шум
Используйте четыре вектора движения на макро блоки (только MPEG-4).
Part
Использование секционирования данных (только MPEG-4).
Bug параметра
Обходить ошибки кодировщика, которые автоматически не обнаружены.
Strict строгости
Как строго следовать стандартам.
Включить расширенные внутри кодирования (h263 +).
Включить Неограниченные векторы движения (h263 +)
Deinterlace
Deinterlace фотографии.
Ilme
Группа поддержки в переплетении кодера (только MPEG-2 и MPEG-4). Используйте
Эту опцию, если входной файл с чересстрочной разверткой или вы хотите сохранить
Чересстрочный формат с минимальными потерями. Альтернативой является
Деинтерлейсинг входного потока с -deinterlace, но деинтерлейсинга
Вводит потерь.
Vstats
Дамп кодирования видео статистики vstats_HHMMSS.log.
Vstats_file файл
Дамп кодирования видео статистики в файл.
Top N
Вверху = 1/bottom = 0/auto =- 1 поле первое
Dc точности
Intra_dc_precision.
Vtag FourCC / теги
Вызовите видео теги / FourCC.
Qphist
Показать QP гистограммы.
Vbsf bitstream_filter
Bitstream_filter являются:
Dump_extra
Remove_extra
Noise
H264_mp4toannexb
Imxdump
Mjpegadump
*Аудио Функции*
Aframes aframes
Установить число кадров аудио записи.
Ar частота
Установите частоту дискретизации звука (по умолчанию = 44100 Гц).
Ab битрейт
Установить аудио битрейт в бит / с (по умолчанию = 64K).
Aq Q
Установите качество звука (кодек конкретных, VBR).
Ac каналы
Установите число аудио каналов (по умолчанию = 1).
An Отключить запись звука.
Acodec кодек
Группа аудио кодек для кодека. Используйте "copy" особое значение для указания
Что RAW Codec данные должны быть скопированы, как есть.
Newaudio
Добавить новую звуковую дорожку в выходной файл. Если вы хотите задать
Параметров, сделать это до надо примерно так: "-newaudio" ("-acodec", "-ab" и т.д..).
Отображение будет сделано автоматически, если количество выходных потоков
Равна числу входных потоков, иначе он будет выбирать до первого совпадения.
Вы можете изменить отображение с помощью "-map"
Как обычно.
Пример:
FFmpeg -i file.mpg -vcodec copy -acodec AC3 -ab 384k test.mpg -acodec MP2
Ab 192K -newaudio
Alang-код
Установите ISO 639 код языка (3 буквы) текущего аудио
Поток.
Advanced Audio вариантов:
Atag FourCC / теги
Группа тэг аудио / FourCC.
Absf bitstream_filter
Bitstream_filter являются:
Dump_extra
Remove_extra
Noise
Mp3comp
Добавлены возможности:
Scodec
Группа кодеков субтитров ("copy", чтобы скопировать поток).
Newsubtitle
Добавить новый поток субтитров на текущий выходной поток.
Alang код
Установите ISO 639 код языка (3 буквы) из текущей строки
Потока.
Sn Отключение записи субтитров.
Sbsf bitstream_filter
Bitstream_filer являются:
Mov2textsub
Text2movsub
Ffmpeg -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt_
* Аудио / Видео варианты захвата*
Vc канал
Установить канал видео захвата (только DV1394).
Tvstd стандарт
Установите телевизионный стандарт (NTSC, PAL (SECAM)).
Isync
* Дополнительные параметры:*
Map input_stream_id [: sync_stream_id]
Установить поток отображение входных потоков в выходные потоки. Просто enu
Merate входных потоков в порядке, вы хотите их на выходе.
Sync_stream_id если указанные множества входного потока для синхронизации против.
Map_meta_data OUTFILE: INFILE
Перенос мета-данных информации от INFILE в OUTFILE.
Debug
Печатать конкретную информацию отладки.
Benchmark
Показать сравнения информации в конце кодирования. Показывает процессор
Время используются и максимальное потребление памяти. Максимальный объем памяти потребления,
(не поддерживается на всех системах). Если он не поддерживается выдается как 0.
Dump
Дамп каждого входного пакета.
Используется когда нужен сброс пакетов, а также свалки полезной нагрузки.
Bitexact
Используется только немного точные алгоритмы для тестирования кодека.
Ps Размер
Установить RTP размер полезной нагрузки в байтах.
Устройства.
Loop_input
Цикл для входного потока. В настоящее время он работает только для потоков
Изображений. Эта опция используется для автоматического тестирования ffserver.
Loop_output number_of_times
Неоднократные петли выхода для форматов, которые поддерживают циклы, таких как
Аминирование GIF (0 будет петли выхода бесконечно).
Threads кол
Нити
VSync параметр
Видео метод синхронизации:
0 Каждый кадр и его метка передается от демультиплексора на мультиплексор
1 Кадры будут дублироваться и выбрасываться для достижения постоянной частоты кадров.
2 Кадры проходят через свои метки или выбрасываются чтобы предотвратить прохождение 2х
Кадров через одну метку.
1 Выбирает между 1 и 2 в зависимости от возможностей мультиплексора
Вы можете выбрать, из которого потока метки и они должны быть
Приняты. Вы можете оставить либо видео или аудио без изменений и синхронизации
Остальные поток (ов) к неизменным.
Async samples_per_second
Аудио метод синхронизации."Расширяет / сжимает" аудио поток в сеансе метки,
Значение максимального количества отсчетов в секунду, в которые звук изменялся.
Async 1 является частным случаем, где меняется только начальный аудио поток без
Каких-либо последующих изменений
Copyts
Копировать метки от входа до выхода.
Shortest
Готово кодировку при кратчайшие входного потока заканчивается.
Dts_delta_threshold
Timestamp разрыва дельта порога.
Muxdelay секунд
Установить максимальную задержку демультиплексированием-декодирования.
Muxpreload секунд
Установить начальную задержку демультиплексированием-декодирования.
Current файлов
Заданный файл содержит последовательность пары параметр = значение, по одному для каждой
Линии, с указанием последовательности вариантов, которые бы неудобно ложились
В командной строке. Строки, начинающиеся с символа ('#') хэш
Игнорируются и используются для комментариев. Проверьте ffpresets
Каталога в дереве FFmpeg источник примеров.
Текущих файлов указаны с "vpre", "apre", "spre", и "fpre"
Варианты. "Fpre" опция имеет имя файла из предустановленных вместо
Имя шаблона в качестве входных данных и может быть использован для любого вида кодека. Для
"Vpre", "apre", и "spre" опции, параметры, указанные в заданном
Файл применяются для выбранного кодека же типа,
Заданной опции.
Аргумент, передаваемый "vpre", "apre", и "spre" предустановленных параметров
Определяет заданный файл для использования в соответствии со следующими правилами:
Первый FFmpeg поиск файла с именем arg.ffpreset в каталогах
$ HOME / .ffmpeg, и в DATADIR определены во время конфигурации (обычно-
Союзника PREFIX / доли / FFmpeg) в таком порядке. Например, если аргумент
Является "libx264-макс", он будет искать файл libx264-max.ffpreset.
Если такой файл найден, то FFmpeg будет искать файл с именем
Codec_name-arg.ffpreset в вышеупомянутых каталогов, где
Codec_name это название кодека для которых предустановленных параметров файла
Будет применяться. Например, если вы выбираете видео кодек
"-Vcodec libx264" и использовать "vpre-макс", то он будет искать файл
Libx264-max.ffpreset.
@ Якорь {FFmpeg формула оценщика}
FFmpeg формула оценщика
При оценке строку контроля скорости, FFmpeg использует внутренние формулы
По оценке.
Следующие бинарные операторы доступны: "+", "-", "*", "/", "^".
Следующие унарные операторы доступны: "+", "-", "(...)".
Следующие инструкции доступны: "LD", "ST", "а".
Доступны следующие функции:
Sinh (х)
Cosh (х)
Tanh (х)
Sin (х)
COS (X)
Тan (х)
Atan (х)
Asin (х)
Acos (х)
Ехр (х)
Log (х)
Abc (X)
Squish (х)
Gauss (х)
Mod (х, у)
Mах (х, у)
Мin (х, у)
Eq (х, у)
Gte (х, у)
Gt (х, у)
Lte (х, у)
Lt (х, у)
Bits2qp (биты)
Qp2bits (QP)
Следующие константы доступны:
ITex
PTex
FCode
ICount
McVar
AvgQP
QComp
AvgIITex
AvgPITex
AvgPPTex
AvgBPTex
AvgTex
ПРИМЕРЫ
Видео и аудио захвата
FFmpeg можете захватить видео и аудио с устройств при условии, что вы укажете
Формат входных и устройства.
Ffmpeg -f OSS -i /dev/DSP -f video4linux2 -i /dev/video0 /tmp/out.mpg
Обратите внимание, что вы должны активировать права источника видеосигнала и канала до
Запуск ffmpeg с любой телезритель, таких как XawTV ( Sex.org / XawTV />) Герд Knorr. Вы также должны установить аудио записей
ING уровнях правильно с стандартного микшера.
X11 захвата
Ffmpeg -f x11grab -х CIF -i: 0,0 /tmp/out.mpg
Переменная среды.
Ffmpeg -f x11grab -х CIF -i: 0.0 +10,20 /tmp/out.mpg
0,0 представляет display.screen номер вашего сервера X11, так же как DISPLAY
Переменная среды. 10, X-смещение и 20 Y-смещение для
Захват.
Видео и аудио файлов формата преобразования
* FFmpeg можно использовать в любом из поддерживаемых форматов файлов и протоколов в качестве входных данных:
Примеры:
* Вы можете использовать YUV файлы в качестве входных данных:
Ffmpeg -i /tmp/испытание% d.Y /tmp/out.mpg
Она будет использовать файлы:
/ Tmp/test0.Y, / tmp/test0.U, / tmp/test0.V,
/ Tmp/test1.Y, / tmp/test1.U, / tmp/test1.V, и т.д. ..
У файлов использовать в два раза разрешение U и V файлов. Они сырья
Файлов, без заголовка. Они могут быть вызваны все порядочные видео
Декодеров. Вы должны указать размер изображения с S-вариант, если
FFmpeg не может догадаться.
* Вы можете ввести от сырья файл YUV420P:
Ffmpeg -i /tmp/test.yuv /tmp/out.avi
Test.yuv это файл, содержащий сырья плоских YUV данных. Каждый кадр COM-
Поставленные в плоскости Y следуют U и V самолетов на половине вертикальной
И горизонтальное разрешение.
* Вы можете вывести на сырье файл YUV420P:
Ffmpeg -i mydivx.avi hugefile.yuv
* Вы можете установить несколько файлов входных и выходных файлов:
FFmpeg -i /tmp/a.wav -х 640x480 -i /tmp/a.yuv /tmp/a.mpg
Конвертирует аудио a.wav файл и сырья видео YUV файл a.yuv в MPEG
Файл a.mpg.
* Вы также можете сделать аудио-и видео-преобразования в то же время:
Ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
Преобразует a.wav аудио MPEG при частоте дискретизации 22050 Гц.
* Вы можете кодировать несколько форматов в то же время и определить карту-
Пинг из входного потока в выходной потоки:
Ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0, 0:0 -map
Преобразует a.wav к a.mp2 при 64 кбит и b.mp2 в 128 кбит. '-map
Файл: индекс "указывает, какие входного потока используется для каждого выхода
Поток, в целях определения выходных потоков.
* Вы можете перекодировать расшифрованы VOB-файлы:
Ffmpeg -i snatch_1.vob -f AVI -vcodec MPEG4 -b 800к -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi
Это типичный пример копирования DVD; вход файл VOB,
Выходной файл AVI с MPEG-4 видео и MP3 аудио. Отметим, что в этом
Команда используется B-кадрах так MPEG-4 поток DivX5 совместимы, и
Республиканская партия размер составляет 300, что означает один внутри кадра каждые 10 секунд
29.97fps видеовход. Кроме того, аудиопоток MP3-кодированных так
Вам необходимо включить поддержку LAME, передав "- включить -libmp3lame" к
Настроить. Отображение особенно полезна для DVD транскодирования в
Получить желаемый язык аудио.
ПРИМЕЧАНИЕ: Чтобы увидеть поддерживаемых входных форматов, использование "FFmpeg-форматов".
* Вы можете извлекать изображения из видео, или создать видео из многих
Изображения:
Для извлечения изображений из видео:
Ffmpeg -i foo.avi -r 1 -s WxH -f -image2 Foo% 03d.jpeg
Это позволит извлечь один кадр в секунду из видео и будет
Выход их в файлы с именем Foo-001.jpeg, Фу-002.jpeg и т.д. Изображения будут
Быть пересчитаны для подходят новые значения WxH.
Если вы хотите извлечь только ограниченное число кадров, можно использовать
Выше команды в сочетании с -vframes или -t вариант, или в ком-
Бинации -ss начать извлечение из определенный момент времени.
Для создания видео из многих изображений:
Ffmpeg -f image2 -i -foo -%03d.jpeg -r 12 WxH foo.avi
Синтаксис "foo-03d.jpeg%" указывает на использование десятичной номер, состоящий
Из трех цифр дополняются нулями, чтобы выразить порядковый номер. Это
Это же синтаксис поддерживается функция Е С, но только форматы
Принимать нормальные целое подходят.
* Вы можете поместить много потоков того же типа, на выходе:
Ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy
Acodec copy test12.avi -newvideo -newaudio
В дополнение к первым видео и аудио потоков, в результате выхода
Test12.avi файл будет содержать второе видео и второй аудио
Поток найти в списке входных потоков.
"Newvideo", "-newaudio" и "-newsubtitle" варианты должны быть
Указанного сразу после имя выходного файла, в который вы
Хотите добавить их.
ТАКЖЕ
Ffserver (1), ffplay (1) и документации HTML из FFmpeg.
ffmpeg — набор библиотек с широкими возможностями. С его помощью можно в том числе конвертировать аудио и видеозаписи в различные форматы. В комплекте есть libavcodec для кодирования аудио и видео. Как же пользоваться ffmpeg? Для начала его надо скачать. Свежая сборка для Windows есть , пакеты для Debian — . В посте будет описана работа с ffmpeg в Windows. После загрузки архива из него нужно распаковать содержимое папки bin в какое-нибудь удобное место. Там три файла — ffmpeg.exe, ffplay.exe, ffprobe.exe. Вероятнее всего, вам понадобится только ffmpeg.exe. ffplay — простой плеер с возможностью использования библиотек ffmpeg, ffprobe — инструмент для анализа потока. Чтобы было удобнее — положите файл, который надо перекодировать, в папку рядом с файлом ffmpeg.exe (или наоборот, переместите исполняемый файл ffmpeg к видеофайлу). Теперь нужно запустить командную строку в файле — для этого нажимайте Shift+ПКМ
(правая кнопка мыши), в контекстном меню выбирайте «Открыть командную строку здесь» («Open command window here»). На этом подготовка закончена, в запущенную командную строку требуется ввести команду для запуска кодирования. Во всех командах, показанных ниже, под IN
будем понимать входной файл, а под OUT
— выходной. Результат будет примерно таким: При этом цифра в команде определяет профиль формата: Кстати, местами возможно просто написать входной файл, и необходимый формат выходного файла. Например, так: Ffmpeg -i IN.avi OUT.mpg
Дорожка будет сохранена в формате MP3. Ffmpeg -i IN.mov -vn -ar 44100 -ac 2 -ab 192 -f mp3 OUT.mp3
Добавить в видео свой звук тоже можно: Ffmpeg -i AUDIO.wav -i IN.avi OUT.mpg
Вообще говоря, с помощью google можно найти команду почти на любой случай. А еще можно прочесть мануалы и разобраться, как эти самые команды составляются — там все совсем не сложно. Следует иметь ввиду, что кодирование видео зачастую отнимает много ресурсов процессора. Твитнуть В 2000 году программист с ником Gerard Lantau выложил для всеобщего использования исходники проекта FFmpeg. За годы концепция осталась прежней: В то время 500 мегагерц в компьютере считались нормой, требовалась максимальная оптимизация, поэтому в FFmpeg своя реализация видеокодеков, оптимизированная для скорости. Это нужно и сейчас, особенно на серверах видеохостингов, где идёт постоянная борьба за снижение энергопотребления, чтобы процессоры не грелись. FFmpeg прочно стоит на ногах - почти каждый день вносятся правки в исходный код. Добавляются новые компоненты. Например, плеер FFplay и утилита для получения информации FFprobe. FFmpeg разрабатывается под Linux. Если на сайте видите окошко с трансляцией видео - 9 шансов из 10, что оно работает благодаря FFmpeg и FFserver. Версия FFmpeg (и FFserver) для Windows тоже существует,
но часть функциональности будет недоступна. Впрочем, это не мешает работать видеоконвертеру MediaCoder (www.mediacoderhq.com) и плееру На выбор есть 32- и 64-битные версии. Для кодирования видео выбирайте 64-битную Static-версию (ссылка вида «Download FFmpeg git-*** 64-bit Static
«). Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы - программа закрывалась сама по себе. Возможно, потому что FFserver для Windows - 32-битный, есть несовместимость. FFserver на Windows
тоже существует, хотя об этом мало кто знает. Программу трудно скомпилировать, потому что используется много специфичного для Linux кода. Разработчики системы видеонаблюдения Xeoma оказались молодцы, потому что выложили свой FFserver для Windows на своем сайте: http://felenasoft.com/xeoma/ru/ffserver/
Не забудьте скачать cygwin1.dll
оттуда же. Про FFserver в Интернете много инструкций. Они написаны на примере Linux-версии, но прекрасно работают под Windows. Единственное отличие - файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.
2.
Создайте на диске C:
папку ffmpeg
и распакуйте туда архив. Для установки ffmpeg этого достаточно. Советую выполнить пункт 4 для удобства в будущем. 3.
Если нужно настроить трансляцию, в папку c:\ffmpeg\bin
распакуйте ffserver
и положите файлик cygwin1.dll
. 4.
Чтобы в командах не писать каждый раз полный путь к программе, можно добавить его в переменную PATH: Панель управления - Система - Дополнительные параметры системы -
вкладка Дополнительно - Переменные среды
- в конце строки переменной Path
добавьте «;c:\ffmpeg\bin
» без кавычек. Если там было пусто (что не совсем нормально), то «c:\ffmpeg\bin
«, т.е. без точки с запятой в начале. Потом перезагрузите компьютер, чтобы изменения вступили в силу. Вы можете пропустить четвертый шаг, но потом вместо команд ffmpeg и ffserver придется писать полный путь «c:\ffmpeg\bin\ffmpeg.exe» и «c:\ffmpeg\bin\ffserver.exe».
На главной странице FFmpeg красуется надпись: Человек, не знакомый с командной строкой, будет в ступоре. Куда вводить команду? Если не хотите заморачиваться, просто воспользуйтесь бесплатной или платной FFmpeg, как микроскоп, нужна для тонких задач, не для забивания гвоздей.
В папке ffmpeg\doc
собрано много примеров по использованию компонентов, все команды можно посмотреть там. Имена файлов у вас будут свои. Если есть пробелы или на русском - обрамляйте имена в кавычки. Отобразить информацию о файле: или ffprobe video.mp4
Пережать видео avi в mp4: Пережать mov в flv и изменить разрешение: Пережать видео в webm среднего качества, звук формата OGG: Пережать видео кодеком MPEG4, звук - mp3, контейнер - avi: Добавить звуковую дорожку к видео («-acodec libmp3lame» можно выкинуть, тогда ffmpeg сам решит, как кодировать звук): Добавить звуковую дорожку без перекодирования видео (сохраняет качество, работает быстро): Как видно из примеров, команды ffmpeg имеют структуру: Если не указывать опции кодирования, для результирующего файла ffmpeg будет пытаться использовать параметры исходного, чтобы сохранить максимум качества. Информационные (чтобы узнать возможности установленной версии)
-L
-h, -?, -help, -help
-version
-formats
В Windows не хватит строк в командной строке для показа всего списка, для исправления откройте свойства окна и на вкладке «Расположение» поставьте высоту буфера экрана в 500. В списке буквы D и E означают поддержку декодирования и кодирования. -codecs
-bsfs
-pix_fmts
Основные опции
-loglevel значение
или -v значение
Уровень логгирования. От минимума - quiet до максимально подробного debug. Полный список: quiet, panic, fatal, error, warning, info, verbose, debug. Полезно, если в процессе кодирования видео происходят ошибки и нужно узнать подробности. -f значение
(mp4, avi, mkv, gif и т.д.) Указать определенный формат (контейнер) файла. Обычно FFmpeg выбирает по расширению выходного файла, но можно переназначить. -i путь_до_файла
Команда для указания входящего файла или потока (например, rtmp://адрес для захвата потокового видео). -y
-ss время
Указывает, с какого
времени нужно кодировать видео/аудио. Формат в виде «чч:мм:сс». Подробнее: https://trac.ffmpeg.org/wiki/Seeking -t время
Указать, до какого
времени нужно кодировать видео/аудио. Вместе с предыдущей командой удобно использовать для вырезания отрезка видео. -fs размер
Опции кодирования видео
-b значение
-vframes значение
Количество кадров, которые нужно кодировать. -r значение
-s размер
Указание, в каком разрешении кодировать видео. Например, 1920×1080 для FullHD видео на выходе. FFmpeg понимает буквенные сокращения (vga, hd480, hd720, hd1080 и другие). -aspect соотношение_сторон
Указать соотношение сторон видео (4:3, 16:9 or 1.3333, 1.7777 и т.д.). Как известно профессионалам, в видео пиксели могут быть прямоугольными. -croptop значение
, -cropbottom значение
, -cropleft значение
, -cropright
значение
Обрезка количества пикселей видео сверху, снизу, слева или справа. -padtop значение
, -padbottom значение
, -padleft значение
, -padright значение
Добавление границы видео сверху, снизу, слева или справа. -padcolor hex_color
Цвет границы в шестнадцатеричном формате (#000000 - черный, #FF0000 - красный и т.д.). -vn
-bt значение
Значение задает максимальное отклонение от указанного битрейта. Может не работать, в зависимости от кодека. -maxrate битрейт
Указывает максимальное значение битрейта. Требует указания размера буфера через -bufsize. -minrate битрейт
Минимальный битрейт у видео. Часто используется для принудительного задания определенного битрейта: ffmpeg -i video.avi -b 4000K -minrate 4000K -maxrate 4000K -bufsize 1835k video-out.mp4
-bufsize размер
Устанавливает размер буфера видео. Упрощенно говоря, это кусок видео, который FFmpeg анализирует и выбирает - какие битрейты выбрать в его пределах. В первую очередь нужно для потокового вещания: чем больше буфер, тем больше стабильности при кодировании. -vcodec кодек
Выбор кодека (см. команду -codecs
для списка кодеков). Можно указать copy
, тогда FFmpeg будет копировать видеопоток без перекодирования. Сохранять качество исходной картинки/звука. Это не то же самое, что -vcodec copy
. Сохраняется качество видео, кодек может быть любым, видеодорожка перекодируется. -pass n
Для многопроходного кодирования видео. Указывает, какой делать проход (1 или 2). Префикс имени файла со статистикой указывается командой -passlogfile значение
.
Можно отключить обработку звука при первом проходе, чтобы экономить время и ресурсы: Опции звука
-aframes количество
Сколько фреймов звука (да, у звука есть кадры!) нужно кодировать. -ar частота
Указание частоты звука (по умолчанию 44100 Гц). -ab битрейт
Битрейт (по умолчанию = 64K). -aq значение
Указание качества (зависит от кодека, применяется при переменном битрейте). -ac число
Количество аудиоканалов (по умолчанию 1). Не кодировать звук. -acodec кодек
Указание кодека для звука. Значение copy
позволяет копировать звуковую дорожку без перекодирования -newaudio
Добавление еще одной звуковой дорожки. Ее параметры указываются до команды -newaudio: ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio
Субтитры
-scodec кодек
Кодек для субтитров (copy
- для прямого копирования). -newsubtitle
Добавление еще одних субтитров. -slang код
Указание языка субтитров в стандарте ISO 639 (3 буквы). Отключение субтитров. Другие команды
-threads количество
Количество потоков для кодирования видео. Опцию следует применять только на многоядерных ПК и то с оглядкой, читая документацию к выбранному кодеку. -vsync значение
Синхронизация кадров. Значения: 0 - каждый кадр передается из входного в результирующий файл с той меткой времени, которая у него была. 1 - кадры будут дублироваться или удаляться, чтобы сохранить требуемую частоту кадров. 2 - кадры будут пропускаться или удаляться, чтобы сохранить требуемую частоту кадров. 1 - значение по умолчанию. FFmpeg выбирает сам между методами 1 и 2. С помощью команды -map
можно указать, что к чему будет подстраиваться. Подробности: https://trac.ffmpeg.org/wiki/Map -async кадры_в_секунду
Выбор метода синхронизации звука. Чтобы звук и видео совпадали по времени, аудиодорожка может растягиваться и сжиматься. Значение 1 скорректирует звуковую дорожку только в самом начале по принципу «дальше будь что будет». Применяется для принудительного копирования всех временных меток из исходного файла. Полезно в случае, если начало видео - не 00:00, а что-то другое и это нужно сохранить. -shortest
Когда самый короткий входящий файл закончился, прекращение кодирования. Еще команд?
Команды для FFmpeg смотрите здесь: http://help.ubuntu.ru/wiki/ffmpeg
(на русском). https://ffmpeg.org/ffmpeg.html
(официальная документация). Для кодирования кодеком x264, который сейчас приобрел популярность, гляньте это: http://wiki.rosalab.ru/ru/index.php/FFmpeg
(на русском, есть примеры). Они нужны для полного контроля процесса обработки файлов с видео и звуком. Большинство пользователей конвертируют видео, не понимая, что важен не только кодек для сжатия, но и его параметры. Есть нюансы, которые непросто осознать начинающим пользователям. Например, файл с расширением «mp4» не обязательно содержит в себе видео с кодеком MPEG4. Если есть какие-то вопросы по FFmpeg - спрашивайте в комментариях. Помогу, чем смогу. FFmpeg - это набор библиотек для обработки видео и аудио файлов. FFmpeg сконвертирует mov в mp4, наложит водяной знак, склеит несколько видео файлов в один, поменяет разрешение, перекодирует потоковое видео, создаст поток сам. FFmpeg полезен для тех, кто профессионально работает с видео, разрабатывает медиа приложения или просто обрабатывает домашние записи. FFmpeg не имеет графического интерфейса и управляется командами из консоли. Многие пользователи работают с ним, копируя нужные команды из интернета, не понимая, что значит тот или иной флаг. Научимся осознанно работать с FFmpeg на примере нескольких полезных команд. Сегодня мы пройдем путь от получения информации о файле до применения нескольких фильтров одновременно, решая задачи, с которыми часто сталкиваешься при работе с видео. Установим ffmpeg и вперед! Тут все просто, вводим путь к файлу, получаем информацию о нем: кодеки, количество дорожек, разрешение, битрейт и фреймрейт. Мы указываем пути к файлам флагом -i (input): I file1.mp4 -i file2.mp4 . Допустим у нас есть сайт, на котором видео проигрывалось через Flash плеер. Мы хотим поменять его на HTML5 Video. Для этого конвертируем видео файлы на сервере из flv формата в mp4. Список поддерживаемых вашим ffmpeg кодеков можно получить через ffmpeg -codecs . Вместо -vcodec встречается запись -codec:v и -c:v . Если не указать кодеки для конвертации ffmpeg -i flashvideo.flv output.mp4 , то ffmpeg установит дефолтные кодеки для формата файла на выходе . При конвертации задают не только кодеки. Увеличим число настроек: Ffmpeg -i flashvideo.flv -b:v 700k -r 25 -pix_fmt yuv420p
-vcodec libx264 \
-b:a 128k -ar 44100
-acodec libvo_aacenc -y
output.mp4
Мы установили битрейт для видео -b:v и аудио -b:a в 700 и 128 кб/c. Битрейт можно обозначить другими флагами: -vb и -b для видео или -ab для аудио. Оставшиеся три параметра - это фреймрейт -r 25 в кадрах в секунду, цветовая модель YUV равная обычному значению yuv420p и частота дискретизации звука 44100 Гц. Флаг -y нужен для перезаписи файла, если он уже существует. Флагом -ss указываем с какого момента исходного видео обрезаем, -t - продолжительность. На выходе мы получим двадцати секундное видео, которое начнется с десятой секунды исходного. Запись -ss 00:00:10.250 -t 00:00:20.120 пригодится для указания более точного промежутка времени. До версии 2.1 FFmpeg в обоих случаях обрезал видео по ближайшему ключевому кадру . В новых версиях итоговое видео максимально близко к указанному интервалу. Мы добавили -vcodec copy -acodec copy , чтобы сохранить кодеки исходного видео. Иначе ffmpeg перекодировал бы их в кодеки по умолчанию. Сейчас видео не перекодируется и команда выполнится быстро. Дальше упростим эту запись флагом -c copy . Если расположить флаги -ss и -t после входящего видео, то итоговое видео будет таким же, но команда будет выполняться дольше. Флаги будут относиться к итоговому видео и FFmpeg будет декодировать фрагмент видео до -ss . В первом случае эта часть будет проигнорирована. Флаг -t можно заменить на -to , указав вместо продолжительности конечную точку. Этот флаг нельзя применить к входящему видео: Ffmpeg -ss 10 -i source_video.mp4 -to 30 -c copy
result.mp4
Команда дала нам другой результат: тридцати секундное видео с десятой секунды исходного. Это произошло, потому что -to использовал временную шкалу result.mp4 , тридцатая секунда на котором равна сороковой секунде source_video.mp4 . Чтобы использовать исходную шкалу добавим флаг -copyts . Так мы получим такое же видео, как от первой команды: Ffmpeg -ss 10 -i source_video.mp4 -to 30 -copyts
-c copy result.mp4
Один из самых мощных инструментов ffmpeg - фильтры. Они могут добавлять эффекты, накладывать разные видео друг на друга, сшивать несколько файлов в один. Увидеть список установленных фильтров мы можем по команде ffmpeg -filters . Изменим с их помощью разрешение видео: Ffmpeg -i source_video.avi -vf scale=640:480
source_preview.avi
Мы использовали флаг -vf , указав фильтр scale и разрешение 640:480 . Этот фильтр может
сохранять пропорции и вычислять разрешение динамически . Мы объединили несколько фильтров в один флагом filter_complex и получили ускоренный в два раза файл. Чтобы разобраться применим фильтры по одиночке. Ffmpeg -i source_video.mp4 -vf setpts=0.5*PTS
accelerated_video.mp4
Мы ускорили воспроизведение видео дорожки фильтром setpts . Однако аудиодорожка не изменилась, и файл получится той же продолжительности что и был: видео проиграется в 2 раза быстрее, а последний кадр будет висеть всю вторую половину файла. Если убрать аудио дорожку флагом -an , то длительность итогового файла будет определяться по видео дорожке и будет в два раза меньше исходной. Наоборот, если нужна только ускоренное аудио без видео, воспользуемся фильтром atempo , а флагом vn уберем видео дорожку. Ffmpeg -i source_video.mp4 -af atempo=2.0 -vn
accelerated_audio.mp3
Добавив filter_complex и применив оба фильтра, мы ускорили файл целиком. Выполним ту же операцию другим методом: Ffmpeg -f concat
-i list.txt -c copy output.mp4
В FFmpeg есть элементы, которые читают или записывают медиа в определенных форматах. Они называются демультиплексор и мультиплексор . -f concat - это демультиплексор, который принимает текстовый файл, со списком медиа файлов и склеивает их в один. Посмотреть другие элементы можно командой ffmpeg -formats . Содержимое list.txt: File "input1.mp4"
file "input2.mp4"
Такой метод удобен, если у нас много файлов и надо склеить их друг за другом. Он не перекодирует видео и работает быстрее первого метода. Но первый метод применяется чаще. Во-первых, он может принять на вход видео с разными кодеками. Во-вторых, дает большую гибкость. Например, если нужна только часть первого видео, мы можем воспользоваться флагами -ss и -t . Обратите внимание, эти флаги действуют только на первый файл input1.mp4 . Ffmpeg -ss 5 -t 2 -i input1.mp4 -i input2.mp4 \
-filter_complex " concat=n=2:v=1:a=1 [v] [a]" \
-map "[v]" -map "[a]" -y result.mp4
Последний пример, который мы рассмотрим - это наложение водяного знака. Фильтр overlay принимает на вход координаты расположения водяного знака на итоговом видео. Расположим водяной знак по центру. Зная размер исходного видео и png картинки, можно вычислить координаты самим. Например при видео 1280×720 и водяном знаке 200×200, положение по горизонтали x = (1280 - 200) / 2 = 540 и по вертикали y = (720 - 200) / 2 = 260 . Соответственно значение фильтра "overlay=540:260" . Однако удобнее написать универсальную команду, чтобы ffmpeg посчитал все за нас. Размер видео получим из параметров main_w и main_h , а водяного знака из overlay_w и overlay_h . Далее ту формулу, по которой мы вычисляли координаты запишем в значение фильтра "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" . Готово, мы получили команду для наложения водяного знака по центру: Ffmpeg -i source_video.mp4 -i watermark.png \
-filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2"
\
-codec:a copy video_protected.mp4
ТвитнутьКак запустить ffmpeg?
Полезные команды ffmpeg
Получение информации о видеофайле
ffmpeg -i IN.mov
Конвертация mxf в ProRes
ffmpeg -i IN.mxf -c:v prores -profile:v 1 -c:a copy OUT.mov
Извлечь звук из видео
История FFmpeg
Где скачать FFmpeg и FFserver
Как установить FFmpeg
Как пользоваться FFmpeg
Примеры
Структура
Команды
Показать текст лицензии.
Список доступных команд.
Узнать версию ffmpeg.
Показать список доступных форматов контейнеров (не кодеков!).
Список доступных кодеков. Кроме интуитивно понятных D и E (Decoder для «чтения» и Encoder для кодирования), видны следующие обозначения:
V - кодек для видео, A - для звуковых дорожек, S - субтитров, I - только для кодирования I-фреймов, L - кодек сжимает с потерями данных (большинство), S - без потери данных (сохраняет качество, сжимает слабо).
Показать поддерживаемые bitstream filters (фильтр потока данных), которые нужны в ряде случаев для правильной обработки потока данных.
-protocols
Показать доступные протоколы. Из выдаваемого списка понятно, что в качестве входных данных может использоваться RTMP поток (видеотрансляция) и многое другое, не только файлы. Как выходные - тоже.
-filters
Доступные фильтры видео и аудио. В FFmpeg их громадное
количество. Кроме банальных поворота и настроек яркости, в FFmpeg есть расширение стереобазы, генерирование фракталов и прочее, прочее. Подробные инструкции - в doc/ffmpeg-filters.html.
Доступные цветовые форматы. FFmpeg понимает громадное количество цветовых пространств. Полезно для тех, у кого оборудование выдает странные цвета.
Перезаписывать уже существующий выходной файл без запроса.
Лимит выходного файла. Например, при -fs 10M
кодирование останавливается, как только выходной файл станет 10 Мб размером. Поддерживаются K, M, G (килобайты, мегабайты и гигабайты).
Устанавливает битрейт
видео. Выше битрейт - лучше качество и больше размер файла. Указывайте в конце цифры K или M, чтобы программа понимала, в килобитах/сек или мегабитах/сек значение.
Указание частоты кадров.
Не кодировать видео.
ffmpeg -i video.mp4 -vcodec libxvid -pass 1 -an -f rawvideo -y NUL
Почему команд так много?
Получаем информацию о файле
ffmpeg -i file.mp4
Конвертируем в mp4
Вырезаем фрагмент видео
ffmpeg -ss 10 -t 20
-i source_video.mp4 -vcodec copy -acodec copy result.mp4
Фильтры. Меняем разрешение
Объединение фильтров. Ускоряем воспроизведение
ffmpeg -i source_video.mp4 \
-filter_complex "setpts=0.5*PTS;atempo=2.0"
accelerated.mp4
Водяной знак