Просмотр полной версии : Растягивание видео (растягивается квадратиками)
ExtendedPlay
01.11.2009, 21:01
Привет всем!
Делаю видео плеер. В полноэкранном режиме заметил неприятную вещь - видео растягивается квадратиками (то есть "сглаживания" нет).
Для примера, кусочек ролика на юТубе на весь экран:
http://demiart.ru/forum/uploads4/post-493201-1257094177.jpg
А вот то же самое видео (прям тот же flw-файл) в моем плеере:
http://demiart.ru/forum/uploads4/post-493201-1257094179.jpg
Основной код для фуллСкрина выглядит у меня примерно так:
//включаю фуллскрин
Stage.displayState = 'fullScreen';
Stage.scaleMode = 'noScale';
//растягиваю и позиционирую видео
myVideo._width = Stage.fullScreenWidth;
myVideo._height = Stage.fullScreenHeight;
//и тд
//pS: код, конечно же, примерный (пропорции и др сохраняю и все норм)
Так вот вопрос, как сделать "сглаживание"? ^_^
Заранее спасибо откликнувшимся!
pS: А еще слушатели клавиатуры в полноэкранном режиме не работают почему то:
var keyListener = new Object();
keyListener.onKeyDown = function(){
if(Key.isDown(Key.ENTER) || Key.isDown(Key.SPACE)){
videoPause();
}
}
Key.addListener(keyListener);
Одна тема - один вопрос.
Для начала попробуйте снять галочку в настройках публикации "Compress Movie" и проверьте, на всем ли протяжении пути к myVideo мувики-родители имеют масштаб = 100%. (То есть если где-то какой-то родитель был сжат изначально, то после растягивания во весь экран могут полезть пиксели).
ExtendedPlay
01.11.2009, 21:28
Спасибо, но Compress Movie пробовал) никаких изменений)
А у myVideo нет родительских клипов)
btw, а что за свойство fullScreenWidth?
ExtendedPlay
01.11.2009, 21:35
определяет ширину Stage в полноэкранном режиме (можно сказать ширину экрана монитора). (http://www.google.ru/search?hl=ru&safe=off&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=Qne&q=actionscript+fullScreenWidth&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f&oq=)
Конечно, в AS2 у класса Video есть свойство smoothing, только, мне кажется, тут нужно не сглаживать, а искать причину потери качества.
ExtendedPlay, это раздел AS1.0/2.0 =)
Каша из языков получается: Stage.fullScreenWidth из AS3.0.
ExtendedPlay
01.11.2009, 22:12
Конечно, в AS2 у класса Video есть свойство smoothing, только, мне кажется, тут нужно не сглаживать, а искать причину потери качества.
да, сглаживание - немного не то)))))))))
ExtendedPlay, это раздел AS1.0/2.0 =)
Каша из языков получается: Stage.fullScreenWidth из AS3.0.
видимо в АС2 это свойство тоже есть) главное - ширину определяет правильно)
что с видео-то?)))))))))
А вы уверены, что у вас "прямо тот же flv-файл" ?
Проиграйте ваш файл в простом Медиа-плеере, растяните на весь экран и посмотрите качество, чтобы быть уверенным, что косяк все-таки в вашем плеере, а не в файле.
ExtendedPlay
01.11.2009, 22:32
проверил) в Медиа-плеере всё норм)
А вы уверены, что у вас "прямо тот же flv-файл" ?
каждый видео-файл так "квадратицца". я ж пока плеер писал десяток их пересмотрел)))))))
gloomyBrain
01.11.2009, 22:37
mooncar, поясните насчет compress movie?
и как оно влияет на загружаемое видео? - ведь, насколько я понял, плеер его загружает
smoothing, кстати - это именно то
а на youtube.com можно смотреть как flv, так и mp4
ExtendedPlay
01.11.2009, 22:42
черт, действительно. стоило добавить
vplVideo.smoothing = true;
и всё идеально!
gloomyBrain, СПАСИБО!!!!!!!!!!!!!!!!
mooncar, dimarik, также спасибо за предложения!!!
MaskiShow
01.11.2009, 23:22
То же самое - с обычными картинками будет, если взять маленькую, поместить на сцену, сделать флешку, а потом растянуть флешку мышкой при просмотре в разы. Также квадратить будет.
В общем, проблема, как оказалась не в качестве плееров, а в качестве самого видео, просто у разных плееров оказался разный алгоритм, и алгоритм автора был без сглаживания.
mooncar, поясните насчет compress movie?
и как оно влияет на загружаемое видео? - ведь, насколько я понял, плеер его загружает
Никак не влияет. На момент совета я не был уверен, что у автора видео грузится извне, а не внедрено и что автор с ним как-то еще не надругался. :)
Поэтому и пальцем в небо ткнул. Хотя будет ли влиять как-то на качество видео эта опция в случае внедренного видео, я не уверен и сейчас, а проверять нет времени.
А smoothing.. да, я писал о нем, но это как бы только восприятие улучшает, качество лучше не делается. Смотря, конечно, что считать качеством. Если взять аналог из жизни, то у нас в стране тоже просто маскируют грязные дворы и сломанные дома к приезду шишек, а не приводят в надлежащий вид.
Для картинок, например, smoothing полезен, когда анимируем их, чтобы флеш не спотыкался на мелких деталях, а сглаживать видео - это уже из другой оперы.
gloomyBrain
02.11.2009, 00:17
просто у разных плееров оказался разный алгоритм, и алгоритм автора был без сглаживания
И о каких алгоритмах идет речь?
Если имеется ввиду алгоритм отображения - пора Вам узнать что такое кодек и как он будет одинаково работать в любом плеере
а сглаживание применяется к результату декомпрессии - и, собственно, это отдельный алгоритм, который включен по умолчание в большинстве плееров
Смотря, конечно, что считать качеством
И что Вы считаете качеством?
Загрузить видео с разрешением 1024 на 768 (или больше) - по-моему как-то не очень =)
сглаживать видео - это уже из другой оперы
как раз из той самой оперы
В чем разница на Ваш взгляд между сглаживанием картинки и видео?
Почему из разных опер? Вот почему.
Когда применяем smoothing к картинке высокого качества, которая быстро перемещается по сцене, с помощью этого метода как раз убиваем слишком высокое качество этой картинки, так как видеоплеер не успевает отработать все эти детали, либо просто не позволяет разрешение монитора их отобразить, и на экране картинка, двигаясь, мерцает всеми своими мелочами. То есть алгоритму флеш-плеера, который относится к показу видео, трудно становится расчитать, где и какого цвета должен стоять пиксель - через единицу площади проходит слишком много пикселей в единицу времени, особенно когда скорость анимации высокая.
Например, берем хорошее фото с мелкой решеткой радиатора автомобиля - если мы создадим анимацию движения с мувиком с фото, то решетка эта будет переливаться.
Причем, так будет даже, если исходник в JPG, а не lossless.
Когда же мы смазываем с помощью smoothing видеоролик, тут мы маскируем исходное низкое качество самого ролика, дабы не было видно квадратных пикселей ролика.
В обоих случаях мы режем пиксели, но в первом - дабы снизить пикселизацию, так как плеер не может ее правильно отображать, во втором - чтобы замаскировать отсутствие в нужном месте информации о нужном пикселе. Если же качество видео высокое, то резать информацию с помощью сглаживания нет нужды, так как флеш-плеер сможет его качественно отработать, если геометрический размер объекта равен геометрическому размеру ролика.
А грузить или не грузить такое видео - это уже отдельный вопрос.
Но также, если, у нас видео высокого качества, и мы уменьшим объект с видеороликом на сцене, то без smoothing'а нам опять не обойтись, теперь опять полезет шум детализации. Мне приходилось сталкиваться с таким случаем, когда в одном ролике понадобилось нарисовать маленький телевизор, на котором бы крутился бы видеоролик. Поскольку сам видеоролик был с хорошим разрешением, пришлось применить сглаживание, так как детали видеоряда при уменьшенной в разы области показа неприемлемо "мерцали".
Если сказать проще, задача smoothing в обеих случаях - приблизить размер пикселей контента к размеру пикселей области отображения (графической системы "флеш-плеер + монитор").
Добавлено через 15 минут
о каких алгоритмах идет речь?
Разница как раз оказалась в использовании / неиспользовании сглаживания методами флеш-плеера.
gloomyBrain
02.11.2009, 00:48
Почему из разных опер? Вот почему
это единственная строка, в которой сглаживание видео отличается от сглаживания картинки
Весь следующий за ней текст говорит об обратном - если реальный размер растровой графики (видео или картинка) отличается от размера, в котором она отображается (контейнер), то необходимо сглаживание, т.к. оно либо усреднит цвет пикселей, попадающих в один пиксель экрана (при сжатии), либо добавит новый пиксель усредненного цвета (при растяжении)
Вы уж определитесь lol =)
PS
Причем, так будет даже, если исходник в JPG, а не lossless.
для флеша нет никакой разницы между форматами - при отображении любое изображение переводится в 4 байта на пиксель (тот самый lossless)
необходимо сглаживание, т.к. оно либо усреднит цвет пикселей, попадающих в один пиксель экрана (при сжатии), либо добавит новый пиксель
Говоря о разнице, я и имел ввиду именно это "либо", которое и проиллюстрировал в тесте 16-го поста. :)
Цель сглаживания - получить нормальную для глаза картинку, но причины его применения могут быть разными.
То есть при сглаживании мы не улучшаем качество, а лишь либо маскируем его отсутствие, либо убираем его излишки.
По-моему, спорить не о чем, тем более в этой теме.
gloomyBrain
02.11.2009, 01:17
к разнице между картинкой и видео это самое "либо" не имеет никакого отношения
Как же Вы имели его ввиду? =)
Согласен - с Вами спорить не о чем
Надеюсь, все новое, что Вы сегодня узнали Вам пригодится
То есть разница в цели, а не в методе. Я теперь понял - вы, видимо, подумали, что я говорил о самом алгоритме сглаживания, я же имел ввиду использование его или неиспользование в принципе в конкретном случае.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.