Получение информации о файле с помощью ffmpeg, объектный файл распознается как Audio? - PullRequest
0 голосов
/ 27 октября 2011

Я тестирую программу на C ++, которая должна выполнить итерацию в каталоге и найти все мультимедийные файлы.Я использовал процедуру итерации, и для каждого файла я пытался использовать функции libav, чтобы открыть файл, такой как av_find_stream_info, чтобы найти информацию о потоке.Он отлично работает с мультимедийными файлами, такими как видео и изображения, но проблема в том, что он распознает некоторые файлы как аудио или видео, например, он видит аудиопоток внутри файла .o!Я также пытался использовать av_read_frame, и он работал нормально, без ошибок!Я хотел бы избежать фильтрации по расширению, есть ли другое решение для поиска "воспроизводимых" файлов?

Спасибо

1 Ответ

1 голос
/ 27 октября 2011

Это темное искусство. Вы должны исключить некоторые часто встречающиеся типы файлов, которые могут маскироваться под медиа-файлы. Вам нужен пакет, который уже выполнил всю работу за вас, это пакет file и его компонент libmagic. (Ваша платформа может уже иметь его. Если это UNIXy, попробуйте man 3 libmagic или посмотрите, есть ли у вас пакет file-devel.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...