From afac0cda745a4d04c6092b270cedafbd13791ac2 Mon Sep 17 00:00:00 2001 From: Andrew Weaver Date: Fri, 21 Dec 2018 15:39:49 -0800 Subject: [PATCH 1/3] start xstack --- index.html | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/index.html b/index.html index 293f25a..c7aedbe 100644 --- a/index.html +++ b/index.html @@ -1692,6 +1692,29 @@ + + + +
+

This filter allows for the vertical and horizontal stacking of multiple video sources into one output.

+

This filter is useful for the creation of output windows such as the one utilized in vrecord.

+

ffplay -f lavfi -i testsrc -vf "split=3[a][b][c],[a][b][c]xstack=inputs=3:layout=0_0|0_h0|0_h0+h1[out]"

+

The following example uses the 'testsrc' virtual input combined with the split filter to generate the multiple inputs. +

+
ffplay
starts the command
+
-f lavfi -i testsrc
tells ffplay to use the Libavfilter's virtual device input 'testsrc'
+
-vf
tells ffmpeg that you will be applying a filter chain to the input
+
split=3[a][b][c],
splits the input into three separate signals within the filter graph, named a, b and c respectively. The , separates this from the next part of the filter chain. +
[a][b][c]xstack=inputs=3:
tells ffmpeg that you will be using the xstack filter on the three named inputs a,b and c. The final : is a necessary divider between the number of inputs, and the orientation of outputs portion of the xstack command.
+
layout=0_0|0_h0|0_h0+h1
This is where the locations of the video sources in the ouput stack are designated. The locations are specified in order of input (so in this example 0_0 corresponds to input [a]. Inputs must be separated with a |. The two numbers represent columns and rows, with counting starting at zero rather than one. In this example, 0_0 means that input [a] is placed at the first row of the first column in the output. 0_h0 places the next input in the first column, at a row corresponding with the height of the first input. 0_h0+h1 places the final input in the first column, at a row corresponding with the height of the first input plus the height of the second input. This has the effect of creating a vertical stack of the three inputs. This could be made a horizontal stack by changing this portion of the command to layout=0_0|w0_0|w0+w1_0.
+
[out]
this ends the filter chain and designates the final output.
+
+
+
+ +
+ +

View or strip metadata

From c78323d8e7aa47e56a8ad59ce618d08b438212a7 Mon Sep 17 00:00:00 2001 From: Andrew Weaver Date: Wed, 2 Jan 2019 19:23:18 -0800 Subject: [PATCH 2/3] clarifications --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index c7aedbe..717513d 100644 --- a/index.html +++ b/index.html @@ -1704,9 +1704,9 @@
ffplay
starts the command
-f lavfi -i testsrc
tells ffplay to use the Libavfilter's virtual device input 'testsrc'
-vf
tells ffmpeg that you will be applying a filter chain to the input
-
split=3[a][b][c],
splits the input into three separate signals within the filter graph, named a, b and c respectively. The , separates this from the next part of the filter chain. +
split=3[a][b][c],
splits the input into three separate signals within the filter graph, named a, b and c respectively. (These are variables and any names could be used as long as they are kept consistent in following steps). The , separates this from the next part of the filter chain.
[a][b][c]xstack=inputs=3:
tells ffmpeg that you will be using the xstack filter on the three named inputs a,b and c. The final : is a necessary divider between the number of inputs, and the orientation of outputs portion of the xstack command.
-
layout=0_0|0_h0|0_h0+h1
This is where the locations of the video sources in the ouput stack are designated. The locations are specified in order of input (so in this example 0_0 corresponds to input [a]. Inputs must be separated with a |. The two numbers represent columns and rows, with counting starting at zero rather than one. In this example, 0_0 means that input [a] is placed at the first row of the first column in the output. 0_h0 places the next input in the first column, at a row corresponding with the height of the first input. 0_h0+h1 places the final input in the first column, at a row corresponding with the height of the first input plus the height of the second input. This has the effect of creating a vertical stack of the three inputs. This could be made a horizontal stack by changing this portion of the command to layout=0_0|w0_0|w0+w1_0.
+
layout=0_0|0_h0|0_h0+h1
This is where the locations of the video sources in the output stack are designated. The locations are specified in order of input (so in this example 0_0 corresponds to input [a]. Inputs must be separated with a |. The two numbers represent columns and rows, with counting starting at zero rather than one. In this example, 0_0 means that input [a] is placed at the first row of the first column in the output. 0_h0 places the next input in the first column, at a row corresponding with the height of the first input. 0_h0+h1 places the final input in the first column, at a row corresponding with the height of the first input plus the height of the second input. This has the effect of creating a vertical stack of the three inputs. This could be made a horizontal stack by changing this portion of the command to layout=0_0|w0_0|w0+w1_0.
[out]
this ends the filter chain and designates the final output.
From 65161a567ed561e0626a4999ee8571525cb4d9b6 Mon Sep 17 00:00:00 2001 From: Andrew Weaver Date: Wed, 2 Jan 2019 23:13:36 -0800 Subject: [PATCH 3/3] fixes --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 717513d..abb02e5 100644 --- a/index.html +++ b/index.html @@ -1696,15 +1696,15 @@
-

This filter allows for the vertical and horizontal stacking of multiple video sources into one output.

-

This filter is useful for the creation of output windows such as the one utilized in vrecord.

+

This filter enables vertical and horizontal stacking of multiple video sources into one output.

+

This filter is useful for the creation of output windows such as the one utilized in vrecord.

ffplay -f lavfi -i testsrc -vf "split=3[a][b][c],[a][b][c]xstack=inputs=3:layout=0_0|0_h0|0_h0+h1[out]"

-

The following example uses the 'testsrc' virtual input combined with the split filter to generate the multiple inputs. +

The following example uses the 'testsrc' virtual input combined with the split filter to generate the multiple inputs.

ffplay
starts the command
-f lavfi -i testsrc
tells ffplay to use the Libavfilter's virtual device input 'testsrc'
-vf
tells ffmpeg that you will be applying a filter chain to the input
-
split=3[a][b][c],
splits the input into three separate signals within the filter graph, named a, b and c respectively. (These are variables and any names could be used as long as they are kept consistent in following steps). The , separates this from the next part of the filter chain. +
split=3[a][b][c],
splits the input into three separate signals within the filter graph, named a, b and c respectively. (These are variables and any names could be used as long as they are kept consistent in following steps). The , separates this from the next part of the filter chain.
[a][b][c]xstack=inputs=3:
tells ffmpeg that you will be using the xstack filter on the three named inputs a,b and c. The final : is a necessary divider between the number of inputs, and the orientation of outputs portion of the xstack command.
layout=0_0|0_h0|0_h0+h1
This is where the locations of the video sources in the output stack are designated. The locations are specified in order of input (so in this example 0_0 corresponds to input [a]. Inputs must be separated with a |. The two numbers represent columns and rows, with counting starting at zero rather than one. In this example, 0_0 means that input [a] is placed at the first row of the first column in the output. 0_h0 places the next input in the first column, at a row corresponding with the height of the first input. 0_h0+h1 places the final input in the first column, at a row corresponding with the height of the first input plus the height of the second input. This has the effect of creating a vertical stack of the three inputs. This could be made a horizontal stack by changing this portion of the command to layout=0_0|w0_0|w0+w1_0.
[out]
this ends the filter chain and designates the final output.