Программно определите формат видеофайла?

Вы также можете использовать агрегат:

db.accommodations.aggregate(
[
     {$project: {_id:1, name:1, zipcode:1, 
                 size_of_name: {$size: "$name"}
                }
     },
     {$match: {"size_of_name": {$gt: 1}}}
])

// вы добавляете «size_of_name» для переноса документа и используете его для фильтрации размера имени

6
задан moonshadow 21 September 2008 в 00:08
поделиться

4 ответа

mplayer -identify добьется цели. Просто вызов ffmpeg на файле будет также работать - он автоматически распечатает ряд информации в запуске о входном файле независимо от того, что Вы говорите ffmpeg на самом деле делать.

Конечно, если Вы хотите сделать это из своей программы без исполнительного вызова к внешней программе, можно просто включать avcodec библиотеки и работать, ее собственные определяют стандартную программу непосредственно.

В то время как Вы могли реализовать свое собственное обнаружение, это, конечно, будет нижним к существующим стандартным программам, учитывая абсолютно огромное количество форматов это libav* поддержки. И это был бы довольно глупый случай изобретения велосипед.

Команда "файла" Linux может также добиться цели, но объем данных, который она распечатывает, зависит от формата видео. Например, на AVI это дает все виды данных о разрешении, FOURCC, кадр/с, и т.д., в то время как для файла MKV это просто говорит "данные Matroska", ничего не говоря Вам о внутренностях, или даже форматах видео и используемых форматах аудио.

7
ответ дан 8 December 2019 в 17:31
поделиться

Вы действительно хотите, чтобы большая база данных двоичных маркеров идентификации искала около запуска файла. К счастью Ваш вопрос отмечен, "Linux" и такой обесценивать уже существуют там; файл (1) сделает задание для Вас.

1
ответ дан 8 December 2019 в 17:31
поделиться

Необходимо запустить далее по линии. Необходимо знать формат контейнера и как он указывает кодек.

Таким образом, я запустил бы с программы, которая определяет формат контейнера (не только от расширения, войдите в заголовок и определите реальный контейнер).

Затем фигура, которую контейнеры Ваша программа будут поддерживать и вставлять функции, требуемые проанализировать метаданные, сохраненные в контейнере, который будет включать кодеки.

- Adam

2
ответ дан 8 December 2019 в 17:31
поделиться

Я использовал FFMPEG в сценарии жемчуга для достижения этого.

$info = `ffmpeg -i $path$file 2>&1 /dev/null`;
@fields = split(/\n/, $info);

И просто узнайте, какие объекты в @fields необходимо извлечь.

4
ответ дан 8 December 2019 в 17:31
поделиться
Другие вопросы по тегам:

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