Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 23.03.2008, 18:39
UnVisible вне форума Посмотреть профиль Отправить личное сообщение для UnVisible Найти все сообщения от UnVisible
  № 1  
UnVisible

Регистрация: Mar 2008
Сообщений: 29
По умолчанию Ключевые (опорные) кадры FLV

Здавствуйте!

Появился наболевший вопрос.
Я PHP програмист (в АС пока относительно ламер).
Постала задача сделать плеер, но чтобы при открытии страницы с ним не отображался черный екран, а один (или несколько, в стиле слайдшоу) наилучших по качеству кадров (тоесть опорных (ключевых)) формата FLV.
Была мысль вытянуть опорные кадры средствами DirectShow, но такого модуля под ПХП да ещё и под линукс я не нашел.
Остается только 2 варианта:
1. Средствами ПХП давать запрос AS, и чтобы тот возвращал 1 (или несколько) изображений опорных кадров.
2. AS сам при загрузке вытягивал из видео 1 (или несколько) опорных кадров и делал слайдшоу.

Вопросы:
1. Как, или каким класом, из FLV формата можно выдрать опорный кадр?
2. Сужиствуют ли вообще в FLV формате опорные кадры? (если нет, тогда вопрос вообще теряет смысл).
3. Может кто знает, возможно ли на одном ПХП такое зделать?

P.S. Сколько не роюсь в инете по поводу "Описание FLV формата" или "Работа с FLV форматом" - нахожу один маразм, типа конвертеры, плееры и т.д.


Заранее пасибо!


Последний раз редактировалось UnVisible; 23.03.2008 в 19:16.
Старый 24.03.2008, 00:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не решение, только предположения по теме:

ключевые кадры есть, NetStream.seek(offset:Number) гонит видео в кейфрейм, ближайший к offset (в секундах);
стало быть есть возможность 'сфотографировать' эти кейфреймы - BitmapData.draw(..), правда для этого надо дождаться загрузки всего потока
показать эти скриншоты в самой флешке, понятно, не вопрос..

вернуть сриншоты серверу в плеере ниже 9-ки не получиться..
в 9-ке (AS3) есть возможность послать картинку как ByteArray, декодеров под разные форматы понаписано достаточно, легко нагуглишь..

как это все можно (и можно ли вообще) в ПХП не знаю

Старый 24.03.2008, 10:35
UnVisible вне форума Посмотреть профиль Отправить личное сообщение для UnVisible Найти все сообщения от UnVisible
  № 3  
UnVisible

Регистрация: Mar 2008
Сообщений: 29
Огромное спасибо! =)

Теперь хоть знаю в какую сторону копать!

Старый 24.03.2008, 12:50
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 4  
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от silin
стало быть есть возможность 'сфотографировать' эти кейфреймы - BitmapData.draw(..), правда для этого надо дождаться загрузки всего потока
Тут где-то на форуме вроде было решение, как не дожидаться загрузки всего потока. (кто-то про ютуб спрашивал по-моему)

Цитата:
Сообщение от silin
вернуть сриншоты серверу в плеере ниже 9-ки не получиться..
в 9-ке (AS3) есть возможность послать картинку как ByteArray, декодеров под разные форматы понаписано достаточно, легко нагуглишь..
Не ByteArray одним жив флеш
Можно и ниже 9-ки передать - начиная с ФП поддерживающего битмапдату

Старый 26.03.2008, 16:12
UnVisible вне форума Посмотреть профиль Отправить личное сообщение для UnVisible Найти все сообщения от UnVisible
  № 5  
UnVisible

Регистрация: Mar 2008
Сообщений: 29
Появилась проблема. Поставил Флеш 9 АС3. Загрузка видео и переход на определенный кадр работает. А вот при попытке вывести его через БитМап дает ошибку. Что я не так делаю?

Вот код скрипта:
Код:
import flash.display.Bitmap;
import flash.display.BitmapData;

var conteiner:MovieClip = _root.createEmptyMovieClip("conteiner", this.getNextHighestDepth());

var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);

var stream_ns:NetStream = new NetStream(connection_nc);

my_video.attachVideo(stream_ns);
stream_ns.play("d:/clip.flv");
stream_ns.pause(true);
stream_ns.seek(78);

var copy_screen:BitmapData = new BitmapData(200,200);

copy_screen.draw(stream_ns);

var bit:Bitmap = new Bitmap(copy_screen);
this.addChild(bit);
Дает ошибку:
The class or interface 'flash.display.Bitmap' could not be loaded.
var bit:Bitmap = new Bitmap(copy_screen);

Total ActionScript Errors: 1 Reported Errors: 1

Старый 26.03.2008, 18:18
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
путаница какая-то: ты пишешь (видимо и публикуешь) под 8-ку (AS2), а пытаешься пользоваться Bitmap'ом, а его там нет, о чем тебе компилятор и докладывает.

Старый 26.03.2008, 19:02
UnVisible вне форума Посмотреть профиль Отправить личное сообщение для UnVisible Найти все сообщения от UnVisible
  № 7  
UnVisible

Регистрация: Mar 2008
Сообщений: 29
Ну вот это же работает (взято с примера):
Код:
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.text.TextField;

var tf:TextField = new TextField();
tf.text = "bitmap text";

var myBitmapData:BitmapData = new BitmapData(80, 20);
myBitmapData.draw(tf);
var bmp:Bitmap = new Bitmap(myBitmapData);
this.addChild(bmp);
Ну и пишу я в АС3.


Последний раз редактировалось UnVisible; 26.03.2008 в 19:05.
Старый 27.03.2008, 01:55
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Где вы видите в названиии раздела цифру 3?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 27.03.2008, 03:04
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Пакет flash.display в АС2 содержит один-единственный класс - BitmapData, а в АС3 их там куча, Bitmap в том числе.
Зайти в Publish Settings - Flash выставить там плеер 9 и АС3 в настройках. Ну и тему запостить в раздел про АС3 %)
ЗЫ. Про Ю-туб я спрашивал. Ну, решение... решение в том, что ФЛВ можно начинать буферить и проигрывать с любой позиции в файле. Если сервер умеет такое. Но правда никаких приемлимых результатов с этим я пока не добился =( Да, и еще, сразу скажу, пока не было события от NetStream'a NetStream.Buffer.Flush заносить чего-то в битмапдату нет смысла.
ЗЫЫ. В примере вы не используете класс Bitmap, само по себе выражение import еще не значит, что компилятор клас добавит в проект, его нужно еще где-нибудь в коде использовать. Иначе импорты типа import flash.display.*; работали бы очень плохо.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 27.03.2008 в 03:12.
Старый 27.03.2008, 11:18
UnVisible вне форума Посмотреть профиль Отправить личное сообщение для UnVisible Найти все сообщения от UnVisible
  № 10  
UnVisible

Регистрация: Mar 2008
Сообщений: 29
Цитата:
Где вы видите в названиии раздела цифру 3?
Я когд регился меня не пустило чето в цифру "3". Да и тема одна и таже - зачем мусорить форум, если можно продолжить здесь - и всем будет ясна суть моей проблемы в целом! =)

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 11:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.