Приостановка проблемы с записью на флэш-камеру - PullRequest
0 голосов
/ 30 июня 2011

Я создаю приложение для записи веб-камеры в CS5, и у меня возникают некоторые, казалось бы, случайные проблемы с записанным FLV. В настоящее время я публикую поток на Wowza Media Server, используя стандартную команду _netstream.publish ("movieName", "record"). Все, что касается этого, работает нормально, и я могу воспроизвести файл, но иногда в начале или конце видео возникает пауза от 3 до 4 секунд. Будет неподвижный кадр, и время будет равно 0, а затем уменьшится до 4. Я исследовал параметры полосы пропускания, значительно уменьшил разрешение и качество, и, похоже, он не имеет никакого эффекта, а остальные видео будет воспроизводиться плавно. Вот мои текущие настройки камеры и микрофона.

    _cam.setMode(160, 120, 30, false);
    _cam.setQuality(0, 88);
    _cam.setKeyFrameInterval(30);
    _mic.rate = 11;

Я также очищаю буфер перед закрытием потока публикации

    _netstream.publish('null');

Может ли что-то происходить с инициализацией / деактивацией камеры, что вызывает задержку?

Любая помощь будет принята с благодарностью. Дайте мне знать, если вам нужно больше деталей

1 Ответ

0 голосов
/ 02 декабря 2011

I полагаю, это как-то связано с тем, как сам плагин Flash инициализирует и отображает камеру.

Если вы настроили простой тест, чтобы попытаться установить и снять видеоstream:

var cam:Camera = Camera.getCamera();
var webcam:Video = new Video(500, 375);
addChild(webcam);

var isPaused:Boolean = false;

function showWebcam():void {
    if (!isPaused) {
        cam = null;
    } else {
        cam = Camera.getCamera();
    }

    webcam.attachCamera(cam);
    isPaused = !isPaused;
}

pausingButton.addEventListener(MouseEvent.CLICK, showWebcam);

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

Из того, что я видел, каждый раз, когда я звоню attachCamera() с видеообъектом, при вызове метода происходит заметная пауза самого Flash Player (включая все анимации, взаимодействия, все, что угодно), даже если объект, который я присоединяю, равен null.

Четыре секунды кажутся чрезмерной задержкой, но я заметил, что чем больше рендеринг ввода / видео и с smoothing = true, установленным на видеообъекте, может повлиять на длительность задержки.

Что касается решения;Я не уверен, есть ли что-то достижимое с помощью чистого Actionscript, поскольку задержка, по-видимому, сводится к тому, как сам Flash Player инициализирует и визуализирует объект живого видео.

...