Как прочитать videoDuration файла .flv из * .Net без использования flash-activeX?

StackOverflow https://stackoverflow.com/questions/827641

Вопрос

У меня есть программа winform, которая позволяет пользователям загружать фильмы Shockwave Flash на сервер. Чтобы получить videoDuration, я создаю экземпляр «ShockwaveFlashObjects» -activeX, загружаю фильм и затем считываю videoDuration до тех пор, пока он не изменится с «0.0». к чему-либо еще. Я понял это, прочитав GetVariable (" videoDuration ").

Часто это работает, но иногда он блокируется или показывает информацию из предыдущего загруженного Flash-фильма.

У меня также были проблемы с распространением ShockWaveFlashObject-activeX. Мне бы очень хотелось пропустить это, просто прочитать флэш-файл и узнать продолжительность воспроизведения фильма.

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

Этот вопрос не помог с ответами.

Я проверил swf-формат на wotsit и из того, что я вижу, должно быть возможно прочитать framerate и framecount и таким образом вычисляют длительность, но я не смог найти ничего о flv-файлах. Может быть, кто-то уже сделал это и может указать мне на хороший код, который сэкономит мне много времени, пытаясь понять спецификацию?

Это было полезно?

Решение

Одной из возможностей является использование ffmpeg для чтения видео / аудио битрейтов. Получив эти данные, вы можете разделить общий размер файла на сумму видео / аудио битрейтов. Это дает вам приблизительное количество секунд (+/- несколько Socnds).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top