Использование FFMpeg для определения типа видео, конвертирование потом? - PullRequest
2 голосов
/ 22 октября 2010

Я пытаюсь определить реальный тип файла программно.Кажется, я должен использовать, например, FFMPeg для этого.

Я хочу определить, является ли загруженный файл на самом деле MP4 или FLV (для флэш-видео) [или WebM (для HTML5)].Я знаю оператор -i в FFMPeg, но не знаю, что проверять.

Например:

Input #0, flv, from 'c:\www\data.aspbooru\image\0\40c24ba424d1334ef81c88c416ce794e.flv':

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\www\data.aspbooru\image\0\8c1a747b5188349d92cca17a502d2d57.mp4':

Это выходы FFMPeg.Это все, что я должен проверить при фильтрации видео для Flash?

Итак, если ни один из них не применим.Как проверить файл SWF?

Input #0, swf, from 'c:\www\data.aspbooru\image\0\90447bd30d30ccb1474c0433e948d438.swf':
Duration: 00:07:16.08, start: 0.000000, bitrate: 63 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, 2 channels, s16, 64 kb/s
Stream #0.1: Video: flv, yuv420p, 320x240, 25 fps, 25 tbr, 25 tbn, 25 tbc

Достаточно ли проверки для Input #0, swf,?Он извлекает включенный FLV, который я не хочу.

Теперь мне также нужно проверить типы файлов, которые полностью НЕ видео, и типы файлов, которые являются видео, но могут быть преобразованы в mp4 с h.264 (или Webm?) Понятия не имею, как это сделать.

Конверсией можно управлять, но намеки на это тоже очень круто (конвертирование h.264 и webm?).

Я ввожу случайный файл.Это оно?c:\web.config: Invalid data found when processing input

РЕДАКТИРОВАТЬ: язык программирования не указан, потому что он не зависит от какого-либо языка программирования.Но я был бы признателен за конкретный ввод языка: VB.NET.Вы можете предположить, что у меня уже есть логика процесса и вывод там в виде строки!Regex тоже будет круто :) 1023 *

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Определение типов

Возможно, вам повезет больше с MediaInfo .

Получите версию командной строки и используйте ее следующим образом:

mediainfo --full --language=raw --output=xml

Это дает вывод XML, затем вы можете использовать XPath для захвата поля кодека. Или, если вам не нужен XML, отбросьте '--output = xml', а затем напишите регулярное выражение для разбора вывода текста.

Для нераспознанных файлов это выглядит так, как будто выдает какой-то вывод, но определенно не будет иметь поля кодека.

Преобразование видео

Для фактического преобразования видео FFmpeg - это швейцарский армейский нож кодирования видео и, вероятно, ваш лучший вариант.

Вам не нужно знать входные данные, если вы знаете, какие выходные кодеки вам нужны.

Примерно так можно начать:

ffmpeg -i input.mov -vcodec libx264 -acodec libfaac -f mov out.mp4

Это даст вам MPEG-4 с видео H.264 и аудио AAC. Хотя есть много вариантов, чтобы настроить это, чтобы получить то, что вы хотите.

Этот сайт полезен для настройки параметров H.264.

Удачи!

0 голосов
/ 07 ноября 2010

Я бы попробовал некоторые библиотеки, так как вы получите лучшие результаты, чем Regex, и определите их для себя:

Твердая оболочка FFmpeg для C # /. NET

...