[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: -(230 KB, 850x1133)
230 No.3896230  

Ычан, подскажи библиотеку для генерации видео. Или подскажи как самому сделать подобную функциональность без каких-то сторонних библиотек. Идеально, если бы библиотека была написана на языке C# или она представляла бы обертку С библиотеки для C#.
Как приходится делать сейчас:

  • Получаю срез моей модели для каждого момента времени (двумерный массив Color, где Color - структура с тремя полями RGB).
  • Генерирую на основе массива Color bmp картинки.
  • Создаю видео на основе этих картинок с помощью сторонней библиотеки.

Способ этот конечно работает, но больно уж он медленный и неэффективный.

>> No.3896231  

>>3896230
Может не совсем понятно написал, я хочу генерировать видео из массива двумерных массивов Color без создания массива bmp картинок.

>> No.3896239  

Форматы изображений, собственно, для того и придумали и стандартизовали, чтобы можно было писать обобщённые библиотеки. Если каждая бака будет придумывать свой собственный "супер эффективный именно в её случае" формат, разработчики кодеков с ума сойдут. Так что не выдрючивайся и используй что-нибудь стандартное. Что за модель-то у тебя? Может проще сразу ей генерить данные в нужном формате?

>> No.3896255  

>>3896239
Я рассматриваю две модели, одна модель моя собственная и для нее не существует математической записи (поведение описано с помощью классов на C#), а другая модель - это достаточно известная модель:
http://www.kof.zcu.cz/st/dis/schwarzmeier/gravitational_simulation.html
Я произвожу решение системы обыкновенных дифференциальных уравнений, результат решения - координаты объектов в разные моменты времени. Имея цвет объекта и его координаты я могу создать bmp картинку.

>> No.3896282  

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

>> No.3896290  

>>3896282
У первой модели - только цвета.
У второй - координаты

Сейчас я визуализирую с помощью OpenGL (OpenTK) и юнити.

Я хочу визуализировать достаточно большой массив данных (возможно несколько миллионов объектов).

>> No.3896328  

Ычан, подскажи, что написал ОП?

>> No.3896345  

>>3896230
Тебе нужно генерировать именно видео или тебе показать просто надо? Во втором случае пиши сразу на экран и парь мозг.

>медленно

Запусти под профайлером и смотри что нужно оптимизировать.

>> No.3896358  

>>3896230
Почему ещё никто ffmpeg?

https://m.habrahabr.ru/post/171213/

>> No.3896361  
> Генерирую на основе массива Color bmp картинки.
> Создаю видео на основе этих картинок с помощью сторонней библиотеки.

Алсо, я надеюсь, ты не записываешь каждый кадр в отдельную картинку на диск, чтобы потом скормить их Юнити или кого ты там используешь. Это, мягко говоря, не очень эффективно.

Ну и да, почитай про >>3896358 ffmpeg.

>> No.3896368  

>>3896361

>Это, мягко говоря, не очень эффективно.

Если можно распараллелить генерацию фреймов потока на четыре, то может быть эффективнее вообще сначала записать все фреймы на диск, а потом уже собрать видео. Ну и рам-диски никто не отменял.

>> No.3896374  

>>3896230
Совсем недавно занимался подобными вещами. Тоже была прога на C#, которая генерила тучу картинок, около 500-700к, потом собирал из них видео. ffmpeg имеет в этом случае очень хорошую производительность. Полмиллиона картинок 512x384 он превратил в видео всего за около 11 минут на достаточно слабом компе с 2-х ядерным процессором и обычным (не ссд) диском.

>> No.3896404  
Файл: -(754 KB, 930x1314)
754

>>3896345

>Тебе нужно генерировать именно видео или тебе показать просто надо?

Да, хочу сделать видео.

>Запусти под профайлером и смотри что нужно оптимизировать.

Создание картинок очень трудоемкий процесс. В том-то и фишка чтобы из массива Color напрямую создать видеофрейм без лишних конвертаций. Ведь видеофрейм и есть запись красного, зеленого и синего цветов для каждого пикселя (массив Color), только запись эта в каком-то своем формате.
>>3896358
Попробую, спасибо.

>> No.3896426  

>>3896230
СФМЛ, лол или сдл.
Сфмл есть под решетку.

>> No.3896467  

>>3896404
В чём трудоёмкость-то? Если у тебя там действительно честный RGB, любой кодек должен прожевать.




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]