Итак, у меня есть следующий видеопример
Stream #0:0(jpn): Video: h264 (High 10), yuv420p10le(progressive), 1920x1036 [SAR 1:1 DAR 480:259], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.0(side), fltp, 640 kb/s (default)
Stream #0:2(jpn): Audio: ac3, 48000 Hz, 5.0(side), fltp, 640 kb/s
Stream #0:3(eng): Subtitle: ass (default)
Metadata:
title : English Signs & Songs
Stream #0:4(eng): Subtitle: ass
Metadata:
title : English Subtitles
Stream #0:5: Attachment: ttf
Metadata:
filename : PutoInsanity.ttf
mimetype : application/x-truetype-font
Я хочу использоватьffprobeдля подсчета количества видеопотоков и аудиопотоков, что в данном случае должно мне дать1и2соответственно, как этого можно достичь?
решение1
Такой функции нет, но вы можете использовать ffprobe
дополнительные инструменты, такие как uniq
(и sort
при желании) для обработки выходных данных.
Перечислите количество типов потоков
ffprobe -v error -show_entries stream=codec_type -of default=nw=1:nk=1 input.mkv | uniq -c
1 data
1 video
1 attachment
8 subtitle
6 audio
Просто выведите номер для определенного типа потока
Или пошаговый метод. Этот пример показывает, сколько аудиопотоков существует:
ffprobe -v error -select_streams a -show_entries stream=index -of csv=p=0 input.mkv | wc -w
2
Принятые значения для -select_streams
:
v
видеоV
видео (за исключением прикрепленных изображений, миниатюр видео или обложек).a
аудиоs
субтитрыd
данныеt
вложения