2

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

ffmpeg.exe -i.\test.avi

Результат будет в соответствии с этим;

FFmpeg версия SVN-r26400, Copyright (c) 2000-2011 разработчики FFmpeg
построено 18 января 2011 04:07:05 с gcc 4.4.2

Кажется, что частота кадров кодека потока 0 отличается от частоты кадров контейнера: 30000.00 (30000/1) -> 15.00 (15/1) Вход № 0, avi, из «test.avi»:
Длительность: 00: 27: 46.60, старт: 0,000000, битрейт: 154 кбит / с. Поток # 0.0: видео: mpeg4, yuv420p, 320x240 [PAR 1: 1 DAR 4: 3], 15 кадров в секунду, 15 тб, 15 тбит, 30 тыс. tbc Stream # 0.1: аудио: mp3, 24000 Гц, 2 канала, s16, 40 кбит / с. Необходимо указать как минимум один выходной файл

Теперь то, что я ищу руководство для всех сокращений и возможных имен, чтобы мое регулярное выражение не могло нарушиться. Например, mpeg4, mp3, 2 channel, mono, список поддерживаемых форматов и их названия. Я просмотрел документацию FFmpeg, но не могу найти именно то, что хочу

Спасибо за любую помощь!

1 ответ1

6

Существует инструмент, который поставляется с ffmpeg, который гораздо лучше подходит для того, что вы пытаетесь сделать: ffprobe. Используя опцию -show_streams , гораздо удобнее выполнять регулярное выражение (по умолчанию одна пара ключ = значение на строку, и она выводится в стандартный вывод). Чтобы показать информацию обо всех потоках:

ffprobe -i input.file -show_streams

Вы также можете просмотреть информацию о конкретных потоках с -select_streams .

##  shows information about all video streams:
ffprobe -i input.file -show_streams -select_streams v
##  shows information about the first audio stream:
ffprobe -i input.file -show_streams -select_streams a:0

Чтобы просмотреть информацию о формате контейнера, используйте -show_format

Проверьте документацию для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .