Difference between revisions of "SeminarAssembler"

From Wiki4Intranet
Jump to: navigation, search
(SeminarAssembler .-.)
(Сборка .-.)
Line 250: Line 250:
  
 
<graph>
 
<graph>
 
  
 
digraph G{
 
digraph G{
Line 257: Line 256:
 
     rankdir=LR;
 
     rankdir=LR;
 
                        
 
                        
"../sources/cam1/source.avs" -> "../sources/cam1/.12-05-11_13-45.00.avi" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/source.py.avs" [style=filled fillcolor=lightgrey]
"../sources/screen1/slide.slides.avs" -> "../sources/screen1/slide.slides" [label="parent" style=solid color=darkblue ]
+
"../sources/cam1/video.avs" -> "../sources/cam1/source.py.avs" [label="includes" style=dashed color=lightblue ]
"bitrix24-in-aws-serbul.scenario.avs" -> "common.avs" [label="includes" style=dashed color=lightblue ]
+
"2012-08-08-test.uncut.mkv" [style=filled fillcolor=lightgrey]
"../sources/screen1/common.avs" -> "../lib/lib.avs" [label="includes" style=dashed color=lightblue ]
+
"2012-08-08-test.uncut.mkv" -> "2012-08-08-test.uncut" [label="parent" style=solid color=darkblue ]
 +
"../sources/screen1/video.avs$vbitrate=800.avi" [style=filled fillcolor=lightgrey]
 +
"../sources/screen1/video.avs$vbitrate=800.avi" -> "../sources/screen1/video.avs" [label="parent" style=solid color=darkblue ]
 +
"../sources/cam1/video.avs$vbitrate=700.avi" [style=filled fillcolor=lightgrey]
 +
"../sources/cam1/video.avs$vbitrate=700.avi" -> "../sources/cam1/video.avs" [label="parent" style=solid color=darkblue ]
 
"../sources/cam1/video.avs" -> "../sources/cam1/videofilters.avs" [label="includes" style=dashed color=lightblue ]
 
"../sources/cam1/video.avs" -> "../sources/cam1/videofilters.avs" [label="includes" style=dashed color=lightblue ]
"bitrix24-in-aws-serbul.scenario.avs.avi" -> "bitrix24-in-aws-serbul.scenario.avs" [label="parent" style=solid color=darkblue ]
+
"../sources/cam1/source.py.avs" [style=filled fillcolor=lightgrey]
"../sources/cam1/video.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/source.py.avs" -> "../sources/cam1/sa-sample-camera.avi" [label="includes" style=dashed color=lightblue ]
"../sources/cam1/source.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/common.avs" -> "../lib/lib.avs" [label="includes" style=dashed color=lightblue ]
"../sources/cam1/aligned.avs" -> "../sources/cam1/start_time.py.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/video.avs" -> "../sources/cam1/aligned.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/aligned.avs" -> "../sources/cam1/source.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/video.avs" -> "../sources/screen1/common.avs" [label="includes" style=dashed color=lightblue ]
+
"bitrix24-in-aws-serbul.scenario.avs" -> "../sources/screen1/video.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/audio.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
+
 
"../lib/lib.avs" -> "../lib/debugmode.avs" [label="includes" style=dashed color=lightblue ]
 
"../lib/lib.avs" -> "../lib/debugmode.avs" [label="includes" style=dashed color=lightblue ]
"bitrix24-in-aws-serbul.scenario.avs" -> "../sources/cam1/video.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/start_time.py.avs" [style=filled fillcolor=lightgrey]
"bitrix24-in-aws-serbul.scenario.avs" -> "bitrix24-in-aws-serbul.scenario" [label="parent" style=solid color=darkblue ]
+
"../sources/screen1/start_time.py.avs" -> "../sources/screen1/start_time.py" [label="parent" style=solid color=darkblue ]
"../sources/cam1/aligned.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/source.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/screen1/source.py.avs" -> "../sources/screen1/common.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/cam1/start_time.py.avs" [style=filled fillcolor=lightgrey]
 
"../sources/cam1/start_time.py.avs" -> "../sources/cam1/start_time.py" [label="parent" style=solid color=darkblue ]
 
"../sources/cam1/start_time.py.avs" -> "../sources/cam1/start_time.py" [label="parent" style=solid color=darkblue ]
"common.avs" -> "../lib/lib.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/video.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
"../sources/cam1/common.avs" -> "../lib/lib.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/start_time.py.avs" [style=filled fillcolor=lightgrey]
"../sources/screen1/video.avs" -> "../sources/screen1/slide.slides.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/video.avs" -> "../sources/cam1/start_time.py.avs" [label="includes" style=dashed color=lightblue ]
"../sources/cam1/audio.avs" -> "../sources/cam1/aligned.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/source.py.avs" [style=filled fillcolor=lightgrey]
"bitrix24-in-aws-serbul.scenario.avs" -> "../sources/cam1/audio.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/screen1/video.avs" -> "../sources/screen1/source.py.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/cam1/source.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/cam1/source.py.avs" -> "../sources/cam1/source.py" [label="parent" style=solid color=darkblue ]
 
"../lib/lib.avs" -> "../lib/cachemode.avs" [label="includes" style=dashed color=lightblue ]
 
"../lib/lib.avs" -> "../lib/cachemode.avs" [label="includes" style=dashed color=lightblue ]
"../sources/cam1/videofilters.avs" -> "../sources/cam1/aligned.avs" [label="includes" style=dashed color=lightblue ]
+
"../sources/cam1/sa-sample-camera.avi.meta" -> "../sources/cam1/sa-sample-camera.avi" [label="parent" style=solid color=darkblue ]
 +
"../sources/cam1/source.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/cam1/source.py.avs" -> "../sources/cam1/common.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/screen1/start_time.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/screen1/video.avs" -> "../sources/screen1/start_time.py.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/screen1/video.avs" -> "../sources/screen1/common.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/cam1/common.avs" -> "../lib/lib.avs" [label="includes" style=dashed color=lightblue ]
 +
"../sources/cam1/source.py" -> "../sources/cam1/sa-sample-camera.avi.meta" [label="includes" style=dashed color=lightblue ]
 +
"../sources/screen1/video.avs$vbitrate=800.avi" [style=filled fillcolor=lightgrey]
 +
"2012-08-08-test.uncut" -> "../sources/screen1/video.avs$vbitrate=800.avi" [label="includes" style=dashed color=lightblue ]
 +
"../sources/screen1/sa-sample-screencast.avi.meta" -> "../sources/screen1/sa-sample-screencast.avi" [label="parent" style=solid color=darkblue ]
 +
"../sources/screen1/source.py" -> "../sources/screen1/sa-sample-screencast.avi.meta" [label="includes" style=dashed color=lightblue ]
 +
"../sources/screen1/source.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/screen1/source.py.avs" -> "../sources/screen1/source.py" [label="parent" style=solid color=darkblue ]
 +
"../sources/screen1/source.py.avs" [style=filled fillcolor=lightgrey]
 +
"../sources/screen1/source.py.avs" -> "../sources/screen1/sa-sample-screencast.avi" [label="includes" style=dashed color=lightblue ]
 +
"../sources/cam1/video.avs$vbitrate=700.avi" [style=filled fillcolor=lightgrey]
 +
"2012-08-08-test.uncut" -> "../sources/cam1/video.avs$vbitrate=700.avi" [label="includes" style=dashed color=lightblue ]
 
}
 
}
  

Revision as of 22:10, 31 August 2012

Title

SeminarAssembler
Author
Stas Fomin
Subfooter

Stas Fomin, 10:50, 4 November 2023

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

Понятная картинка:

Статистика объема снятого и смонтированного видео в CUSTIS.svg

(примеры видео см. в http://lib.custis.ru/it-talks).

А пока основная идея:

Идея SeminarAssembler.svg

SeminarAssembler: WTF? .-.

SeminarAssembler — заставка.svg

Фреймворк быстрого видеомонтажа

  • семинаров.
  • докладов
  • лекций
  • конференций
  • вебинаров

Когда:

  • несколько потоков:
    • камеры
    • скринкасты
    • слайды
  • надо много и быстро

+ Автоматическая конверсия медиаформатов, с правкой размеров/скорости.

Этимология: Seminar .-.

  • Длинное
  • Образовательное
  • Информационно плотное
  • Активный зритель
  • не → Развлекалово, Свадьбы, …

«Видео на конвеере»/SWP-2012

Образовательное видео?

Что такое правильное обучающее IT-видео, как его смотреть, и немного — как готовить, см мой доклад на Software People-2012:

Этимология: Assembler .-.

«Сборка»
    • Множества гетерогенных медиапотоков:
      • Камер
      • Скринкастов
      • Слайдов
      • Переговоров (скайп, IM…).
    • Screen2Log-cкринкаста из блоков
Ассемблер
  • «Двухтермовый, строчный» DSL для программирования сцен:
TRANSITION RandomTrans
00:01:09 S
00:08:16
00:09:09 S
00:17:21

Кому? .-.

  • Программистам
  • Тестировщикам
  • Продвинутым пользователям

Понимающим, что такое:

  • Файл
  • Код
  • Проект
  • Сборка

Принципы .-.

  • Agile-видеомонтаж
    • Быстрая draft-версия
    • Инкрементальные улучшения
  • WYSIWYM — What You See Is What You Mean
    • Максимальная компактность и гибкость:
      • Краткий код + дизайн-шаблоны
      • Целостность
      • Коллаборативный видеомонтаж
  • Сборка
    • Автоматизируемая
    • Инкрементальное обновление
    • Масштабируемая
      • Сборка/по сети
        • вся [ночная]-мощь компьютеров компании.
  • Free & open-source.


НеВелосипед .-.

User Experience:

  • Reuse имеющийся
  • Приобретается полезный
  • свой UI минимален

Использует:

  • ffmpeg
  • Virtual Dub
  • inkscape
  • AVISynth
  • SOX
  • Sonic Visualizer

Опционально:

  • VLC

AVISynth .-.

-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
C++                 293      7375      8416     13858 x   1.51 =       20925.58
C/C++ Header        493     12178     14871     13358 x   1.00 =       13358.00
C                    41      1650      2113      6955 x   0.77 =        5355.35
Bourne Shell          7       276       844      4350 x   3.81 =       16573.50
m4                   14        95        52      1558 x   1.00 =        1558.00
make                  5       250       506      1314 x   2.50 =        3285.00
Assembly              4       115       178       524 x   0.25 =         131.00
HTML                  5         1         5       439 x   1.90 =         834.10
CSS                   2         8         0       258 x   1.00 =         258.00
Teamcenter def        2         2         0         8 x   1.00 =           8.00
-------------------------------------------------------------------------------
SUM:                866     21950     26985     42622 x   1.46 =       62286.53
-------------------------------------------------------------------------------


FFMPEG .-.

--------------------------------------------------------------------------------
Language           files     blank   comment      code    scale   3rd gen. equiv
--------------------------------------------------------------------------------
C                   1302     66172     57266    427936 x   0.77 =      329510.72
C/C++ Header         534      9431     29244     98369 x   1.00 =       98369.00
Assembly              94      3830      4119     38673 x   0.25 =        9668.25
D                   1002         0         0     13844 x   1.70 =       23534.80
Bourne Shell          30       692       375      4920 x   3.81 =       18745.20
make                  31       233        27      2175 x   2.50 =        5437.50
CSS                    1       201        57       839 x   1.00 =         839.00
C++                    3       132       122       782 x   1.51 =        1180.82
Perl                   1        59        61       310 x   4.00 =        1240.00
XSD                    1        21         4       147 x   1.90 =         279.30
Bourne Again Shell     1        11         3        44 x   3.81 =         167.64
HTML                   2         5         0        19 x   1.90 =          36.10
--------------------------------------------------------------------------------
SUM:                3002     80787     91278    588058 x   0.83 =      489008.33
--------------------------------------------------------------------------------

Inkscape .-.

--------------------------------------------------------------------------------
Language           files     blank   comment      code    scale   3rd gen. equiv
--------------------------------------------------------------------------------
C++                  827     60449     61764    303558 x   1.51 =      458372.58
C/C++ Header        1097     32918     58698     87517 x   1.00 =       87517.00
HTML                   9      7522         8     39778 x   1.90 =       75578.20
Python               225      5901      5593     29601 x   4.20 =      124324.20
C                     45      5866      5935     26246 x   0.77 =       20209.42
Java                 494      4040     12449     11088 x   1.36 =       15079.68
XML                   24      1728      1252      6494 x   1.90 =       12338.60
XSLT                  14       580      1096      6352 x   1.90 =       12068.80
Javascript             5       548       635      2598 x   1.48 =        3845.04
Perl                  14       460       353      1889 x   4.00 =        7556.00
make                  39       193        91      1586 x   2.50 =        3965.00
Bourne Shell          22       272       379      1439 x   3.81 =        5482.59
m4                     6       152       117      1080 x   1.00 =        1080.00
CSS                    2        32        32       216 x   1.00 =         216.00
DOS Batch              3        36         5       182 x   0.63 =         114.66
Ruby                   1        26        32       149 x   4.20 =         625.80
Teamcenter def         3         1         0        91 x   1.00 =          91.00
Expect                 1        18         0        56 x   2.00 =         112.00
Bourne Again Shell     1        12         3        48 x   3.81 =         182.88
DTD                    1         5         1        27 x   1.90 =          51.30
--------------------------------------------------------------------------------
SUM:                2833    120759    148443    519995 x   1.59 =      828810.75
--------------------------------------------------------------------------------

VLC .-.

-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
C                   763     58578     56901    302733 x   0.77 =      233104.41
C/C++ Header        662     14905     32261     66771 x   1.00 =       66771.00
C++                 254     12867     11783     64379 x   1.51 =       97212.29
Bourne Shell         35     12176      5895     49867 x   3.81 =      189993.27
Objective C          46      4575      2896     25531 x   2.96 =       75571.76
m4                   40      1596       774     15645 x   1.00 =       15645.00
Javascript            8       310       777      9469 x   1.48 =       14014.12
make                153       917      1278      7653 x   2.50 =       19132.50
Lua                  52       785       433      5160 x   4.00 =       20640.00
XML                  12        67       148      1541 x   1.90 =        2927.90
HTML                 17        31       154      1425 x   1.90 =        2707.50
CSS                   4        87       181       994 x   1.00 =         994.00
Assembly              9       140        48       958 x   0.25 =         239.50
MUMPS                 2       115         0       565 x   4.21 =        2378.65
DTD                   1         5         6       327 x   1.90 =         621.30
Visual Basic          2        75       121       272 x   2.76 =         750.72
Python                1        55        66       213 x   4.20 =         894.60
MATLAB                1        29         0       124 x   4.00 =         496.00
Perl                  2        16        26       112 x   4.00 =         448.00
vim script            1         4        33        83 x   3.00 =         249.00
sed                   2         0         0        16 x   4.00 =          64.00
-------------------------------------------------------------------------------
SUM:               2067    107333    113781    553838 x   1.34 =      744855.52
-------------------------------------------------------------------------------


SeminarAssembler .-.

-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
Python               27       496       553      1792 x   4.20 =        7526.40
HTML                  1        55        78       238 x   1.90 =         452.20
Lua                   1         6         5        33 x   4.00 =         132.00
DOS Batch             1         0         0         1 x   0.63 =           0.63
-------------------------------------------------------------------------------
SUM:                 30       557       636      2064 x   3.93 =        8111.23
-------------------------------------------------------------------------------

Интерфейс

  • Like svn/hg/git
  • Где нужен UI — используется Inkscape, VirtualDub, SonicVisualizer, VLC.

[svg]

Сборка .-.

[svg]

Инсталляция .-.


Исходники .-.