Как прочитать videoDuration файла .flv из * .Net без использования flash-activeX?
-
06-07-2019 - |
Вопрос
У меня есть программа winform, которая позволяет пользователям загружать фильмы Shockwave Flash на сервер. Чтобы получить videoDuration, я создаю экземпляр «ShockwaveFlashObjects» -activeX, загружаю фильм и затем считываю videoDuration до тех пор, пока он не изменится с «0.0». к чему-либо еще. Я понял это, прочитав GetVariable (" videoDuration ").
Часто это работает, но иногда он блокируется или показывает информацию из предыдущего загруженного Flash-фильма. Р>
У меня также были проблемы с распространением ShockWaveFlashObject-activeX. Мне бы очень хотелось пропустить это, просто прочитать флэш-файл и узнать продолжительность воспроизведения фильма.
Все загруженные фильмы являются видео, поэтому они имеют определенную продолжительность воспроизведения.
Этот вопрос не помог с ответами. Р>
Я проверил swf-формат на wotsit и из того, что я вижу, должно быть возможно прочитать framerate и framecount и таким образом вычисляют длительность, но я не смог найти ничего о flv-файлах. Может быть, кто-то уже сделал это и может указать мне на хороший код, который сэкономит мне много времени, пытаясь понять спецификацию?
Решение
Одной из возможностей является использование ffmpeg для чтения видео / аудио битрейтов. Получив эти данные, вы можете разделить общий размер файла на сумму видео / аудио битрейтов. Это дает вам приблизительное количество секунд (+/- несколько Socnds).