Не удается подключиться к моей горячей точке телефона (dell xps 13, ubuntu 17.10)

Вы можете сделать это с помощью регулярных выражений и ffmpeg, но я предпочел бы использовать exiftool, часть пакета libimage-exiftool-perl:

$ exiftool some/video.ogv | awk -F' *: *' '$1 == "Image Size"{print $2}'
1242x480

Почему exiftool ?

Утилиты ffmpeg / avprobe печатают строки вида Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 640x480, где возможно одно или несколько значений формы AAAxBBB (как вы можете видеть в вашем примере). Определение того, какой из них является разрешением, может быть затруднено. exiftool, с другой стороны, выводит данные формы Type : Value. Так что получить точное поле легче, а именно Image Size. Кроме того, с учетом того, как указаны поля (разделенные двоеточием и пробелами), вы можете легко извлечь значение.

Что делает команда exiftool :

Утилиты ffmpeg / avprobe печатают строки формы Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658), yuv420p, 640x480 где возможно одно или несколько значений формы AAAxBBB (как вы можете видеть в вашем примере). Определить, какое из них является разрешением, может быть затруднено. Проверить, что первое поле ($1) Image Size exiftool, с другой стороны, выводит данные формы Type : Value. Так что получить точное поле легче, а именно Image Size. Кроме того, с учетом того, как заданы поля (разделенные двоеточием и пробелами), вы можете легко извлечь значение.

Альтернативной версией будет:

awk '/^Image Size/{print $4}'
Проверить, является ли первое поле ($1) Image Size . Сопоставляя начало линии (^) на Image Size, мы получаем правильную строку. И мы печатаем четвертое поле (поскольку Image, Size и : - первые три поля).

0
задан 25 October 2017 в 10:21

0 ответов

Другие вопросы по тегам:

Похожие вопросы: