* [FFmpeg-devel] [PATCH 1/3] tools/ffmpeg-sg: Add show-graph wrapper script for Linux
2025-06-09 19:23 [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature) ffmpegagent
@ 2025-06-09 19:23 ` softworkz
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 2/3] tools/ffmpeg-sg: Add show-graph wrapper script for Windows softworkz
` (3 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: softworkz @ 2025-06-09 19:23 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: softworkz
From: softworkz <softworkz@hotmail.com>
Signed-off-by: softworkz <softworkz@hotmail.com>
---
tools/ffmpeg-sg | 249 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 249 insertions(+)
create mode 100755 tools/ffmpeg-sg
diff --git a/tools/ffmpeg-sg b/tools/ffmpeg-sg
new file mode 100755
index 0000000000..c8c298f8e0
--- /dev/null
+++ b/tools/ffmpeg-sg
@@ -0,0 +1,249 @@
+#!/bin/bash
+#
+# ffmpeg-sg - FFmpeg Show-Graph Wrapper (aka killer feature)
+# Show the FFmpeg execution graph in default browser
+#
+# Copyright (c) 2025 softworkz
+#
+# This file is part of FFmpeg.
+#
+# FFmpeg is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# FFmpeg is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with FFmpeg; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+set -euo pipefail
+
+# Check for privilege level
+check_privileges() {
+ # Check if running as root (UID 0)
+ if [ "$(id -u)" -eq 0 ]; then
+ echo "Error: This script should not be run as root for security reasons." >&2
+ echo "Media processing and browser launching do not require root privileges." >&2
+ exit 1
+ fi
+
+ # Check if running as sudo
+ if [ -n "${SUDO_USER:-}" ] || [ -n "${SUDO_UID:-}" ]; then
+ echo "Error: This script should not be run with sudo for security reasons." >&2
+ echo "Please run as a regular user: ./ffmpeg-sg [options]" >&2
+ exit 1
+ fi
+
+ # Check other privilege indicators
+ if [ -n "${PKEXEC_UID:-}" ]; then
+ echo "Error: This script should not be run with elevated privileges (pkexec)." >&2
+ exit 1
+ fi
+}
+
+# Validate path chars
+validate_path() {
+ local path="$1"
+ case "$path" in
+ *[!ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/_.-]*)
+ echo "Error: Invalid characters in path: $path" >&2
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+# Get secure temp folder
+get_temp_dir() {
+ local uid=$(id -u)
+ local temp_bases=("/tmp" "/var/tmp")
+
+ for base in "${temp_bases[@]}"; do
+ local temp_dir="$base/ffmpeg-$uid"
+
+ if ! validate_path "$temp_dir"; then
+ continue
+ fi
+
+ # Verify perms and owner
+ if [ -d "$temp_dir" ]; then
+ local perms=$(stat -c %a "$temp_dir" 2>/dev/null || echo "")
+ if [ "$perms" != "700" ]; then
+ echo "Error: Temp directory exists with unsafe permissions ($perms). Expected 700." >&2
+ exit 1
+ fi
+
+ local owner=$(stat -c %u "$temp_dir" 2>/dev/null || echo "")
+ if [ "$owner" != "$uid" ]; then
+ echo "Error: Temp directory not owned by current user." >&2
+ exit 1
+ fi
+ else
+ # Create folder
+ if ! mkdir -m 700 "$temp_dir" 2>/dev/null; then
+ continue
+ fi
+ fi
+
+ echo "$temp_dir"
+ return 0
+ done
+
+ echo "Error: Unable to determine temp directory." >&2
+ exit 1
+}
+
+# Create HTML filename and pre-create file
+create_unique_html_file() {
+ local temp_dir="$1"
+ local base_timestamp=$(date '+%Y-%m-%d_%H-%M-%S')
+ local base_milliseconds=$(date '+%3N')
+
+ local filename="ffmpeg_graph_${base_timestamp}_${base_milliseconds}.html"
+ local full_path="$temp_dir/$filename"
+
+ if ! validate_path "$full_path"; then
+ echo "Error: Generated invalid file path." >&2
+ exit 1
+ fi
+
+ if (set -C; echo "<!-- FFmpeg Graph Placeholder -->" > "$full_path") 2>/dev/null; then
+ echo "$full_path"
+ return 0
+ fi
+
+ echo "Error: Could not create unique HTML file." >&2
+ exit 1
+}
+
+# Check for xdg-open
+check_xdg_open() {
+ # Accept only standard system locations - no PATH lookup
+ local xdg_locations=("/usr/bin/xdg-open" "/bin/xdg-open" "/usr/local/bin/xdg-open")
+
+ for location in "${xdg_locations[@]}"; do
+ if [ -x "$location" ]; then
+ echo "$location"
+ return 0
+ fi
+ done
+
+ echo "Error: xdg-open not found in standard system locations." >&2
+ echo "Checked: ${xdg_locations[*]}" >&2
+ return 1
+}
+
+# Launch browser
+open_html_in_browser() {
+ local html_path="$1"
+
+ if [ ! -f "$html_path" ]; then
+ echo "Warning: HTML file not found: $html_path" >&2
+ return 1
+ fi
+
+ # Validate again
+ if ! validate_path "$html_path"; then
+ echo "Error: Invalid file path for browser: $html_path" >&2
+ return 1
+ fi
+
+ local xdg_open_path
+ xdg_open_path=$(check_xdg_open)
+ if [ $? -ne 0 ]; then
+ return 1
+ fi
+
+ # Launch browser
+ "$xdg_open_path" "$html_path" </dev/null >/dev/null 2>&1 &
+
+ if [ $? -eq 0 ]; then
+ echo "Execution graph opened in browser: $html_path" >&2
+ return 0
+ else
+ echo "Warning: Could not open '$html_path' in a browser." >&2
+ return 1
+ fi
+}
+
+# Check for conflicting parameters
+check_conflicting_params() {
+ local args=("$@")
+
+ for arg in "${args[@]}"; do
+ case "$arg" in
+ -print_graphs_file)
+ echo "Error: -print_graphs_file parameter already provided. This script manages graph file generation automatically." >&2
+ exit 1
+ ;;
+ -print_graphs_format)
+ echo "Error: -print_graphs_format parameter already provided. This script uses mermaidhtml format automatically." >&2
+ exit 1
+ ;;
+ esac
+ done
+}
+
+# Cleanup temp file on signal
+cleanup_on_signal() {
+ local html_file="$1"
+ if [ -f "$html_file" ]; then
+ rm -f "$html_file" 2>/dev/null || true
+ fi
+ exit 130 # 128 + SIGINT
+}
+
+main() {
+ check_privileges
+
+ # Check if ffmpeg exists in current dir
+ if [ ! -x "./ffmpeg" ]; then
+ echo "Error: ./ffmpeg not found or not executable in current directory." >&2
+ exit 1
+ fi
+
+ # Check params
+ check_conflicting_params "$@"
+
+ local temp_dir
+ temp_dir=$(get_temp_dir)
+
+ local html_file
+ html_file=$(create_unique_html_file "$temp_dir")
+
+ trap "cleanup_on_signal '$html_file'" INT TERM
+
+ # Set umask for file creation
+ umask 077
+
+ # Execute ffmpeg with graph printing options and all passed arguments
+ local ffmpeg_exit_code=0
+ ./ffmpeg -print_graphs_file "$html_file" -print_graphs_format mermaidhtml "$@" || ffmpeg_exit_code=$?
+
+ trap - INT TERM
+
+ # Open browser
+ if [ -f "$html_file" ]; then
+ local file_size=$(stat -c%s "$html_file" 2>/dev/null || echo 0)
+ local placeholder_size=34
+
+ if [ "$file_size" -gt "$placeholder_size" ]; then
+ open_html_in_browser "$html_file"
+ else
+ echo "Warning: FFmpeg completed but no graph data was written." >&2
+ fi
+ else
+ echo "Warning: FFmpeg completed but no graph file was found." >&2
+ fi
+
+ # Exit with ffmpeg exit code
+ exit $ffmpeg_exit_code
+}
+
+main "$@"
--
ffmpeg-codebot
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] tools/ffmpeg-sg: Add show-graph wrapper script for Windows
2025-06-09 19:23 [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature) ffmpegagent
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 1/3] tools/ffmpeg-sg: Add show-graph wrapper script for Linux softworkz
@ 2025-06-09 19:23 ` softworkz
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output softworkz
` (2 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: softworkz @ 2025-06-09 19:23 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: softworkz
From: softworkz <softworkz@hotmail.com>
Signed-off-by: softworkz <softworkz@hotmail.com>
---
tools/ffmpeg-sg.cmd | 73 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 tools/ffmpeg-sg.cmd
diff --git a/tools/ffmpeg-sg.cmd b/tools/ffmpeg-sg.cmd
new file mode 100644
index 0000000000..1268ac05c9
--- /dev/null
+++ b/tools/ffmpeg-sg.cmd
@@ -0,0 +1,73 @@
+@echo off
+setlocal EnableDelayedExpansion
+REM
+REM ffmpeg-sg - FFmpeg Show-Graph Wrapper (aka killer feature)
+REM Show the FFmpeg execution graph in default browser
+REM
+REM Copyright (c) 2025 softworkz
+REM
+REM This file is part of FFmpeg.
+REM
+REM FFmpeg is free software; you can redistribute it and/or
+REM modify it under the terms of the GNU Lesser General Public
+REM License as published by the Free Software Foundation; either
+REM version 2.1 of the License, or (at your option) any later version.
+REM
+REM FFmpeg is distributed in the hope that it will be useful,
+REM but WITHOUT ANY WARRANTY; without even the implied warranty of
+REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+REM Lesser General Public License for more details.
+REM
+REM You should have received a copy of the GNU Lesser General Public
+REM License along with FFmpeg; if not, write to the Free Software
+REM Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+REM
+
+REM Check for ffmpeg.exe in folder
+if not exist "ffmpeg.exe" (
+ echo Error: ffmpeg.exe not found in current directory.
+ exit /b 1
+)
+
+REM Check params
+set "conflict_found="
+for %%i in (%*) do (
+ if /i "%%i"=="-print_graphs_file" set "conflict_found=1"
+ if /i "%%i"=="-print_graphs_format" set "conflict_found=1"
+)
+
+if defined conflict_found (
+ echo Error: -print_graphs_file or -print_graphs_format parameter already provided.
+ echo This script manages graph file generation automatically.
+ exit /b 1
+)
+
+REM Validate temp dir
+if not exist "%TEMP%" (
+ echo Error: Temp directory not accessible
+ exit /b 1
+)
+
+REM Generate HTML filename
+set "date_part=%date:~-4,4%-%date:~-10,2%-%date:~-7,2%"
+set "time_part=%time:~0,2%-%time:~3,2%-%time:~6,2%"
+set "date_part=%date_part:/=-%"
+set "time_part=%time_part: =0%"
+
+set "html_file=%TEMP%\ffmpeg_graph_%date_part%_%time_part%_%RANDOM%.html"
+
+REM Execute ffmpeg
+REM Use start /wait /b to avoid "Terminate batch job" prompt on Ctrl-C
+start /wait /b ffmpeg.exe -print_graphs_file "%html_file%" -print_graphs_format mermaidhtml %*
+set "ffmpeg_exit_code=%ERRORLEVEL%"
+
+REM Open browser if HTML file was created
+if exist "%html_file%" (
+ echo "Execution graph opened in browser: %html_file%
+ start "FFmpeg Graph" "%html_file%"
+) else (
+ echo Warning: FFmpeg completed but no graph file was generated.
+)
+
+REM Exit with ffmpeg exit code
+exit /b %ffmpeg_exit_code%
--
ffmpeg-codebot
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-09 19:23 [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature) ffmpegagent
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 1/3] tools/ffmpeg-sg: Add show-graph wrapper script for Linux softworkz
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 2/3] tools/ffmpeg-sg: Add show-graph wrapper script for Windows softworkz
@ 2025-06-09 19:23 ` softworkz
2025-06-11 19:18 ` Marton Balint
2025-06-09 22:49 ` [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature) Kieran Kunhya via ffmpeg-devel
[not found] ` <CABGuwEnDSAKEEP6e5yUzeXM_bp5EKV2bPHaL8+wM+Pbmm5KBPQ@mail.gmail.com>
4 siblings, 1 reply; 17+ messages in thread
From: softworkz @ 2025-06-09 19:23 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: softworkz
From: softworkz <softworkz@hotmail.com>
Signed-off-by: softworkz <softworkz@hotmail.com>
---
.gitignore | 1 +
fftools/Makefile | 14 ++++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
index 59c89da5e0..989c702b6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@
/.config
/.version
/ffmpeg
+/ffmpeg-sg
/ffplay
/ffprobe
/config.asm
diff --git a/fftools/Makefile b/fftools/Makefile
index b3c08ae5a0..378de79665 100644
--- a/fftools/Makefile
+++ b/fftools/Makefile
@@ -5,6 +5,11 @@ AVPROGS-$(CONFIG_FFPROBE) += ffprobe
AVPROGS := $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF))
PROGS += $(AVPROGS)
+FFMPEG_SG_SCRIPT = $(SRC_PATH)/tools/ffmpeg-sg$(if $(filter .exe,$(EXESUF)),.cmd)
+FFMPEG_SG_TARGET = ffmpeg-sg$(EXESUF)
+FFMPEG_SG_ENABLED = $(and $(filter $(CONFIG_FFMPEG),yes),$(or $(filter $(target_os),win32),$(if $(target_os),,yes)))
+FFMPEG_SG_FILES = $(if $(FFMPEG_SG_ENABLED),$(FFMPEG_SG_TARGET))
+
AVBASENAMES = ffmpeg ffplay ffprobe
ALLAVPROGS = $(AVBASENAMES:%=%$(PROGSSUF)$(EXESUF))
ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF))
@@ -67,7 +72,10 @@ endef
$(foreach P,$(AVPROGS-yes),$(eval $(call DOFFTOOL,$(P))))
-all: $(AVPROGS)
+all: $(AVPROGS) $(FFMPEG_SG_FILES)
+
+$(FFMPEG_SG_TARGET): $(FFMPEG_SG_SCRIPT)
+ $(Q)$(CP) -p $(FFMPEG_SG_SCRIPT) $(FFMPEG_SG_TARGET)
fftools/ffprobe.o fftools/cmdutils.o: libavutil/ffversion.h | fftools
OUTDIRS += fftools
@@ -85,11 +93,13 @@ install-progs-$(CONFIG_SHARED): install-libs
install-progs: install-progs-yes $(AVPROGS)
$(Q)mkdir -p "$(BINDIR)"
$(INSTALL) -c -m 755 $(AVPROGS) "$(BINDIR)"
+ $(if $(FFMPEG_SG_FILES),$(INSTALL) -c -m 755 $(FFMPEG_SG_FILES) "$(BINDIR)")
uninstall: uninstall-progs
uninstall-progs:
$(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS))
+ $(if $(FFMPEG_SG_FILES),$(RM) "$(BINDIR)/$(FFMPEG_SG_FILES)")
clean::
- $(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) $(CLEANSUFFIXES:%=fftools/%) $(CLEANSUFFIXES:%=fftools/graph/%) $(CLEANSUFFIXES:%=fftools/textformat/%)
+ $(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) $(CLEANSUFFIXES:%=fftools/%) $(CLEANSUFFIXES:%=fftools/graph/%) $(CLEANSUFFIXES:%=fftools/textformat/%) $(FFMPEG_SG_FILES)
--
ffmpeg-codebot
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output softworkz
@ 2025-06-11 19:18 ` Marton Balint
2025-06-11 20:58 ` softworkz .
0 siblings, 1 reply; 17+ messages in thread
From: Marton Balint @ 2025-06-11 19:18 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Mon, 9 Jun 2025, softworkz wrote:
> From: softworkz <softworkz@hotmail.com>
>
> Signed-off-by: softworkz <softworkz@hotmail.com>
> ---
> .gitignore | 1 +
> fftools/Makefile | 14 ++++++++++++--
> 2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 59c89da5e0..989c702b6c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -32,6 +32,7 @@
> /.config
> /.version
> /ffmpeg
> +/ffmpeg-sg
Please, do not copy this from tools folder to the main build dir. The rest
of the tools are also simply kept in the tools folder, no copying is
necessary during the build process.
Thanks,
Marton
> /ffplay
> /ffprobe
> /config.asm
> diff --git a/fftools/Makefile b/fftools/Makefile
> index b3c08ae5a0..378de79665 100644
> --- a/fftools/Makefile
> +++ b/fftools/Makefile
> @@ -5,6 +5,11 @@ AVPROGS-$(CONFIG_FFPROBE) += ffprobe
> AVPROGS := $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF))
> PROGS += $(AVPROGS)
>
> +FFMPEG_SG_SCRIPT = $(SRC_PATH)/tools/ffmpeg-sg$(if $(filter .exe,$(EXESUF)),.cmd)
> +FFMPEG_SG_TARGET = ffmpeg-sg$(EXESUF)
> +FFMPEG_SG_ENABLED = $(and $(filter $(CONFIG_FFMPEG),yes),$(or $(filter $(target_os),win32),$(if $(target_os),,yes)))
> +FFMPEG_SG_FILES = $(if $(FFMPEG_SG_ENABLED),$(FFMPEG_SG_TARGET))
> +
> AVBASENAMES = ffmpeg ffplay ffprobe
> ALLAVPROGS = $(AVBASENAMES:%=%$(PROGSSUF)$(EXESUF))
> ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF))
> @@ -67,7 +72,10 @@ endef
>
> $(foreach P,$(AVPROGS-yes),$(eval $(call DOFFTOOL,$(P))))
>
> -all: $(AVPROGS)
> +all: $(AVPROGS) $(FFMPEG_SG_FILES)
> +
> +$(FFMPEG_SG_TARGET): $(FFMPEG_SG_SCRIPT)
> + $(Q)$(CP) -p $(FFMPEG_SG_SCRIPT) $(FFMPEG_SG_TARGET)
>
> fftools/ffprobe.o fftools/cmdutils.o: libavutil/ffversion.h | fftools
> OUTDIRS += fftools
> @@ -85,11 +93,13 @@ install-progs-$(CONFIG_SHARED): install-libs
> install-progs: install-progs-yes $(AVPROGS)
> $(Q)mkdir -p "$(BINDIR)"
> $(INSTALL) -c -m 755 $(AVPROGS) "$(BINDIR)"
> + $(if $(FFMPEG_SG_FILES),$(INSTALL) -c -m 755 $(FFMPEG_SG_FILES) "$(BINDIR)")
>
> uninstall: uninstall-progs
>
> uninstall-progs:
> $(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS))
> + $(if $(FFMPEG_SG_FILES),$(RM) "$(BINDIR)/$(FFMPEG_SG_FILES)")
>
> clean::
> - $(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) $(CLEANSUFFIXES:%=fftools/%) $(CLEANSUFFIXES:%=fftools/graph/%) $(CLEANSUFFIXES:%=fftools/textformat/%)
> + $(RM) $(ALLAVPROGS) $(ALLAVPROGS_G) $(CLEANSUFFIXES:%=fftools/%) $(CLEANSUFFIXES:%=fftools/graph/%) $(CLEANSUFFIXES:%=fftools/textformat/%) $(FFMPEG_SG_FILES)
> --
> ffmpeg-codebot
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-11 19:18 ` Marton Balint
@ 2025-06-11 20:58 ` softworkz .
2025-06-11 21:14 ` Kieran Kunhya via ffmpeg-devel
` (2 more replies)
0 siblings, 3 replies; 17+ messages in thread
From: softworkz . @ 2025-06-11 20:58 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marton Balint
> Sent: Mittwoch, 11. Juni 2025 21:18
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> show-graph wrapper script in build output
>
>
>
> On Mon, 9 Jun 2025, softworkz wrote:
>
> > From: softworkz <softworkz@hotmail.com>
> >
> > Signed-off-by: softworkz <softworkz@hotmail.com>
> > ---
> > .gitignore | 1 +
> > fftools/Makefile | 14 ++++++++++++--
> > 2 files changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/.gitignore b/.gitignore
> > index 59c89da5e0..989c702b6c 100644
> > --- a/.gitignore
> > +++ b/.gitignore
> > @@ -32,6 +32,7 @@
> > /.config
> > /.version
> > /ffmpeg
> > +/ffmpeg-sg
>
> Please, do not copy this from tools folder to the main build dir. The
> rest
> of the tools are also simply kept in the tools folder, no copying is
> necessary during the build process.
>
> Thanks,
> Marton
>
On important platforms like Windows, there is no "install". People are
taking/copying the build output. If it's not part of the build output,
it won't arrive at any user.
Also, for security reasons, the script requires an ffmpeg binary in the
same directory. Unless the script is in the same directory as the
ffmpeg binary, it has no value at all.
The previous patch has gone great circles because I have been subject to
false accusations and damage of reputation.
This situation is different: I have laid out my arguments and opinion,
but that's just one small voice of many and I have no intentions to go
crazy about or fight for it. No matter how this may come to a decision,
I don't want to stand in the center of it.
There's one crucial point about this patchset, though:
The purpose is to make the feature available to the masses, both
developers and users (see 'instant availability' in my earlier response
to Kieran).
If this cannot be achieved and agreed, then it would have failed its
goal but I'd still say that it was worth the attempt.
Yet, I hope you can understand when I say that anything less than this
goal, is nothing for which I will take any effort at all. The scripts
are there, they can be downloaded from my GitHub - for those who know.
Thanks, and best regards
sw
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-11 20:58 ` softworkz .
@ 2025-06-11 21:14 ` Kieran Kunhya via ffmpeg-devel
[not found] ` <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>
2025-06-12 7:40 ` Nicolas George
2 siblings, 0 replies; 17+ messages in thread
From: Kieran Kunhya via ffmpeg-devel @ 2025-06-11 21:14 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Kieran Kunhya
[-- Attachment #1: Type: message/rfc822, Size: 5237 bytes --]
From: Kieran Kunhya <kieran618@googlemail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
Date: Wed, 11 Jun 2025 22:14:20 +0100
Message-ID: <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>
On Wed, Jun 11, 2025 at 9:58 PM softworkz .
<softworkz-at-hotmail.com@ffmpeg.org> wrote:
>
>
>
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > Marton Balint
> > Sent: Mittwoch, 11. Juni 2025 21:18
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> > show-graph wrapper script in build output
> >
> >
> >
> > On Mon, 9 Jun 2025, softworkz wrote:
> >
> > > From: softworkz <softworkz@hotmail.com>
> > >
> > > Signed-off-by: softworkz <softworkz@hotmail.com>
> > > ---
> > > .gitignore | 1 +
> > > fftools/Makefile | 14 ++++++++++++--
> > > 2 files changed, 13 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/.gitignore b/.gitignore
> > > index 59c89da5e0..989c702b6c 100644
> > > --- a/.gitignore
> > > +++ b/.gitignore
> > > @@ -32,6 +32,7 @@
> > > /.config
> > > /.version
> > > /ffmpeg
> > > +/ffmpeg-sg
> >
> > Please, do not copy this from tools folder to the main build dir. The
> > rest
> > of the tools are also simply kept in the tools folder, no copying is
> > necessary during the build process.
> >
> > Thanks,
> > Marton
> >
>
> On important platforms like Windows, there is no "install". People are
> taking/copying the build output. If it's not part of the build output,
> it won't arrive at any user.
On windows and other desktops you just click the file name and a browser opens.
Does this really need a script just to do that?
Should we have a script to run ffplay after a user has encoded a file as well?
Kieran
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>]
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
[not found] ` <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>
@ 2025-06-11 21:39 ` softworkz .
2025-06-11 22:04 ` softworkz .
1 sibling, 0 replies; 17+ messages in thread
From: softworkz . @ 2025-06-11 21:39 UTC (permalink / raw)
To: Kieran Kunhya, FFmpeg development discussions and patches
> -----Original Message-----
> From: Kieran Kunhya <kieran618@googlemail.com>
> Sent: Mittwoch, 11. Juni 2025 23:14
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> show-graph wrapper script in build output
>
> On Wed, Jun 11, 2025 at 9:58 PM softworkz .
> <softworkz-at-hotmail.com@ffmpeg.org> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > > Marton Balint
> > > Sent: Mittwoch, 11. Juni 2025 21:18
> > > To: FFmpeg development discussions and patches <ffmpeg-
> > > devel@ffmpeg.org>
> > > Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> > > show-graph wrapper script in build output
> > >
> > >
> > >
> > > On Mon, 9 Jun 2025, softworkz wrote:
> > >
> > > > From: softworkz <softworkz@hotmail.com>
> > > >
> > > > Signed-off-by: softworkz <softworkz@hotmail.com>
> > > > ---
> > > > .gitignore | 1 +
> > > > fftools/Makefile | 14 ++++++++++++--
> > > > 2 files changed, 13 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/.gitignore b/.gitignore
> > > > index 59c89da5e0..989c702b6c 100644
> > > > --- a/.gitignore
> > > > +++ b/.gitignore
> > > > @@ -32,6 +32,7 @@
> > > > /.config
> > > > /.version
> > > > /ffmpeg
> > > > +/ffmpeg-sg
> > >
> > > Please, do not copy this from tools folder to the main build dir.
> The
> > > rest
> > > of the tools are also simply kept in the tools folder, no copying
> is
> > > necessary during the build process.
> > >
> > > Thanks,
> > > Marton
> > >
> >
> > On important platforms like Windows, there is no "install". People
> are
> > taking/copying the build output. If it's not part of the build
> output,
> > it won't arrive at any user.
>
> On windows and other desktops you just click the file name and a
> browser opens.
> Does this really need a script just to do that?
Hi Kieran,
I believe that when you would try out both ways yourself and compare,
you wouldn't ask the question. Or - if you wish, I can create a short
screen capture to illustrate?
Best regards
sw
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
[not found] ` <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>
2025-06-11 21:39 ` softworkz .
@ 2025-06-11 22:04 ` softworkz .
1 sibling, 0 replies; 17+ messages in thread
From: softworkz . @ 2025-06-11 22:04 UTC (permalink / raw)
To: Kieran Kunhya, FFmpeg development discussions and patches
> -----Original Message-----
> From: Kieran Kunhya <kieran618@googlemail.com>
> Sent: Mittwoch, 11. Juni 2025 23:14
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> show-graph wrapper script in build output
>
> On Wed, Jun 11, 2025 at 9:58 PM softworkz .
> <softworkz-at-hotmail.com@ffmpeg.org> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > > Marton Balint
> > > Sent: Mittwoch, 11. Juni 2025 21:18
> > > To: FFmpeg development discussions and patches <ffmpeg-
> > > devel@ffmpeg.org>
> > > Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> > > show-graph wrapper script in build output
> > >
> > >
> > >
> > > On Mon, 9 Jun 2025, softworkz wrote:
> > >
> > > > From: softworkz <softworkz@hotmail.com>
> > > >
> > > > Signed-off-by: softworkz <softworkz@hotmail.com>
> > > > ---
> > > > .gitignore | 1 +
> > > > fftools/Makefile | 14 ++++++++++++--
> > > > 2 files changed, 13 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/.gitignore b/.gitignore
> > > > index 59c89da5e0..989c702b6c 100644
> > > > --- a/.gitignore
> > > > +++ b/.gitignore
> > > > @@ -32,6 +32,7 @@
> > > > /.config
> > > > /.version
> > > > /ffmpeg
> > > > +/ffmpeg-sg
> > >
> Should we have a script to run ffplay after a user has encoded a file
> as well?
>
> Kieran
-----------------
The difference to this - as far as I'm seeing it - is that that the
execution graph display is of a very different nature: It is (at least
logically) not an output of FFmpeg like a produced media file. It
rather provides insights into FFmpeg's own operations - to the operator
and not to the client/consumer of the output.
It could even be seen as a kind of (passive) UI - for monitoring and
diagnosis, which is something very different from launching a generated
video file.
And regarding the latter - don't we have those output devices, where
you just need to add a few letters to the command line to "launch"
a video window that is showing the output?
Best regards,
sw
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-11 20:58 ` softworkz .
2025-06-11 21:14 ` Kieran Kunhya via ffmpeg-devel
[not found] ` <CABGuwEm72Ynf=anVta4rj0pOPThHeM0aweAbYVTBuvLsQSbJ4Q@mail.gmail.com>
@ 2025-06-12 7:40 ` Nicolas George
2025-06-12 18:42 ` softworkz .
2 siblings, 1 reply; 17+ messages in thread
From: Nicolas George @ 2025-06-12 7:40 UTC (permalink / raw)
To: FFmpeg development discussions and patches
softworkz . (HE12025-06-11):
> On important platforms like Windows, there is no "install". People are
> taking/copying the build output. If it's not part of the build output,
> it won't arrive at any user.
Oh, we did not think of that in the past 20 years, and we could not
consider it to decide the policy. Thank Cthulhu you came!
> Also, for security reasons, the script requires an ffmpeg binary in the
> same directory. Unless the script is in the same directory as the
> ffmpeg binary, it has no value at all.
Then you need to program your script better.
--
Nicolas George
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-12 7:40 ` Nicolas George
@ 2025-06-12 18:42 ` softworkz .
2025-06-12 19:06 ` Nicolas George
0 siblings, 1 reply; 17+ messages in thread
From: softworkz . @ 2025-06-12 18:42 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Nicolas George
> Sent: Donnerstag, 12. Juni 2025 09:41
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> show-graph wrapper script in build output
>
> softworkz . (HE12025-06-11):
> > On important platforms like Windows, there is no "install".
> People are
> > taking/copying the build output. If it's not part of the build
> output,
> > it won't arrive at any user.
>
> Oh, we did not think of that in the past 20 years, and we could not
> consider it to decide the policy. Thank Cthulhu you came!
Absolutely correct. It wasn't thought about in the past 20 years.
That's why nobody (besides few) knows about or uses things like
graph2dot.
> > Also, for security reasons, the script requires an ffmpeg binary
> in the
> > same directory. Unless the script is in the same directory as the
> > ffmpeg binary, it has no value at all.
>
> Then you need to program your script better.
"better" would be worse, so that's not gonna happen.
The way how the feature is meant to work is laid out clearly:
"Add '-sg' to the command line to get the execution graph shown
in the browser"
If you want something else, you can write your own script.
Whether the feature should be included or not, might be best left
up for decision by the TC, I'm just giving it some time for
comments first, even though we know that proponents will be
quite and opponents loud, as always.
Best regards
sw
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-12 18:42 ` softworkz .
@ 2025-06-12 19:06 ` Nicolas George
2025-06-12 19:20 ` softworkz .
0 siblings, 1 reply; 17+ messages in thread
From: Nicolas George @ 2025-06-12 19:06 UTC (permalink / raw)
To: FFmpeg development discussions and patches
softworkz . (HE12025-06-12):
> "better" would be worse, so that's not gonna happen.
Then your patch is not going to happen.
> The way how the feature is meant to work is laid out clearly:
If you cannot find a way to do this without copying the script, you need
to give up and try something easier.
--
Nicolas George
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output
2025-06-12 19:06 ` Nicolas George
@ 2025-06-12 19:20 ` softworkz .
0 siblings, 0 replies; 17+ messages in thread
From: softworkz . @ 2025-06-12 19:20 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Nicolas George
> Sent: Donnerstag, 12. Juni 2025 21:07
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include
> show-graph wrapper script in build output
>
> softworkz . (HE12025-06-12):
> > "better" would be worse, so that's not gonna happen.
>
> Then your patch is not going to happen.
>
> > The way how the feature is meant to work is laid out clearly:
>
> If you cannot find a way to do this without copying the script, you
> need
> to give up and try something easier.
>
> --
> Nicolas George
Take your meds and try an AI chat if you want to annoy somebody.
sw
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature)
2025-06-09 19:23 [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature) ffmpegagent
` (2 preceding siblings ...)
2025-06-09 19:23 ` [FFmpeg-devel] [PATCH 3/3] tools/ffmpeg-sg: Include show-graph wrapper script in build output softworkz
@ 2025-06-09 22:49 ` Kieran Kunhya via ffmpeg-devel
2025-06-11 14:42 ` Nicolas George
[not found] ` <CABGuwEnDSAKEEP6e5yUzeXM_bp5EKV2bPHaL8+wM+Pbmm5KBPQ@mail.gmail.com>
4 siblings, 1 reply; 17+ messages in thread
From: Kieran Kunhya via ffmpeg-devel @ 2025-06-09 22:49 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Kieran Kunhya, softworkz
[-- Attachment #1: Type: message/rfc822, Size: 3824 bytes --]
From: Kieran Kunhya <kieran618@googlemail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Cc: softworkz <softworkz@hotmail.com>
Subject: Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature)
Date: Mon, 9 Jun 2025 23:49:13 +0100
Message-ID: <CABGuwEnDSAKEEP6e5yUzeXM_bp5EKV2bPHaL8+wM+Pbmm5KBPQ@mail.gmail.com>
On Mon, 9 Jun 2025, 20:24 ffmpegagent, <ffmpegagent-at-gmail.com@ffmpeg.org>
wrote:
> The "killer feature" returns!
>
> Different approach - same procedure:
>
> * Add -sg to your FFmpeg command line
> * But now it's not
> * ./ffmpeg -sg xxxxx but
> * ./ffmpeg-sg xxxxx
>
Why does this need to be part of FFmpeg if it's a wrapper script to spawn a
web browser (nothing to do with FFmpeg's actual purpose of processing
multimedia).
Kieran
>
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <CABGuwEnDSAKEEP6e5yUzeXM_bp5EKV2bPHaL8+wM+Pbmm5KBPQ@mail.gmail.com>]
* Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature)
[not found] ` <CABGuwEnDSAKEEP6e5yUzeXM_bp5EKV2bPHaL8+wM+Pbmm5KBPQ@mail.gmail.com>
@ 2025-06-10 13:31 ` softworkz .
2025-06-10 15:28 ` softworkz .
0 siblings, 1 reply; 17+ messages in thread
From: softworkz . @ 2025-06-10 13:31 UTC (permalink / raw)
To: Kieran Kunhya, FFmpeg development discussions and patches
> -----Original Message-----
> From: Kieran Kunhya <kieran618@googlemail.com>
> Sent: Dienstag, 10. Juni 2025 00:49
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Cc: softworkz <softworkz@hotmail.com>
> Subject: Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-
> graph wrapper scripts (aka killer feature)
>
> On Mon, 9 Jun 2025, 20:24 ffmpegagent, <ffmpegagent-at-
> gmail.com@ffmpeg.org>
> wrote:
>
> > The "killer feature" returns!
> >
> > Different approach - same procedure:
> >
> > * Add -sg to your FFmpeg command line
> > * But now it's not
> > * ./ffmpeg -sg xxxxx but
> > * ./ffmpeg-sg xxxxx
> >
>
> Why does this need to be part of FFmpeg if it's a wrapper script to
> spawn a
> web browser (nothing to do with FFmpeg's actual purpose of processing
> multimedia).
>
> Kieran
Hi Kieran,
of course that's a legitimate question, and a question that could be asked
for almost any new feature in FFmpeg.
Obviously, there is no forcing reason for which it would _need_ to be included,
so I can only say why it _should_ be included in FFmpeg IMHO:
- Highly Useful
If you haven't seen what it is and what it does, than I would suggest to
everybody to try it out or to look at some of the examples:
https://softworkz.github.io/ffmpeg_output_apis/2_hwa_qsv.html
https://softworkz.github.io/ffmpeg_output_apis/3_complex_graphs.html
This should also answer your question about what it has to do with "FFmpeg'
actual purpose of processing multimedia": FFmpeg has a command line
interface and it's often not clear to everybody how a certain command line
is actually interpreted and executed by FFmpeg. This is helpful for
both beginners and advanced users of FFmpeg (e.g. when things get complex
like in the second example).
Even Michael said he finds it useful and Niklas Haas had voiced a need
for visualizing the negotiated image formats between filters, earlier this
year.
- Highly Convenient
This core functionality for the above is already merged into master, but
it's rather painful to make use of it
- You need to remember the command line parameters
- You need to type them
- You need to determined a name for the output html file
- You need to change it each time when you want to compare commands
- You need to manually open the output in a browser
It becomes highly convenient when the only thing you need to do and
remember is to append "-sg" to any command whenever you need it and
everything else happens automatically.
You can try many command variations and it creates tabs in your
browser between you can switch can compare the different graphs.
- Instant Availability
This simply means that whenever and wherever you need it...
=> it's already there
It is part of the build output, which means all developers that you
can compile, test your work and when you want to visualize the graph
you just need to append -sg and it works - without doing any extra
work.
Same for make install and all kinds of distribution packages.
When this is given, we can add a note to the documentation and make
this available to Millions of users.
If it would be just scripts for download from "somewhere", then it
wouldn't be a feature available to Millions, but just something
for a few dozens of people who would ever know about it.
Those considerations combined is what had originally brought me
to the tag line that some found funny and others rather "immature":
Highly Useful + Convenient + Instant Availability = "Killer Feature"
It's helpful for the masses => it should be available to the masses.
This is why I believe that it should be included in FFmpeg.
Best regards,
softworkz
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-graph wrapper scripts (aka killer feature)
2025-06-10 13:31 ` softworkz .
@ 2025-06-10 15:28 ` softworkz .
0 siblings, 0 replies; 17+ messages in thread
From: softworkz . @ 2025-06-10 15:28 UTC (permalink / raw)
To: FFmpeg development discussions and patches, Kieran Kunhya
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> softworkz .
> Sent: Dienstag, 10. Juni 2025 15:32
> To: Kieran Kunhya <kieran618@googlemail.com>; FFmpeg development
> discussions and patches <ffmpeg-devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-
> graph wrapper scripts (aka killer feature)
>
> > -----Original Message-----
> > From: Kieran Kunhya <kieran618@googlemail.com>
> > Sent: Dienstag, 10. Juni 2025 00:49
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Cc: softworkz <softworkz@hotmail.com>
> > Subject: Re: [FFmpeg-devel] [PATCH 0/3] tools/ffmpeg-sg: Add show-
> > graph wrapper scripts (aka killer feature)
> >
> > On Mon, 9 Jun 2025, 20:24 ffmpegagent, <ffmpegagent-at-
> > gmail.com@ffmpeg.org>
> > wrote:
> >
> > > The "killer feature" returns!
> > >
> > > Different approach - same procedure:
> > >
> > > * Add -sg to your FFmpeg command line
> > > * But now it's not
> > > * ./ffmpeg -sg xxxxx but
> > > * ./ffmpeg-sg xxxxx
> > >
> >
> > Why does this need to be part of FFmpeg if it's a wrapper script to
> > spawn a
> > web browser (nothing to do with FFmpeg's actual purpose of
> processing
> > multimedia).
> >
> > Kieran
>
>
> Hi Kieran,
>
> of course that's a legitimate question, and a question that could be
> asked
> for almost any new feature in FFmpeg.
> Obviously, there is no forcing reason for which it would _need_ to be
> included,
> so I can only say why it _should_ be included in FFmpeg IMHO:
>
>
> - Highly Useful
>
> If you haven't seen what it is and what it does, than I would
> suggest to
> everybody to try it out or to look at some of the examples:
>
> https://softworkz.github.io/ffmpeg_output_apis/2_hwa_qsv.html
>
> https://softworkz.github.io/ffmpeg_output_apis/3_complex_graphs.html
>
> This should also answer your question about what it has to do with
> "FFmpeg'
> actual purpose of processing multimedia": FFmpeg has a command line
> interface and it's often not clear to everybody how a certain
> command line
> is actually interpreted and executed by FFmpeg. This is helpful for
> both beginners and advanced users of FFmpeg (e.g. when things get
> complex
> like in the second example).
> Even Michael said he finds it useful and Niklas Haas had voiced a
> need
> for visualizing the negotiated image formats between filters,
> earlier this
> year.
>
>
> - Highly Convenient
>
> This core functionality for the above is already merged into
> master, but
> it's rather painful to make use of it
> - You need to remember the command line parameters
> - You need to type them
> - You need to determined a name for the output html file
> - You need to change it each time when you want to compare commands
> - You need to manually open the output in a browser
>
> It becomes highly convenient when the only thing you need to do and
> remember is to append "-sg" to any command whenever you need it and
> everything else happens automatically.
> You can try many command variations and it creates tabs in your
> browser between you can switch can compare the different graphs.
>
>
> - Instant Availability
>
> This simply means that whenever and wherever you need it...
> => it's already there
>
> It is part of the build output, which means all developers that you
> can compile, test your work and when you want to visualize the
> graph
> you just need to append -sg and it works - without doing any extra
> work.
> Same for make install and all kinds of distribution packages.
> When this is given, we can add a note to the documentation and make
> this available to Millions of users.
> If it would be just scripts for download from "somewhere", then it
> wouldn't be a feature available to Millions, but just something
> for a few dozens of people who would ever know about it.
>
>
> Those considerations combined is what had originally brought me
> to the tag line that some found funny and others rather "immature":
>
> Highly Useful + Convenient + Instant Availability = "Killer Feature"
>
>
> It's helpful for the masses => it should be available to the masses.
> This is why I believe that it should be included in FFmpeg.
>
> Best regards,
> softworkz
>
> _______________________________________________
There's also once another angle of view that should be considered when
assessing the relevance of the feature:
Learning and Understanding FFmpeg
Looking at the documentation under https://ffmpeg.org/ffmpeg.html we
can see that a lot of effort has been taken to make FFmpeg's ways of
operation transparent and understandable to all new users.
Don't all those ASCII graphics look familiar? Essentially, the show-
graph feature gives you exactly the same insights than the introductory
topics of the documentation - not just in an exemplary way but for the
exact command lines that you are supplying to FFmpeg.
This helps to reduce the learning curve for using of FFmpeg - which
is non-trivial - by a magnitude.
Even those who don't think that they would need a "browser launch"
capability by themselves, need to acknowledge (IMO) that this is
something that makes FFmpeg more accessible and more attractive to
new users all over the world and can help spread and increase FFmpeg
usage even more, which I think is in the interest of all of us.
Best regards,
softworkz
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 17+ messages in thread