FFmpeg Execution Graph
%%{init: {"theme": "base","curve": "stepAfter","rankSpacing": 10,"nodeSpacing": 10,"themeCSS": ".root { --ff-colvideo: #6eaa7b; --ff-colaudio: #477fb3; --ff-colsubtitle: #ad76ab; --ff-coltext: #666; } .cluster span { color: var(--ff-coltext); } .node.ff-filter rect { rx: 10; ry: 10; stroke-width: 1px; stroke: #d3d3d3; fill:url(#ff-filtergradient); filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.1));} .node.ff-decoder rect, .node.ff-encoder rect { stroke-width: 1px; stroke: #d3d3d3; fill:url(#ff-filtergradient); filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.1));} .node.ff-inputfile .label foreignObject, .node.ff-outputfile .label foreignObject { overflow: visible; } .cluster.ff-inputfile .cluster-label foreignObject div:not(foreignObject div div), .cluster.ff-outputfile .cluster-label foreignObject div:not(foreignObject div div) { display: table !important; } .nodeLabel div.ff-inputfile, .nodeLabel div.ff-outputfile { font-size: 1.1rem; font-weight: 500; min-width: 14rem; width: 100%; display: flex; color: var(--ff-coltext); margin-top: 0.1rem; line-height: 1.35; padding-bottom: 1.9rem; } .nodeLabel div.ff-outputfile { flex-direction: row-reverse; } .ff-inputfile .index, .ff-outputfile .index { order: 2; color: var(--ff-coltext); text-align: center; border-radius: 0.45rem; border: 0.18em solid #666666db; font-weight: 600; padding: 0 0.3em; opacity: 0.8; } .ff-inputfile .index::before { content: \'In \'; } .ff-outputfile .index::before { content: \'Out \'; } .ff-inputfile .demuxer_name, .ff-outputfile .muxer_name { flex: 1; order: 1; font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; max-width: 8rem; align-content: center; margin: 0.2rem 0.4rem 0 0.4rem } .ff-inputfile .file_extension, .ff-outputfile .file_extension { order: 0; background-color: #888; color: white; text-align: center; border-radius: 0.45rem; font-weight: 600; padding: 0 0.4em; align-content: center; opacity: 0.8; } .ff-inputfile .url, .ff-outputfile .url { order: 4; text-align: center; position: absolute; left: 0; right: 0; bottom:0.75rem; font-size: 0.7rem; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0 0.3rem; direction: rtl; color: #999; } .node.ff-inputstream rect, .node.ff-outputstream rect { padding: 0 !important; margin: 0 !important; border: none !important; fill: #fcfcfc; stroke: #e5e5e5 !important; height: 2.7rem; transform: translateY(0.2rem); filter: none; rx: 3; ry: 3;} .node.ff-inputstream .label foreignObject, .node.ff-outputstream .label foreignObject { transform: translateY(-0.2%); overflow: visible; } .node.ff-inputstream .label foreignObject div:not(foreignObject div div), .node.ff-outputstream .label foreignObject div:not(foreignObject div div) { display: block !important; line-height: 1.5 !important; } .nodeLabel div.ff-inputstream, .nodeLabel div.ff-outputstream { font-size: 1.0rem; font-weight: 500; min-width: 12rem; width: 100%; display: flex; } .nodeLabel div.ff-outputstream { flex-direction: row-reverse; } .ff-inputstream .name, .ff-outputstream .name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; align-content: center; margin-bottom: -0.15rem; } .ff-inputstream .index, .ff-outputstream .index { flex: 0 0 1.4rem; background-color: #888; color: white; text-align: center; border-radius: 0.3rem; font-weight: 600; margin-right: -0.3rem; margin-left: 0.4rem; opacity: 0.8; } .ff-outputstream .index { margin-right: 0.6rem; margin-left: -0.4rem; } .ff-inputstream::before, .ff-outputstream::before { font-variant-emoji: text; flex: 0 0 2rem; margin-left: -0.8rem; margin-right: 0.2rem; } .ff-outputstream::before { margin-left: 0.2rem; margin-right: -0.6rem; } .ff-inputstream.video::before, .ff-outputstream.video::before { content: \'\\239A\'; color: var(--ff-colvideo); font-size: 2.25rem; line-height: 0.5; font-weight: bold; } .ff-inputstream.audio::before, .ff-outputstream.audio::before { content: \'\\1F39D\'; color: var(--ff-colaudio); font-size: 1.75rem; line-height: 0.9; } .ff-inputstream.subtitle::before, .ff-outputstream.subtitle::before { content: \'\\1AC\'; color: var(--ff-colsubtitle); font-size: 1.2rem; line-height: 1.1; transform: scaleX(1.5); margin-top: 0.050rem; } .ff-inputstream.attachment::before, .ff-outputstream.attachment::before { content: \'\\1F4CE\'; font-size: 1.3rem; line-height: 1.15; } .ff-inputstream.data::before, .ff-outputstream.data::before { content: \'\\27E8\\2219\\2219\\2219\\27E9\'; font-size: 1.15rem; line-height: 1.17; letter-spacing: -0.3px; } path.flowchart-link[id|=\'video\'] { stroke: var(--ff-colvideo); } path.flowchart-link[id|=\'audio\'] { stroke: var(--ff-colaudio); } path.flowchart-link[id|=\'subtitle\'] { stroke: var(--ff-colsubtitle); } marker.marker path { fill: context-stroke; } .edgeLabel foreignObject { transform: translateY(-1rem); } .edgeLabel p { background: transparent; white-space: nowrap; margin: 1rem 0.5rem !important; font-weight: 500; color: var(--ff-coltext); } .edgeLabel, .labelBkg { background: transparent;} .edgeLabels .edgeLabel *{ font-size: 0.8rem;} .node.ff-filter .label foreignObject { transform: translateY(-0.4rem); overflow: visible; } .nodeLabel div.ff-filter { font-size: 1.0rem; font-weight: 500; text-transform: uppercase; min-width: 5.5rem; margin-bottom: 0.5rem; } .nodeLabel div.ff-filter span { color: inherit; } .ff-inputfiles rect, .ff-outputfiles rect, .ff-inputstreams rect, .ff-outputstreams rect, .ff-decoders rect, .ff-encoders rect { stroke-width: 0; stroke: transparent; filter: none !important; fill: transparent !important; display: none !important; } .cluster rect { stroke: #dfdfdf !important; transform: translateY(-2.3rem); filter: drop-shadow( 1px 2px 2px rgba(185,185,185,0.2)) !important; rx: 8; ry: 8; } .cluster.ff-inputfile rect, .cluster.ff-outputfile rect { transform: translateY(-1.8rem); } .cluster.ff-filters rect { stroke-dasharray: 6 !important; stroke-width: 1.3px; stroke: #d1d1d1 !important; filter: none !important; } .cluster-label { font-size: 1.1rem; } .cluster-label .nodeLabel { display: block; font-weight: 500; color: var(--ff-coltext); } .cluster-label div { max-width: unset !important; padding: 3px; } .cluster.ff-filters div.ff-filters .id { display: none; } .cluster.ff-filters div.ff-filters .name { margin-right: 0.5rem; font-size: 0.9rem; } .cluster.ff-filters div.ff-filters .description { font-weight: 400; font-size: 0.75rem; vertical-align: middle; color: #777; font-family: Cascadia Code, Lucida Console, monospace; } .nodeLabel div.ff-decoder, .nodeLabel div.ff-encoder { font-size: 0.85rem; font-weight: 500; min-width: 3.5rem; } .cluster-label foreignObject { transform: translateY(-0.7rem); } ","fontFamily": "Roboto,Segoe UI,sans-serif","themeVariables": { "clusterBkg": "white", "primaryBorderColor": "gray", "lineColor": "gray", "secondaryTextColor": "gray", "tertiaryBorderColor": "gray", "primaryTextColor": "#666", "secondaryTextColor": "red" },"flowchart": { "subGraphTitleMargin": { "top": -15, "bottom": 20 }, "diagramPadding": 20, "curve": "stepAfter" } }}%%
flowchart LR
gradient_def@{ shape: text, label: " " }
subgraph Graph_0_0["Graph 0.0 [0:0]scale_qsv=w=512:h=256[f1_out0] Graph_0_0
"]
G0_Parsed_scale_qsv_0("scale_qsv
"):::ff-filter
G0_format("format
"):::ff-filter
end
class Graph_0_0 ff-filters
in_0_0 video-in_0_0-G0_Parsed_scale_qsv_0@== "qsv | nv12 1920x800 1:1 " ==> G0_Parsed_scale_qsv_0
G0_Parsed_scale_qsv_0 video-G0_Parsed_scale_qsv_0-G0_format@== "qsv | nv12 512x256 1:1 " ==> G0_format
G0_format video-G0_format-out__0_0@== "qsv | nv12 512x256 1:1 " ==> out__0_0
subgraph Graph_1_-1["Graph 1.-1 aecho,volume Graph_1_-1
"]
G1_Parsed_aecho_0("aecho
"):::ff-filter
G1_Parsed_volume_1("volume
"):::ff-filter
G1_format_out__0_1("aformat
"):::ff-filter
G1_auto_aresample_0("aresample
"):::ff-filter
end
class Graph_1_-1 ff-filters
in_0_1 audio-in_0_1-G1_Parsed_aecho_0@== "7.1 8 ch 48.1 kHz " ==> G1_Parsed_aecho_0
G1_Parsed_aecho_0 audio-G1_Parsed_aecho_0-G1_auto_aresample_0@== "7.1 8 ch 48.1 kHz " ==> G1_auto_aresample_0
G1_auto_aresample_0 audio-G1_auto_aresample_0-G1_Parsed_volume_1@== "7.1 8 ch 48.1 kHz " ==> G1_Parsed_volume_1
G1_Parsed_volume_1 audio-G1_Parsed_volume_1-G1_format_out__0_1@== "7.1 8 ch 48.1 kHz " ==> G1_format_out__0_1
G1_format_out__0_1 audio-G1_format_out__0_1-out__0_1@== "7.1 8 ch 48.1 kHz " ==> out__0_1
subgraph G2_Inputs["
"]
subgraph Input_0["0 matroska,webm mkv U:\TestMedia\Test\Test.mkv
"]
subgraph InputStreams_0["
"]
r_in_0_0("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 0
"):::ff-inputstream
r_in_0_1("DCA (DTS Coherent Acoustics) 1
"):::ff-inputstream
r_in_0_2("DCA (DTS Coherent Acoustics) 2
"):::ff-inputstream
r_in_0_3("HDMV Presentation Graphic Stream subtitles 3
"):::ff-inputstream
r_in_0_4("DVD subtitles 4
"):::ff-inputstream
r_in_0_5("HDMV Presentation Graphic Stream subtitles 5
"):::ff-inputstream
r_in_0_6("HDMV Presentation Graphic Stream subtitles 6
"):::ff-inputstream
r_in_0_7("DVD subtitles 7
"):::ff-inputstream
end
class InputStreams_0 ff-inputstreams
end
class Input_0 ff-inputfile
end
class G2_Inputs ff-inputfiles
subgraph G2_Decoders["
"]
in_0_0(["h264_qsv
"]):::ff-decoder
in_0_1(["dca
"]):::ff-decoder
in_0_3(["pgssub
"]):::ff-decoder
end
class G2_Decoders ff-decoders
r_in_0_0 video-r_in_0_0-in_0_0@==> in_0_0
r_in_0_1 audio-r_in_0_1-in_0_1@==> in_0_1
r_in_0_3 subtitle-r_in_0_3-in_0_3@==> in_0_3
subgraph G2_Encoders["
"]
out__0_0(["hevc_qsv
"]):::ff-encoder
out__0_1(["libvorbis
"]):::ff-encoder
out__0_2(["dvbsub
"]):::ff-encoder
end
class G2_Encoders ff-encoders
out__0_0 video-out__0_0-r_out__0_0@==> r_out__0_0
out__0_1 audio-out__0_1-r_out__0_1@==> r_out__0_1
out__0_2 subtitle-out__0_2-r_out__0_2@==> r_out__0_2
subgraph G2_Outputs["
"]
subgraph Output_0["0 matroska mkv out1.mkv
"]
subgraph OutputStreams_0["
"]
r_out__0_0("H.265 / HEVC (High Efficiency Video Coding) 0
"):::ff-outputstream
r_out__0_1("Vorbis 1
"):::ff-outputstream
r_out__0_2("DVB subtitles 2
"):::ff-outputstream
r_out__0_3("DVD subtitles 3
"):::ff-outputstream
end
class OutputStreams_0 ff-outputstreams
end
class Output_0 ff-outputfile
end
class G2_Outputs ff-outputfiles
in_0_3 subtitle-in_0_3-out__0_2@== "Transcode " ==> out__0_2
r_in_0_7 subtitle-r_in_0_7-r_out__0_3@== "Stream Copy " ==> r_out__0_3