Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Quack Doc <quackdoctech@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH v2] libavfilter: add PipeWire-based grab
Date: Tue, 6 Aug 2024 12:39:17 -0400
Message-ID: <CALRFuf4nH7Q2gKGPFFUpCDXf01q6s7a7ACkj98rtucqbGKLHXQ@mail.gmail.com> (raw)
In-Reply-To: <886200727.588674.1722958477137.JavaMail.zimbra@savoirfairelinux.com>

> Sorry for the ambiguity in my previous reply. The answer is yes: the current
> version of the patch will try to use the XDG portal unless a file descriptor
> is provided. The "node" option was meant to be used together with the "fd"
> option, not as an alternative to it. So when I said that I thought these
> options could be used to bypass the portal, I should have specified I was
> thinking of the case where FFmpeg is used by a program as a library (which
> is what we're doing at my company); we'll need a different solution if we want
> this to work when using the command-line tool. Sorry again for the confusion.

Ah I see, It would indeed be nice to have

> Does it work reliably if you don't try to use hardware acceleration?
> (You'll have to set the "enable_dmabuf" option to 0 for that.)

while it does start reliably, and seems to get the proper dimensions,
it doesn't actually connect to the pipewire video source node,
encoding just black frames. below is the ffmpeg output. I am currently
running pipewire-git commit hash 3e5a85b3 as well as stable 1:1.2.2-1

This issue may be a cosmic specific issue however.

[Parsed_pipewiregrab_0 @ 0x647dc471c440] stream state: "connecting"
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Starting screen capture ...
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Library version: 1.3.0
[Parsed_pipewiregrab_0 @ 0x647dc471c440] stream state: "paused"
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Ignoring non-Format param change
    Last message repeated 1 times
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Negotiated format:
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Format: 11 (Spa:Enum:VideoFormat:RGBA)
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Size: 1280x960
[Parsed_pipewiregrab_0 @ 0x647dc471c440] Framerate: 60/1
[Parsed_pipewiregrab_0 @ 0x647dc471c440] stream state: "error"
[Parsed_pipewiregrab_0 @ 0x647dc471c440] PipeWire core error: error
alloc buffers: Invalid argument (id=2, seq=15, res=-32: Broken pipe)


On Tue, Aug 6, 2024 at 11:34 AM François-Simon Fauteux-Chapleau
<francois-simon.fauteux-chapleau@savoirfairelinux.com> wrote:
>
> ----- On Aug 4, 2024, at 4:11 PM, Quack Doc quackdoctech@gmail.com wrote:
> > I see, I tried to pull the patch and test it. How does invocation with
> > node work? I'm a bit confused with the invocation. For testing I tried
> > using "gamescope --headless -- glxgears" to generate a raw pipewire
> > stream. (cameras will automatically create one with pipewire) used
> > "pw-dump | jq '.[] | select(.info.props["node.name"] == "gamescope") |
> > .id'" to get the node id and tried to use it but it still seemed to
> > trigger the portal. If you have a camera installed I use the below
> > command to dump all of the video sources, gamescope and cameras
> > included
> >
> > pw-dump | jq '.[] | select(.info.props["media.class"] ==
> > "Video/Source") | .info.props."node.name" + " | " +
> > .info.props."node.description" + " | " + (.id|tostring)'
> >
> > does the current patch have a hard requirement on file descriptors to
> > not use xdg?
>
> Sorry for the ambiguity in my previous reply. The answer is yes: the current
> version of the patch will try to use the XDG portal unless a file descriptor
> is provided. The "node" option was meant to be used together with the "fd"
> option, not as an alternative to it. So when I said that I thought these
> options could be used to bypass the portal, I should have specified I was
> thinking of the case where FFmpeg is used by a program as a library (which
> is what we're doing at my company); we'll need a different solution if we want
> this to work when using the command-line tool. Sorry again for the confusion.
>
> > I did also test xdg capture on cosmic, it seems to only sporadically
> > work, usually spitting out the below error. I can spam it to keep
> > retrying it until it works
> >
> > [Parsed_hwmap_0 @ 0x79fabc003600] Mapping requires a hardware context
> > (a device, or frames on input).
> > [Parsed_hwmap_0 @ 0x79fabc003600] Failed to configure output pad on
> > Parsed_hwmap_0
> > [vf#0:0 @ 0x55cf4daff480] Error reinitializing filters!
> > [vf#0:0 @ 0x55cf4daff480] Task finished with error code: -22 (Invalid argument)
> > [vf#0:0 @ 0x55cf4daff480] Terminating thread with return code -22
> > (Invalid argument)
> > [vost#0:0/h264_vaapi @ 0x55cf4db38080] Could not open encoder before EOF
> > [vost#0:0/h264_vaapi @ 0x55cf4db38080] Task finished with error code:
> > -22 (Invalid argument)
> > [vost#0:0/h264_vaapi @ 0x55cf4db38080] Terminating thread with return
> > code -22 (Invalid argument)
> > [out#0/mp4 @ 0x55cf4db37800] Nothing was written into output file,
> > because at least one of its streams received no packets.
>
> Does it work reliably if you don't try to use hardware acceleration?
> (You'll have to set the "enable_dmabuf" option to 0 for that.)
>
> _______________________________________________
> 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".

  reply	other threads:[~2024-08-06 16:37 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-02 16:11 Quack Doc
2024-08-02 19:41 ` François-Simon Fauteux-Chapleau
2024-08-04 20:11   ` Quack Doc
2024-08-06 15:34     ` François-Simon Fauteux-Chapleau
2024-08-06 16:39       ` Quack Doc [this message]
2024-08-07  3:00       ` Quack Doc
2024-08-07 17:29         ` François-Simon Fauteux-Chapleau
  -- strict thread matches above, loose matches on Subject: below --
2024-07-28 14:53 Quack Doc
2024-07-30 19:53 ` François-Simon Fauteux-Chapleau
2024-08-01  7:44   ` Anton Khirnov
2024-08-01 11:34     ` Rémi Denis-Courmont
2024-05-10 21:12 François-Simon Fauteux-Chapleau
2024-05-11 14:08 ` Andrew Sayers

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=CALRFuf4nH7Q2gKGPFFUpCDXf01q6s7a7ACkj98rtucqbGKLHXQ@mail.gmail.com \
    --to=quackdoctech@gmail.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