Войти
видео плеерФорум

Рендеринг видео картинки (комментарии)

#0
20:20, 16 ноя. 2010

Рендеринг видео картинки (комментарии)

Это сообщение сгенерировано автоматически.


#1
20:20, 16 ноя. 2010

можно заюзать bink, libavi

#2
21:02, 16 ноя. 2010

а как насчет декодирования видео по сети? Кроме LibVLC я пробовал заюзать FFMpeg кодек, но у него были проблемы с проигрыванием HDTV(1920 x 1088), после примерно 5 секунд сыпалось изображение...

#3
0:55, 18 ноя. 2010

Насчёт Stretching'а видео.
Если видео реализовано через DirectShow, то используеться FilterGraph, при запуске которого, изменить разрешение потока изображения с видео девайса или самого видео - нельзя, это не прокатит, т.к. все Pin'ы уже настроены и указаны конкретные изображения.
Что же на самом деле происходит дальше, так это VideoRenderer создаёт окно, в которое выводит изображение, но суть в том что изображение при изменении этого окна, в памяти остаётся того же размера, оно не стретчиться. Это как натянуть текстуру 800x600 на биллбоард, и поставить его перед камерой растянув на весь экран с разрешением 1024x768, текстура останеться естественно прежнего разрешения.
При этом обычно сам буффер изображения должен быть в raw формате, чтобы быть совместимым к тому чтобы запихнуть его в разные типы буфферов, или иметь простую возможность изменить формат. Для этого используется фильтр Sample Grabber, который даёт возможность получить этот самый буффер, и скопироть его в память. Да там нужно сделать allocate памяти, один раз, если конечно программа не предпологает смену видео или девайса, тогда нужно пере-allocate место в памяти.
Также, этот самый Handle окна, обычно имеет возможности ловить событие о масштабировании и т.п.
Не исключаю возможности что возможно есть фильтр который может на software уровне, масштабировать изображение - тогда да, это уже другой разговор. Но перед Граббом буффера, можно всегда сверить на смену размера, и темболее ресайз не будет частым событием не так ли. Да и как раньше уже подметил - лично не встречал случая, где размер буффера зависил от размера окна в котором если это VMR, тупо выводиться текстура..

#4
7:28, 18 ноя. 2010

MoKa
> но суть в том что изображение при изменении этого окна, в памяти остаётся того
> же размера, оно не стретчиться. Это как натянуть текстуру 800x600 на биллбоард,
> и поставить его перед камерой растянув на весь экран с разрешением 1024x768,
> текстура останеться естественно прежнего разрешения.
ну у меня сейчас сделано также, проблема была в том, что самой библиотеке VLC надо указать буфер, куда будет рендериться изображение. Причем буфер указывается при запуске плеера и не меняется, если у меня подхватится HDTV канал с разрешением 1920x1088  а буфер внеэкранный будет 512x512 то при стретче окна до 1280х1024 будет заметное падение качества, и зачем тогда нужен этот самый HDTV. Потому мне и надо было узнать размер прилетающей картинки в оригинале до загрузки самого плагина...

#5
12:53, 18 ноя. 2010

Есть ли возможность плагина заставить остановиться на время?
Типо как в DirectShow, когда получаешь MediaControl из FilterGraph'а, там есть функция Stop. Таким образом когда FilterGraph остановлен, можно осуществлять любые изменения с фильтрами и Pin'ами.

#6
14:01, 18 ноя. 2010

MoKa
функция то есть, и я так изначально делал, но она отнимает время заметное, т.к. происходит перезагрузка плагинов. пришлось отказаться от нее...

видео плеерФорум

Тема в архиве.