Вытяните Метаданные от видео в терминале

Программа знает, указаны ли файлы на ее командной строке. Это не может знать, существует ли какой-либо вход, доступный на stdin (кроме путем попытки считать его), и если там вводится, нет никакого пути к программе, чтобы знать, был ли тот вход предназначен для него. Таким образом, единственная разумная опция состоит в том, чтобы иметь четкое правило, на основе того, как программа была вызвана (параметры командной строки, переменные среды, конфигурационные файлы, …), чтобы решить, будет ли это читать из stdin или нет.

Например, типичные текстовые утилиты (cat, sort, grep, awk, perl -p, …) чтение от stdin, если никакой файл не обеспечивается и читается из указанного файла (файлов), если существует кто-либо. Интерпретаторы повинуются подобной конвенции, например sh без аргументов читает команды из стандартного входа в то время как sh script_file_name чтения управляют из указанного файла (и листы stdin, чтобы быть считанным сценарием, если он хочет). Существует также общая конвенция это если - появляется в положении, где название входного файла ожидается, программа будет читать из stdin.

Рассмотрите отрывок оболочки как

somecommand | while read line; do
  process "$line"
done

Необходимо знать ли process чтения от stdin или нет. Нет такой вещи как “тестирование, обеспечивается ли stdin”: это там, но пользователь, который вызывает программу, знает, хочет ли он, чтобы stdin был считан или нет.

22
20.05.2014, 23:01
3 ответа
[1172254] На системе, основанной на Debian (но предполагается, что в репозиториях других дистрибутивов также будет содержаться [1172620]mediainfo[1172621]):

Это изрыгнет много информации. Для получения, например, длины, разрешения, кодека и размеров используйте:

27
27.01.2020, 19:42
[1172258]Вы можете использовать exiftool. Для установки запустите:
  • Затем, чтобы получить метаданные из mp4 файла запустите:
  • Вывод, сохраненный в файле, должен быть примерно так:

    22
    27.01.2020, 19:42

    Это можно сделать с помощью проекта FFmpeg :

    ffprobe 'Breaking The Girl-EVmfXA3vjuE.mp4'
    

    Результат:

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Breaking The Girl-EVmfXA3vjuE.mp4':
      Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: isommp42
        creation_time   : 2016-10-05T03:35:07.000000Z
      Duration: 00:04:55.38, start: 0.000000, bitrate: 330 kb/s
        Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709),
          1280x720 [SAR 1:1 DAR 16:9], 200 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)
        Metadata:
          creation_time   : 2016-10-05T03:35:07.000000Z
          handler_name    : ISO Media file produced by Google Inc.
        Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp,
          125 kb/s (default)
        Metadata:
          creation_time   : 2016-10-05T03:35:07.000000Z
          handler_name    : ISO Media file produced by Google Inc.
    
    8
    27.01.2020, 19:42

    Теги

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