Войти
Urho3DФорумРАЗВИТИЕ ДВИЖКА

Воспроизведение видео *.ogv - файлов на текстуре (Theora video playback)

Страницы: 1 2 Следующая »
#0
15:26, 28 июля 2016

Запилил на базе урока от тов. Orange воспроизведение на кодеке Theora (http://3d-orange.com.ua/video-in-your-games-p1-ogg_theora/)
Пока все еще сильно убого, но уже можно смотреть кролика роджерса без звука.
Позже залью в какой-нибудь репозиторий пример.
Задолбался честно говоря вчера собирать либы теоровские, релизные версии либ так с какой-то проблемой и остались, довольствуюсь дебаг версией ;)


Репо : https://github.com/MonkeyFirst/Urho3DTheora/


#1
18:53, 28 июля 2016

Вот это очень здорово!
Давно интересно было, что насчёт видео в движке.
Особенно интересует управление видеопотоком (плей, пауза, перемотки, шаг по кадру).
Ещё в движке охота иметь запись буфера(ов) рендера, хотя бы в секвенции (png, jpeg). Для последующего композа и монтажа кат-сцен. Ну, это уже мечты... мечты...

#2
19:10, 28 июля 2016

> Ещё в движке охота иметь запись буфера(ов) рендера, хотя бы в секвенции (png, jpeg). Для последующего композа и монтажа кат-сцен. Ну, это уже мечты... мечты...

в движке есть функция "сделать скришот", можно попробовать в апдейте делать скришоты каждый кадр, но подозреваю, что это поставит комп на колени

#3
19:28, 28 июля 2016

1vanK
> но подозреваю, что это поставит комп на колени
Это нормально.
Даже если вывод (рендер) будет просчитывать каждый кадр по несколько секунд/минут.

#4
19:47, 28 июля 2016

codingmonkey
> довольствуюсь дебаг версией
А хотелось бы потестить производительность именно релизной сборки.
Насколько это всё роняет FPS?
Прошу не останавливаться на достигнутом!

#5
19:56, 28 июля 2016

radio
> CUT сцены лучше непосредственно как есть демонстрировать.
> Если нужна красота в сцене, то для CUT сцен можно отдельные модели
> подготавливать и шейдеры запускать
К сожалению для андроид версии такой способ не подойдёт!
Да и на десктопе не совсем; компы и графические характеристики у всех разные,
кто-то даже на ноуте играет, просадка до 25 fps уже является критичной, не все потянут красоту.

#6
20:13, 28 июля 2016

>Давно интересно было, что насчёт видео в движке.
да вот же, видео вставки хоть какие-то, жаль у ухи нет своего лого ролика, а только лишь картинка :(

>Особенно интересует управление видеопотоком (плей, пауза, перемотки, шаг по кадру).
пауза - плей - стоп, достаточно тривиально прикрутить получилось, а прыжки по тайлайну ролика я пока хз как прикрутить...

>Ещё в движке охота иметь запись буфера(ов) рендера, хотя бы в секвенции (png, jpeg). Для последующего композа и монтажа кат-сцен.
ну кат сцены наверное вообще не стоит писать в видео, если двиг умеет их вообще проигрывать рисуя в реалтайме все, смысл? :)
а если все-таки сильно хочется, то наверное подобные сцены лучше писать - OBS'ом + Intel Quick Synk или ShadowPlay с выключенным UI игры.


>Насколько это всё роняет FPS?
хз видео не HD, а другого у меня нет пока.
На текущий момент все ложится на проц(~15%) + 25 раз в сек заливка текстуру материала той плоскости.
но наверное три непланар текстуры и просчеты в цвета в шейдере еще меньше нагрузки в рез-тате дадут.

>Есть другой аспект который для меня более практичен и интересен - это скроллинг текстуры.
в материале параметр шейдера - UV оффсет добавляй и будет скролл

сейчас пытаюсь прикрутить шейдер который планар YUV444 кадр, считает в RGB цвет(как сделано у Orange), но у меня почему-то все розовым цветом в этом случае заливается... но, если опять же посмотреть на залитый в текстуру планар YUV444 кадр обычным Unlit шейдером, то видно что картинка только в цветах отличается от RGB варианта.

+ Показать

мб при чтении из текстуры и перед вычислениями нужно цвета поменять местами?

#7
20:23, 28 июля 2016

radio
> раздолье для оптимизации
Всё упирается во время. Способ с оптимизацией (читай, серьёзной переделкой возможно сложной сцены, с возможно серьёзной правкой кода), мне видится несколько времязатратнее, чем сборка секвенции кадров в любом видео-редакторе за n-дцать минут.

#8
22:13, 28 июля 2016

>Повод предложить свой вариант.
Я себе представляю почему-то котелок на костре, мешающую его ложку и крупным планом камера берет всплывающею сваренную рыбу в котелке xD
тоже 4-5 сек где-то на все про все

#9
12:01, 30 июля 2016

Помню я тоже был в восторге от кат сцен из Silent Hill 3, особенно где героиня, фонарик и film gain - эффект. Да и все это шло на какой-то черепашке у которой пиксели 2.0 чисто для формальности были :) 

#10
9:04, 31 июля 2016

- Кстати, я сделал c GPU-декодинг цвета (который из примера Orange у меня почему-то не заработал) правда YUV-фрейм раскидывается на три планар Luminance (GL3 = RED8) текстуры, которые заливаются в шейдер и там все это дело считается.
А теперь я думаю нафига? - если можно все в одну RGB засунуть. Прямо так как есть, без лишнего семплирования UV-планов до Y (но с перегоном в планар) (цветовые UV-планы в два раза меньше Y(черно-белая картинка) ), просто текстурные координаты делить на 2 для них и выбирать из BG-каналов той же текстуры.

- Со звуком пока разбираюсь, думаю мб урхо компонент SoundSource подцепить и параллельно тот же файл играть если пойдет. Это же в любом случае - ogg файл в котором два стрима, - звук+видео

- Проверял нагрузку в диспетчере задач :) и если окно ухи не актиное т.е. двиг рендерит около ~60 фпс, то нагрузка по декодированию видео у меня 3-4% получается (720р)

#11
13:39, 31 июля 2016

>Интересно, Theora так умеет?
Н.264 круче технически, хотя теора не сильно от него отстает, но я опять же, - сильно не приглядывался по качеству картинки
https://en.wikipedia.org/wiki/Theora

Encoding performance

Evaluations of the VP3[38] and early Theora encoders[39][40][41] found that their subjective visual quality was inferior to that of contemporary video codecs. More recently however, Xiph developers have compared the 1.1 Theora encoder to YouTube's H.264 and H.263+ encoders, in response to concerns raised in 2009 about Theora's inferior performance by Chris DiBona, a Google employee.[42] They found the results from Theora to be nearly the same as YouTube's H.264 output, and much better than the H.263+ output.[43][44]

The performance characteristics of the Theora 1.0 reference implementation are dominated mostly by implementation problems inherited from the original VP3 code base.[45] Work leading up to the 1.1 stable release was focused on improving on or eliminating these. A May 2009 review of this work shows a considerable improvement in quality, both subjectively and as measured by PSNR, just by improving the forward DCT and quantisation matrices.[46] A flaw in the version of FFmpeg used in the test initially led to incorrect reports of Theora PSNR surpassing that of H.264. Although not achieving this goal, the improvement in the measured PSNR and the perceived quality is considerable. In any case, the differences in quality, bitrate and file size between a YouTube H.264 video and a transcoded Ogg video file are negligible.[47] Further work on adaptive quantization, as well as overall detailed subjective tuning of the codec, is still to come.
Playback performance

There is an open source VHDL code base for a hardware Theora decoder in development.[48] It began as a 2006 Google Summer of Code project, and it has been developed on both the Nios II and LEON processors.[49] However, there are currently no Theora decoder chips in production, and portable media players, smartphones and similar devices with limited computing power rely on such chips to provide efficient playback. But since decoding Theora is less CPU intensive than decoding H.264, the need for hardware-accelerated Theora decoding may be somewhat less.[citation needed]

Вообще можно рисовать полученный растр от теоры в NEAREST-текстуру и получать - пикселявую картинку, а можно с билинейной фильтрацией - размазанную.
А можно еще шарпен какой-нить накладывать и филм-гайн или еще чего сверху... 

Но главное во всём этом это то что блендер умеет рендерить и перегонять любые видео в полноценные ogg видео ролики! :)

*Насчет звука так у меня и не заработал урховский Sound из того же видео-файла запущенного параллельно - идет "шипение" какое-то и все.
Проигрываю обычные ogg с видосом - звук норм, можно конечно разделить видео файл на два отдельных файла и в этом случае звук будет :)

#12
13:47, 31 июля 2016

Я mp3 пробовал запускать через SoundSource - тоже шипение, короче если неправильный звуковой файл, оно шпит как гусь ) Вообще ogg это только контейнер, в нем видео и аудио может быть разными кодеками закодировано (а не только teora), даже mp4 и mp3, так что не стоит путать контейнер и кодек (как например про webm выше это тоже контейнер)

#13
14:15, 31 июля 2016

Понял )

#14
14:17, 31 июля 2016

>Вот еще онлайн тест возможности браузера воспроизвести видео Theora и WebM
Ну откровенно говоря у меня такого мусора с пикселями на облаках как в том тесте у теоры нету

>Я mp3 пробовал запускать через SoundSource
mp3 - оно вроде как и не держится же движком?
Я смотрел еще пример 29_SoundSynthesis там показан пример как закидываются данные для воспроизведения в буфер, но что-то у меня даже не получилось извлечь float PCM,

>короче если неправильный звуковой файл, оно шпит как гусь )
Гусь - хорошо ... ...шеплюсь :)
Я проверял у меня точно 100% все стримы звуковые в контейнере ogg -> Vorbis 48Khz stereo, один ролик сам кодировал для теста и все выставлял в Theora + Vorbis.

Страницы: 1 2 Следующая »
Urho3DФорумРАЗВИТИЕ ДВИЖКА

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