Skip to content

Instantly share code, notes, and snippets.

@BenChung
Created July 28, 2017 18:20
Show Gist options
  • Save BenChung/c610e12e47e264c30e67492aaaaae9db to your computer and use it in GitHub Desktop.
Save BenChung/c610e12e47e264c30e67492aaaaae9db to your computer and use it in GitHub Desktop.
#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
(composite-transition 40/1280 411/720 400/1280 209/688)
logo))
(render/pretty output "composite.mov"
#:width 1280
#:height 720
#:fps 24)
digraph G {
node0 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anullsink\" '#hash() #f)\n 'video\n (filter \"nullsink\" '#hash() #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash 'audio (filter \"afifo\" '#hash() #f) 'video (filter \"fifo\" '#hash() #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="(source-node\n '#:file\n \"C:\\\\Users\\\\Ben Chung\\\\Videos\\\\pliss\\\\pliss-logo-col.png\"\n '#:props\n '#hash((\"width\" . 1280)\n (\"pix-fmt\" . rgba)\n (\"sample-rate\" . #f)\n (\"time-base\" . 1/25)\n (\"end\" . +inf.0)\n (\"fps\" . 25)\n (\"height\" . 668)\n (\"sample-fmt\" . #f)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 0) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 0) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"width\" . 1280)\n (\"pix-fmt\" . rgba)\n (\"sample-rate\" . #f)\n (\"time-base\" . 1/25)\n (\"end\" . +inf.0)\n (\"fps\" . 25)\n (\"height\" . 668)\n (\"sample-fmt\" . #f)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node4 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 0) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 0) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node5 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asplit\" '#hash((0 . 2)) #f)\n 'video\n (filter \"split\" '#hash((0 . 2)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node6 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asplit\" '#hash((0 . 2)) #f)\n 'video\n (filter \"split\" '#hash((0 . 2)) #f))\n '#:props\n '#hash((\"width\" . 1280)\n (\"pix-fmt\" . rgba)\n (\"sample-rate\" . #f)\n (\"time-base\" . 1/25)\n (\"end\" . +inf.0)\n (\"fps\" . 25)\n (\"height\" . 668)\n (\"sample-fmt\" . #f)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node7 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asetpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f)\n 'video\n (filter \"setpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node8 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"asetpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f)\n 'video\n (filter \"setpts\" '#hash((\"expr\" . \"PTS-STARTPTS\")) #f))\n '#:props\n '#hash((\"width\" . 1280)\n (\"pix-fmt\" . rgba)\n (\"sample-rate\" . #f)\n (\"time-base\" . 1/25)\n (\"end\" . +inf.0)\n (\"fps\" . 25)\n (\"height\" . 668)\n (\"sample-fmt\" . #f)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node9 [label="(filter-node\n '#:filters\n (hash 'video (filter \"scale\" '#hash((\"w\" . 360) (\"h\" . -8268/43)) #f))\n '#:props\n '#hash((\"width\" . 1280)\n (\"pix-fmt\" . rgba)\n (\"sample-rate\" . #f)\n (\"time-base\" . 1/25)\n (\"end\" . +inf.0)\n (\"fps\" . 25)\n (\"height\" . 668)\n (\"sample-fmt\" . #f)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1)))\n"];
node10 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"amix\" '#hash() #f)\n 'video\n (filter \"overlay\" '#hash((\"x\" . 40) (\"y\" . 411)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node11 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anullsink\" '#hash() #f)\n 'video\n (filter \"nullsink\" '#hash() #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node12 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"aevalsrc\" '#hash((\"d\" . 999999999) (\"exprs\" . \"0\")) #f)\n 'video\n (filter \"color\" '#hash((\"c\" . \"0x000000ff\") (\"size\" . \"1280x720\")) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node13 [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"];
node14 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 999999999) (\"start\" . 0)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 999999999) (\"start\" . 0)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node15 [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((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node16 [label="(filter-node\n '#:filters\n (hash 'video (filter \"fps\" '#hash((\"fps\" . 24)) #f))\n '#:props\n '#hash((\"width\" . 1280) (\"end\" . +inf.0) (\"height\" . 720) (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node17 [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"];
node18 [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"];
node19 [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"];
subgraph U {
edge [dir=none];
}
subgraph D {
node1 -> node14 [label="1"];
node2 -> node3 [label="1"];
node3 -> node6 [label="1"];
node4 -> node5 [label="1"];
node5 -> node7 [label="1"];
node5 -> node11 [label="2"];
node6 -> node8 [label="2"];
node6 -> node0 [label="1"];
node7 -> node10 [label="1"];
node8 -> node9 [label="1"];
node9 -> node10 [label="2"];
node10 -> node1 [label="1"];
node12 -> node13 [label="1"];
node13 -> node4 [label="1"];
node14 -> node15 [label="1"];
node15 -> node16 [label="1"];
node16 -> node17 [label="1"];
node17 -> node18 [label="1"];
node18 -> node19 [label="1"];
}
}
[video0]nullsink;[audio2]afifo[audio1];[video4]fifo[video3];[video5]fifo[video6];[video6]trim=end=0:start=0[video7];[audio9]atrim=end=0:start=0[audio8];[video11]trim=end=0:start=0[video10];[audio8]asplit=2[audio12][audio13];[video10]split=2[video14][video15];[video7]split=2[video0][video16];[audio12]asetpts=expr=PTS-STARTPTS[audio17];[video14]setpts=expr=PTS-STARTPTS[video18];[video16]setpts=expr=PTS-STARTPTS[video19];[video19]scale=w=360:h=-8268/43[video20];[audio17][audio21]amix[audio2];[video18][video20]overlay=x=40:y=411[video4];[audio13]anullsink;[video15]nullsink;aevalsrc=d=999999999:exprs=0[audio22];color=c=0x000000ff:size=1280x720[video23];[audio22]anull[audio9];[video23]scale=width=1280:height=720[video11];[audio1]atrim=end=999999999:start=0[audio24];[video3]trim=end=999999999:start=0[video25];[audio24]anull[audio26];[video25]scale=width=1280:height=720[video27];[audio26]anull[audio28];[video27]fps=fps=24[video29];[audio28]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo[audio30];[video29]format=pix_fmts=yuv420p[video31];[audio30]asetrate=r=44100.0[audio32];[video31]setpts=expr=(PTS-STARTPTS)*1.0[video33];aevalsrc=d=999999999:exprs=0[audio21]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment