Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LeifAndersen/68c87563c8f2f7af3ea7913b65c651b6 to your computer and use it in GitHub Desktop.
Save LeifAndersen/68c87563c8f2f7af3ea7913b65c651b6 to your computer and use it in GitHub Desktop.
FFMPEG filtergraph
digraph G {
node0 [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 #<void>\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node1 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"concat\" '#hash((\"v\" . 0) (\"a\" . 1) (\"n\" . 1)) #f)\n 'video\n (filter \"concat\" '#hash((\"v\" . 1) (\"a\" . 0) (\"n\" . 1)) #f))\n '#:props\n '#hash((\"width\" . 1920)\n (\"end\" . 20)\n (\"fps\" . 30)\n (\"height\" . 1080)\n (\"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()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node3 [label="(filter-node\n '#:filters\n (hash 'audio (filter \"afifo\" '#hash() #f) 'video (filter \"fifo\" '#hash() #f))\n '#:props\n '#hash((\"width\" . 1920)\n (\"end\" . 20)\n (\"fps\" . 30)\n (\"height\" . 1080)\n (\"start\" . 0))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node4 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"anull\" '#hash() #f)\n 'video\n (filter \"pad\" '#hash((\"width\" . 1920) (\"height\" . 1080)) #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node5 [label="(filter-node\n '#:filters\n (hash 'video (filter \"fps\" '#hash((\"fps\" . 25)) #f))\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node6 [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()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node7 [label="(source-node\n '#:file\n #f\n '#:props\n '#hash((\"width\" . 1920)\n (\"pix-fmt\" . yuv420p)\n (\"sample-rate\" . 44100)\n (\"time-base\" . 1/15360)\n (\"end\" . 512087/2560)\n (\"fps\" . 30)\n (\"height\" . 1080)\n (\"sample-fmt\" . fltp)\n (\"start\" . 0))\n '#:counts\n '#hash((video . 1) (audio . 1)))\n"];
node8 [label="(sink-node\n '#:file\n #<path:/Users/leif/test.mp4>\n '#:props\n '#hash()\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node9 [label="(filter-node\n '#:filters\n (hash\n 'audio\n (filter \"atrim\" '#hash((\"end\" . 30) (\"start\" . 10)) #f)\n 'video\n (filter \"trim\" '#hash((\"end\" . 30) (\"start\" . 10)) #f))\n '#:props\n '#hash((\"width\" . 1920)\n (\"pix-fmt\" . yuv420p)\n (\"sample-rate\" . 44100)\n (\"time-base\" . 1/15360)\n (\"end\" . 30)\n (\"fps\" . 30)\n (\"height\" . 1080)\n (\"sample-fmt\" . fltp)\n (\"start\" . 10))\n '#:counts\n '#hash((video . 1) (audio . 1)))\n"];
node10 [label="(filter-node\n '#:filters\n (hash 'video (filter \"scale\" '#hash((\"width\" . 1920) (\"height\" . 1080)) #f))\n '#:props\n '#hash((\"fps\" . 30)\n (\"time-base\" . 1/15360)\n (\"pix-fmt\" . yuv420p)\n (\"width\" . 1920)\n (\"end\" . 30)\n (\"sample-rate\" . 44100)\n (\"start\" . 10)\n (\"height\" . 1080)\n (\"sample-fmt\" . fltp))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node11 [label="(filter-node\n '#:filters\n (hash 'video (filter \"fps\" '#hash((\"fps\" . 30)) #f))\n '#:props\n '#hash((\"fps\" . 30)\n (\"time-base\" . 1/15360)\n (\"pix-fmt\" . yuv420p)\n (\"width\" . 1920)\n (\"end\" . 30)\n (\"sample-rate\" . 44100)\n (\"start\" . 10)\n (\"height\" . 1080)\n (\"sample-fmt\" . fltp))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
node12 [label="(filter-node\n '#:filters\n (hash 'video (filter \"format\" '#hash((\"pix_fmts\" . \"yuv420p\")) #f))\n '#:props\n '#hash((\"fps\" . 30)\n (\"time-base\" . 1/15360)\n (\"pix-fmt\" . yuv420p)\n (\"width\" . 1920)\n (\"end\" . 30)\n (\"sample-rate\" . 44100)\n (\"start\" . 10)\n (\"height\" . 1080)\n (\"sample-fmt\" . fltp))\n '#:counts\n '#hash((audio . 1) (video . 1)))\n"];
subgraph U {
edge [dir=none];
}
subgraph D {
node0 -> node2 [label="1"];
node1 -> node3 [label="1"];
node2 -> node1 [label="0"];
node3 -> node4 [label="1"];
node4 -> node5 [label="1"];
node5 -> node6 [label="1"];
node6 -> node8 [label="1"];
node7 -> node9 [label="1"];
node9 -> node10 [label="1"];
node10 -> node11 [label="1"];
node11 -> node12 [label="1"];
node12 -> node0 [label="1"];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment