Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Zhao Zhili <quinkblack@foxmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [RFC] fftools/ffmpeg and libavdevice/sdl issue
Date: Wed, 13 Dec 2023 18:37:52 +0800
Message-ID: <tencent_A27E9F02AB974EFC70522D7A9AF540229A08@qq.com> (raw)
In-Reply-To: <170246201308.8914.9236708116049801289@lain.khirnov.net>



> On Dec 13, 2023, at 18:06, Anton Khirnov <anton@khirnov.net> wrote:
> 
> Quoting Zhao Zhili (2023-12-13 10:31:38)
>> 
>>> On Dec 13, 2023, at 17:08, Anton Khirnov <anton@khirnov.net> wrote:
>>> 
>>> Quoting Zhao Zhili (2023-12-12 18:27:39)
>>>> Now it's time to talk about the libavdevice/sdl issue.
>>>> 
>>>> SDL output is broken with ffmpeg multithread refactor. SDL 'muxer' write_header
>>>> and write_packet must be run in the same thread. And to make it work portable
>>>> and reliable, SDL 'muxer' must be run in main thread. It's a common requirement
>>>> for render to be run in main thread.
>>>> 
>>>> There are at least two trac tickets for the same issue: #10644 and #10649.
>>>> 
>>>> And there are two patches for the issue:
>>>> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20230918063728.198377-1-haihao.xiang@intel.com/
>>>> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20231101090115.10655-1-angus.chen@intel.com/
>>>> 
>>>> There patches might work on Linux, but not portable.
>>>> 
>>>> A simple workaround is pipe the output of ffmpeg to ffplay:
>>>> 
>>>> ./ffmpeg -re -i /e/video/cctv.mp4 -an -f yuv4mpegpipe - |ffplay -
>>>> 
>>>> To fix it, another thread can be used to drive transcode rather than main thread.
>>>> A main loop should be created on main thread, and prepared to handle any special
>>>> tasks like render. It sounds a lot of work. I'm not sure if it worth for a single use case.
>>>> However, maybe we can have a libavfilter/vsink_preview after that.
>>>> 
>>>> What should we do?
>>> 
>>> Honestly I don't see how this could be done in ffmpeg CLI without
>>> disgusting hacks, but before that the question is: why is there an SDL
>>> "muxer" and why would anyone want to use it in ffmpeg CLI? What actual
>>> use cases does it serve that cannot be better handled otherwise?
>> 
>> I pasted wrong tickets, they are #10625 and #10649.
>> https://trac.ffmpeg.org/ticket/10625
>> 
>> The use case is realtime preview. The function lavd/sdl2 provides is limited. A vsink_preview
>> filter is more appropriate. It has the same thread issue with libavfilter.
> 
> The submitter claims that piping to ffplay suffers from latency, which
> should not be there and so is either a bug or an improper setup.

The latency issue may be real or not, I’m concerned with performance. Colorspace is easy to
be handled in the same process than pipe to ffplay, although it’s missing in current implementation.

> 
> -- 
> Anton Khirnov
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org>
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org <mailto: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".

  reply	other threads:[~2023-12-13 10:38 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-12 17:27 Zhao Zhili
2023-12-12 18:04 ` Nicolas George
2023-12-13  4:19   ` Zhao Zhili
2023-12-13 17:30   ` [FFmpeg-devel] Mailinglist conduct [was: [RFC] fftools/ffmpeg and libavdevice/sdl issue] Ronald S. Bultje
2023-12-13  9:08 ` [FFmpeg-devel] [RFC] fftools/ffmpeg and libavdevice/sdl issue Anton Khirnov
2023-12-13  9:31   ` Zhao Zhili
2023-12-13 10:06     ` Anton Khirnov
2023-12-13 10:37       ` Zhao Zhili [this message]
2023-12-13 10:45         ` Nicolas George
2023-12-13 10:49         ` Anton Khirnov
2023-12-13  9:44   ` Nicolas George
2023-12-14  0:47   ` Stefano Sabatini
2023-12-14  7:48     ` Anton Khirnov
2023-12-14  9:35       ` Nicolas George
2023-12-16 15:18         ` Stefano Sabatini
2023-12-18 17:33           ` Anton Khirnov
2023-12-18 19:58             ` Michael Niedermayer
2023-12-18 20:02               ` Nicolas George
2023-12-19  7:23               ` Rémi Denis-Courmont
2023-12-19  9:29                 ` Nicolas George
2023-12-19 10:43                   ` Rémi Denis-Courmont
2023-12-19 12:51                     ` Nicolas George
2023-12-19 14:47                       ` Rémi Denis-Courmont
2023-12-19 16:58                 ` Michael Niedermayer
2023-12-19 18:48                   ` Rémi Denis-Courmont
2023-12-19 18:55                     ` Nicolas George
2023-12-19 19:36                     ` Michael Niedermayer
2023-12-15 12:37     ` Alexander Strasser via ffmpeg-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tencent_A27E9F02AB974EFC70522D7A9AF540229A08@qq.com \
    --to=quinkblack@foxmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git