Skip to content

Instantly share code, notes, and snippets.

View BenChung's full-sized avatar

Benjamin Chung BenChung

  • University of Washington
  • Seattle, WA
View GitHub Profile
class Lines
{
public class VectorLine
{
private LineRenderer renderer;
public VectorLine(LineRenderer renderer)
{
this.renderer = renderer;
}
#lang racket
(require video/base)
(require video/render)
(define background (color "black" #:properties (hash "start" 0 "end" +inf.0 "width" 1280 "height" 720)))
(define logo (image "pliss-logo-col.png"))
(define output (multitrack
background
digraph G {
node0 [label="(source-node\n '#:file\n \"C:\\\\Users\\\\Ben Chung\\\\Videos\\\\pliss\\\\PLISS_Jun21_13-42-00.mov\"\n '#:props\n '#hash((\"width\" . 720)\n (\"pix-fmt\" . yuvj420p)\n (\"sample-rate\" . 16000)\n (\"time-base\" . 1/24)\n (\"end\" . 99949/24)\n (\"fps\" . 24)\n (\"height\" . 480)\n (\"sample-fmt\" . fltp)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 2) (audio . 1)))\n"];
node1 [label="(mux-node\n '#:type\n 'video\n '#:index\n 2\n '#:in-counts\n '#hash((video . 2) (audio . 1))\n '#:props\n '#hash((\"width\" . 720)\n (\"pix-fmt\" . yuvj420p)\n (\"sample-rate\" . 16000)\n (\"time-base\" . 1/24)\n (\"end\" . 99949/24)\n (\"fps\" . 24)\n (\"height\" . 480)\n (\"sample-fmt\" . fltp)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node2 [label="(source-node\n '#:file\n \"C:\\\\Users\\\\Ben Chung\\\\Videos\\\\pliss\\\\PLISS_Jun21_13-42-00.mov\"
C:\Users\Ben Chung\Documents\GitHub\video\video\private\ffmpeg-pipeline.rkt:265:19: (avformat-open-input file #f #f)
C:\Users\Ben Chung\Documents\GitHub\video\video\private\video.rkt:358:17: (file->stream-bundle path)
C:\Users\Ben Chung\Documents\GitHub\video\video\private\video.rkt:186:22: (let (unsyntax (for/list ((i (in-list ....)) (j (....))) (quasisyntax ((....) ....)))) #f body ...)
C:\Users\Ben Chung\Documents\GitHub\video\video\private\video.rkt:183:17: (call-with-values (╬╗ () (let ((this v)) (let (....) ....))) list)
C:\Users\Ben Chung\Documents\GitHub\video\video\private\video.rkt:177:22: (convert-name v)
C:\Users\Ben Chung\Documents\GitHub\video\video\private\video.rkt:50:4: (file:convert source (quote video))
C:\Users\Ben Chung\Documents\GitHub\video\video\render.rkt:313:15: video-sink
C:\Users\Ben Chung\Documents\GitHub\video\video\render.rkt:309:6: (call-with-semaphore current-render-settings-lock (╬╗ () (set! video-graph (video:mk-render-graph)) (set! video-sink (....)) (set! c
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . 2) (\"exprs\" . \"0\")) #f)\n 'video\n (filter \"color\" '#hash((\"d\" . 2) (\"c\" . \"0x000000ff\")) #f))\n '#:props\n '#hash((\"end\" . 2) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"end\" . 2) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash 'audio (filter \"afifo\" '#hash() #f) 'video (filter \"fifo\" '#hash() #f))\n '#:props\n '#hash((\"end\" . 2) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 2) (\
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anull\" '#hash() #f)\n 'video\n (filter \"scale\" '#hash((\"width\" . 1280) (\"height\" . 720)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash 'video (filter \"fps\" '#hash((\"fps\" . 24)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter\n \"aformat\"\n '#hash((\"sample_fmts\" . fltp)\n (\"sample_rates\" . 44100)\n (\"channel_layouts\" . stereo))\n #f)\n 'vid
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 2) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anull\" '#hash() #f)\n 'video\n (filter \"scale\" '#hash((\"width\" . 1280) (\"height\" . 720)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash 'video (filter \"fps\" '#hash((\"fps\" . 24)) #f))\n '#:props\n '#hash((\"end\" . +inf.0) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter\n \"aformat\"\n '#hash((\"sample_fmts\" . fltp)\n (\"sample_rates\" . 44100)\n (\"channel_layouts\" . stereo))\n #f)\n 'vid
#lang racket
(require video/base)
(require video/render)
(define background (color "black"
#:properties (hash "start" 0 "end" +inf.0)))
(render/pretty background "composite.mov"
#:mode 'verbose
#:width 1280
#:height 720
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . +inf.0) (\"exprs\" . \"0\")) #f)\n 'video\n (filter\n \"color\"\n '#hash((\"d\" . +inf.0) (\"c\" . \"0x000000ff\") (\"size\" . \"1280x720\"))\n #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash 'video (filter \"scale\" '#hash((\"width\" . 1280) (\"height\" . 720)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . +inf.0) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . +inf.0) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter\n \"aformat\"\n '#hash((\"sample_fmts\" . fltp)\n (\"sample_rates\" . 44100)\n (\"channel_layouts\" . stereo))\n #f)\n 'video\n (filter \"format\" '#hash((\"pix_fmts\" . yuv420p)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asetrate\" '#hash((\"r\" . 44100.0)) #f)\n 'video\n (filter \"setpts\" '#hash((\"expr\" . \"(PTS-STARTPTS)*1.0\")) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node2 [label="(sink-node\n '#:file\n #<path:C:\\Users\\Ben Chung\\Videos\\PLISS\\composite.mov>\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"ae