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

./ffprobe -v error -show_streams -show_format -select_streams a:0
 -show_entries "stream=codec_name,bit_rate,channels,sample_rate : format=duration"
 -of default=noprint_wrappers=1 Song.mp3

С помощью этой команды вы можете увидеть значение arg show_entries, я включаю только codec_name, bit_rate, channel и sample_rate.

Однако вывод (см. Ниже) включает эту нежелательную хрень DISPOSITION = xyz, о которой я не просил в своем аргументе "show_entries". Какой набор опций / аргументов исключит этот материал DISPOSITION = xyz из моего вывода?

Я прочитал документацию по ffprobe, но это не очень легко понять, и я не смог найти то, что хотел.

ПРИМЕЧАНИЕ. - Я знаю, что могу перенаправить вывод этой команды в grep -v, но это не вариант для меня, так как я буду запускать эту команду как дочерний процесс из моего приложения, и мне нужно, чтобы это было эффективно - grep означает запуск другого процесса ... не вариант.

Другими словами, мне нужно сделать это только с ffprobe и ffprobe.

codec_name=vorbis
sample_rate=44100
channels=2
bit_rate=240000
DISPOSITION:default=0       // DON'T WANT THIS :(
DISPOSITION:dub=0           // DON'T WANT THIS :(
...
DISPOSITION:timed_thumbnails=0       // DON'T WANT THIS :(
TAG:ALBUM=Healing Music for Reiki 1
TAG:ARTIST=Aeoliah
TAG:DATE=1995
TAG:FMPS_PLAYCOUNT=1
TAG:FMPS_RATING_AMAROK_SCORE=0.235
TAG:GENRE=New Age
TAG:TITLE=Souls In Ecstacy
TAG:track=2
duration=1682.506667

1 ответ1

1

Это потому что у вас есть -show_streams . Кроме того, для отображения тегов вам не нужен -show_format .

использование

./ffprobe -v error -select_streams a:0
 -show_entries "stream=codec_name,bit_rate,channels,sample_rate : format=duration : format_tags : stream_tags"
 -of default=noprint_wrappers=1 Song.mp3

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