ffprobe возвращает кодек type=video для изображений и текстовых файлов

у меня есть каталог с множеством файлов разных типов и я хочу узнать кодек каждого видеофайла. Это хорошо работает с этой командой:

$ ffprobe -v error -select_streams v -show_entries stream=codec_name,codec_type -of default=noprint_wrappers=1 video-file
codec_name=hevc
codec_type=video

но, к сожалению, я также получаю результат для JPG и текстовых файлов:

$ ffprobe -v error -select_streams v -show_entries stream=codec_name,codec_type -of default=noprint_wrappers=1 file.jpg 
codec_name=mjpeg
codec_type=video
$ ffprobe -v error -select_streams v -show_entries stream=codec_name,codec_type -of default=noprint_wrappers=1 file.txt
codec_name=ansi
codec_type=video

файлы явно не видео файлов. Ну, я мог бы отфильтровать расширения файлов или занести в черный список эти имена кодеков. Но это не есть правильно с ffprobe?

30
задан Alexander Bösecke
23.11.2022 1:32 Количество просмотров материала 2619
Распечатать страницу

2 ответа

FFmpeg - это прежде всего процессор синхронизированных образцов мультимедиа. Изображение-это видеопоток, состоящий из одного кадра. Проверка на pipe in format=format_name вход ваш лучший выбор для обнаружения изображений.

насколько текстовые файлы идут, ffmpeg преобразует .txt содержание к видеоизображению, и codec_type указывает на декодированный тип потока. Вы можете проверить format_name снова tty.

2
отвечен Gyan 2022-11-24 09:20

С помощью комментария Гьяна я создал эту маленькую функцию для раковины рыбы.

function gvc --description 'Get the video codec of a file if the file is a video' --argument file
    if test -f "$file"
        set format (ffprobe -v panic -select_streams v -show_entries format=format_name -of default=nokey=1:noprint_wrappers=1 $file)
        if test -n "$format" -a "$format" != "image2" -a "$format" != "tty"
            echo (ffprobe -v error -select_streams v -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 $file)
        end
    end
    return $status
end
0
отвечен Alexander Bösecke 2022-11-24 11:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх