Библиотека для обработки видео- и аудиофайлов FFmpeg
ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. В ней есть полезные и удивительные команды, покрывающие почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.
Для работы с изображениями есть несколько утилит (IrfanView,Nconv...), для обработки видео и аудио тоже есть, FFmpeg - одна из них. Я думаю обсуждение будет интересным в плане интеграции утилиты с Total Commander, а также с другими средствами автоматизации...
Основные ключи: ———————————————————————————— -i (file) — исходный файл видео; -vcodec — для указания видеокодеков(например libx264), -acodec — для аудиокодека(например mp3), -c:v copy — копия означает "Копировать все видеопотоки без перекодирования" -c:a copy — копия означает "Копировать все аудио потоки без перекодирования" -s (size) — для размера кадра, указывается как Ширина x Высота (WxH), -r — устанавливает количество кадров, генерируемых в буфере кадров FPS (по умолчанию — 25 кадров), -b — для битрейта видео, -f — формат видео на выходе (например flv); -ar — для частоты дискретизации звука(должна быть кратна 11кГц, например - 22050 ), -ab — для битрейта аудио (например 32k) -ac — количество каналов звука (например 2) -g — плотность ключевых кадров (по ним осуществляется перемотка, чем плотнее (1- каждый кадр ключевой) — тем лучше для перемотки, но значительно вырастает размер файла), если значение равно FPS(-r), то ключевой кадр вставляется каждую секунду (так по умолчанию); -vframes — ограничение на количество кадров видео(например 100); -y — перезаписать файл, если он уже существует; -vn — отключение записи видео -an -— отключение записи аудио -ss — указывается начальная позиция в секундах; также поддерживается формат "hh:mm:ss[.xxx]" -t — ограничивается продолжительность преобразования / захвата, указываемая в секундах; также поддерживается формат "hh:mm:ss[.xxx]". -vf — применение фильтров к входному потоку (Просмотреть, какие фильтры доступны можно командой: ffmpeg -filters). -qscale - поддержание качества обрабатываемого видеопотока, может принимать значения от 0 до 15 ( -qscale 0 "0" -— сохраняет качество).
В этой теме будут обсуждаться параметры FFmpeg, а готовые кнопки будут выкладываться в теме:
Доработал создание картинки в виде красиво оформленного текста из буфера обмена, посредством утилиты imagemagick Она довольно тесно связанна с утилитой FFmpeg и даже содержит её в базовом пакете. Позволяет дополнительно расширить обработку анимации gif и создавать спец эффекты для изображений. Доступно только для пользователей Добавить в TCIMGU.ini свой путь Доступно только для пользователей и выбрать загруженный шрифт указав к нему путь - например Доступно только для пользователей Для создание картинки с красивым Русским текстом, - нужно подключить любой из шрифтов взятых например с этого сайта Хотя многие шрифты поддерживаю Русский и Английский набор. Пример:
Доброго времени суток! А как выставить JointStereo? Я смотрю тут или моно -ac1 или стерео -ac2...
Цитата
-ar — для частоты дискретизации звука(должна быть кратна 11кГц,
А как-же 8, 16, 32кГц? А как VAR, ABR битрейт? тут только постоянный CBR + многих параметров нет. И это только для mp3. А другие кодеки.... Или там еще куча ключей есть, специфичных для разных форматов?
Попробовал одну кнопку: "выделенные файлы в 64kbps" - в тэгах Год не отобразило. А вообще интересно, вот только если-бы погибче. + оно-ж кодит только в один поток? Есть-ли возможность задействовать все ядра? Для "файла под курсором" это без разницы, а для кнопок где "выделенные файлы" (а если их куча?) это значимо. + как насчет обработки ошибок, если например битый файл попадается, оно пропускает или вылетает процесс?
Сообщение отредактировал JKT - Четверг, 09.10.2014, 09:12
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe imgpr=1 forpgs global slist=%L <FOR> 1 <TO> GLOBALSLIST<0> listt=GLOBALSLIST<:INDEX:>||##path<4> start=FFmpeg||-i||GLOBALSLIST<:INDEX:>||-vn||-ac||2||-ar||44100||-ab||320k||-f||mp3||-joint_stereo||1||%p/GLOBALLISTT<1>_i.mp3||&&hide||&&wait <NEXT> %COMMANDER_PATH%\Wcmicons.dll,19 Для выделенных файлов установить режим JointStereo и сохранить в mp3
-1 -1
Также с вышеуказанной кнопкой можно извлекать аудио из видеофайлов в указанном формате.
Сообщение отредактировал chip642 - Четверг, 09.10.2014, 21:45
Из видеофайла под курсором вырезать фрагмент и сохранить в активной панели (начало и конец отрезка задаются в секундах, в диалоговом окне)
Код
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe imgpr=1 shape=1 start=FFmpeg||-i||%P%N||-ss||[combo=Начало~~отрезка||Введите~~время~~в~~секундах:||30|60|90|120|180|240||343||117||1||1]||-to||[combo=Конец~~отрезка||Введите~~время~~в~~секундах:||300|600|900|1200|1800|2400||343||117||1||1]||-c||copy||"%P%O"__<info=s47>.[combo=Формат~~файла||Выберите~~формат||mp4|avi|mkv|flv|ts||343||117||1||1]||&&hide||&&wait Wcmicons.dll,19 Из видеофайла под курсором вырезать фрагмент и сохранить в активной панели с именем видео файла + добавка _(текущее время и дата), время вырезаемого отрезка и формат файла задать в диалоговом окне
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe imgpr=1 start=FFmpeg||-i||%P%N||-vn||-ar||44100||-ac||2||-ab||128||-f||mp3||"%p%O".mp3||&&hide||&&wait WCMICONS.dll,1 Извлечение звука из видеофайла под курсором в формате MP3 с сохранением в активной панели с именем видеофайла
-1
Битрейт, вместо 128, можете нужный прописать.
Код
TOTALCMD#BAR#DATA %COMMANDER_PATH%\TCIMG.exe imgpr=1 start=FFmpeg||-i||%P%N||-acodec||pcm_s16le||-ac||2||"%p%O".wav||&&hide||&&wait Wcmicons.dll,2 Извлечение звука из из видеофайла под курсором в формате WAV с сохранением в активной панели с именем видеофайла