Швейцарский нож для обработки мультимедиа
Исследование такой области, как обработка мультимедиа, предполагает наличие инструмента, позволяющего осуществлять самые разные манипуляции с аудио и видео. В этой статье я познакомлю вас с одним таким волшебным средством.
Это утилита ffmpeg, обладающая огромными возможностями по обработке мультимедиа, поэтому мы ограничимся перечислением некоторых из них.
Начну может и не с наиболее распространенных, но важных для исследователя сигналов функций.
Генерация синусоидального звукового сигнала
Да, с помощью ffmpeg можно сгенерировать аудиосигнал с заданной частотой, длительностью, частотой дискретизации, битрейтом. Для этого можно применить команду:
ffmpeg -f lavfi -i "sine=frequency=частота:sample_rate=частота_дискретизации:duration=длительность" -b:a битрейт имя_выходного_файла
Например, чтобы создать синусоидальный сигнал частотой 1000 Гц, частотой дискретизации 44100 Гц, битрейтом 128 кб/с, длительностью
10 с, потребуется набрать:
ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=44100:duration=10" -b:a 128k sound.wav
Разбить файл на несколько частей
Для моделей машинного обучения в различных ситуациях может потребоваться разбить сигнал на несколько фрагментов (например, для увеличения размера выборки). В этом может помочь следующая команда:
ffmpeg -i путь_к_первоисточнику -f segment -segment_time время_одного_фрагмента шаблон_имени_фрагментов
Следующей командой разобьем файл s.wav на части по 10 с, с именами, начинающимися с символа s и цифрами порядкового номера во фрагменте, дополняемыми нулями до двух:
ffmpeg -i s.wav -f segment -segment_time 10 s%02d.wav
Теперь перечислим команды для осуществления наиболее распространенных действий с мультимедиа.
Просмотр информации о файле
Для этого можно воспользоваться следующей командой (флаг hide_banner предназначен для фильтрации не относящейся к файлу служебной информации):
ffmpeg -i путь_к_файлу -hide_banner
Конвертация видео в другой формат
Для конвертации видео из одного формата в другой набираем команду вида:
ffmpeg -i путь_к_первоисточнику путь_к_целевому_файлу
Следует отметить, что утилита сама определяет формат по расширению файлов.
Конвертация аудио в другой формат
Этот процесс происходит аналогично видео:
ffmpeg -i путь_к_первоисточнику путь_к_целевому_файлу
Получение аудиодорожки из видео
Для этого следует набрать команду:
ffmpeg -i путь_к_видеофайлу -vn путь_к_аудиофайлу
Также можно изменить битрейт в ходе извлечения аудио.
ffmpeg -i путь_к_видеофайлу -vn -ab битрейт путь_к_аудиофайлу
Обрезка файлов
Операция применима и для видео-, и для аудиофайлов. Опять указываются входной и выходной файл, а также в зависимости от потребности - длительность (флаг t), время старта (ss) и время окончания (to):
ffmpeg -i путь_к_первоисточнику -ss время_с -to время_с путь_к_целевому_файлу
или
ffmpeg -i путь_к_первоисточнику -ss время_с -t продолжительность путь_к_целевому_файлу
Вот такими командами ffmpeg обычно пользуюсь я. А какие аналогичные инструменты используете вы?