Как записать веб-камеру на FLV с плавным воспроизведением - PullRequest
2 голосов
/ 16 сентября 2008

Я бы хотел, чтобы мой сайт записывал видео с помощью веб-камер. Эти flvs должны играть гладко, чтобы потом я мог поиграть с ними, например, перекодировав их в avis.

Я пробовал много разных серверов для обработки записи FLV. Получившиеся FLV, например, играют нормально в Wimpy FLV Player, за исключением того, что индикатор прогресса не движется плавно или регулярно. Это признак того, что что-то не так, и если я пытаюсь перекодировать их с помощью «ffmpeg -i input.flv output.avi» (с опцией фрейма «-r 15» или без нее), я не получаю правильное avi.

Вот что я пробовал и какую проблему я получаю:

  1. Использование red5 (v 0.6.3 и 0.7.0, как на OS X 10.5.4, так и на Ubuntu 8.04) и publisher.html пример этого включает в себя. Вот результат FLV . Индикатор прыгает в сторону конец очень быстро.

  2. Все еще используете red5, но публикуете «вживую» и начинаете запись через пару секунд. Я использовал эти файлы примеров . Вот получившийся flv . Индикатор по-прежнему очень быстро прыгает до конца, при этом методе вообще нет звука ...

  3. Использование Wowza Media Server Pro (v 1.5.3, на моем Mac). Индикатор прогресса не прыгает до конца, но движется быстрее в самом начале. Этого достаточно, чтобы при преобразовании в другие форматы с использованием ffmpeg изображение не синхронизировалось должным образом со звуком. Просто чтобы быть уверенным, что я попробовал видеомагнитофон , который поставляется с ним , а также использовал файл pubisher.html от red5 (с идентичными результатами ).

  4. Использование Flash Media Server 3 через учетную запись, размещенную на www.influxis.com . Я получаю еще один паттерн прогрессии. Индикатор прогресса вначале немного скачет, а затем становится регулярным. Вот пример .

Я знаю, что можно записать "безупречный" flv, потому что видео приложение Facebook делает это (используя red5?). Действительно, легко взглянуть на HTML-источник видео facebook и получить http-URL для загрузки созданных ими flvs. , При воспроизведении в Wimpy индикатор прогресса плавный, и перекодирование с помощью «ffmpeg -i facebook.flv -r 15 facebook.avi» дает хороший avi. Вот пример .

Итак, могу ли я получить хороший FLV с постоянной частотой кадров?

PS: Сервер должен быть либо установлен в Linux, либо быть доступным у хостинг-провайдера по разумной цене.

Редактировать: Как уже указывалось, возможно, проблема не в частоте кадров, а в другом. Я не разбираюсь в видео и не знаю, как проверить примеры, которые я привел, чтобы проверить вещи; может быть, кто-то может пролить свет на это.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2008

Рассматривая ваш пример red5 flv в richflv (очень удобный инструмент редактирования flv), мы видим, что у вас есть обычные ключевые кадры, но метаданные продолжительности не установлены.

В примере Facebook на flv практически отсутствуют ключевые кадры (что означало бы, что вы не сможете «искать» в нем очень хорошо), однако длительность метаданных верна.

Я бы посмотрел flvtool2 и flvtool ++ (который является более эффективной для длинных файлов альтернативой памяти), чтобы вставить корректные метаданные после захвата.

0 голосов
/ 16 сентября 2008

Возможно, проблема не в частоте кадров, а в ключевых кадрах и маркерах.

...