[FFmpeg-devel] [PATCH v2] libavdevice: Improve example in deprecation message for opengl and sdl

Alexander Strasser eclipse7 at gmx.net
Tue Apr 30 00:53:19 EEST 2024


When piping ffmpeg into ffplay both programs write a status line in
the terminal. That causes flickering and invisibility of one or the
other status line.

As compromise set ffplay log level to warning, so it doesn't show
the status line.

The user is usually testing ffmpeg command lines and want's a
preview of the result. This way the user can see the ffmpeg output
and still see errors and warnings from ffplay, should they occur.

Additionally set PTS to zero in ffplay to lessen the delay until
the frames are displayed. Without it delay is quite observable
when e.g. live capturing with low frame rates.
---

Same as previous patch, but with setpts=0 in ffplay as suggested by
Nicolas George.


 libavdevice/opengl_enc.c | 2 +-
 libavdevice/sdl2.c       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
index 6f7a30ff9e..93d3959880 100644
--- a/libavdevice/opengl_enc.c
+++ b/libavdevice/opengl_enc.c
@@ -1067,7 +1067,7 @@ static av_cold int opengl_write_header(AVFormatContext *h)
         av_log(opengl, AV_LOG_WARNING,
             "The opengl output device is deprecated due to being fundamentally incompatible with libavformat API. "
             "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
-            "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n"
+            "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n"
         );
         opengl->warned = 1;
     }
diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c
index 779c8e08b0..491c8dafe8 100644
--- a/libavdevice/sdl2.c
+++ b/libavdevice/sdl2.c
@@ -167,7 +167,7 @@ static int sdl2_write_header(AVFormatContext *s)
         av_log(sdl, AV_LOG_WARNING,
             "The sdl output device is deprecated due to being fundamentally incompatible with libavformat API. "
             "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
-            "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -\n"
+            "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n"
         );
         sdl->warned = 1;
     }
--


More information about the ffmpeg-devel mailing list