stevenliu has quit [Read error: Connection reset by peer]
stevenliu_ has joined #ffmpeg
rvalue has quit [Ping timeout: 252 seconds]
fossdd has joined #ffmpeg
rvalue has joined #ffmpeg
beaver has quit [Ping timeout: 255 seconds]
fossdd has quit [Ping timeout: 255 seconds]
lucasta has quit [Quit: Leaving]
mven97 has joined #ffmpeg
hightower3 has joined #ffmpeg
hightower4 has quit [Ping timeout: 256 seconds]
JanC has quit [Ping timeout: 240 seconds]
Marth64 has quit [Remote host closed the connection]
JanC has joined #ffmpeg
lavaball has joined #ffmpeg
mips64el has quit [Remote host closed the connection]
waleee has joined #ffmpeg
robobub has joined #ffmpeg
jtgd has quit [Quit: WeeChat 4.2.1]
jtgd has joined #ffmpeg
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
lexano has quit [Ping timeout: 255 seconds]
ajshell192 has joined #ffmpeg
ajshell19 has quit [Read error: Connection reset by peer]
ajshell192 is now known as ajshell19
waleee has quit [Ping timeout: 255 seconds]
minimal has quit [Quit: Leaving]
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
manwithluck has quit [Read error: Connection reset by peer]
manwithluck has joined #ffmpeg
nrg has quit [Ping timeout: 264 seconds]
nrg has joined #ffmpeg
junaid_ has joined #ffmpeg
fling has quit [Remote host closed the connection]
fling has joined #ffmpeg
lolok has joined #ffmpeg
\\Mr_C\\ has quit [Remote host closed the connection]
YuGiOhJCJ has joined #ffmpeg
YuGiOhJCJ has quit [Remote host closed the connection]
YuGiOhJCJ has joined #ffmpeg
AbleBacon has quit [Read error: Connection reset by peer]
Marth64 has joined #ffmpeg
GrampaWildWilly has joined #ffmpeg
<GrampaWildWilly>
First time here so please forgive noob errors.
<GrampaWildWilly>
I am looking for some help using accented characters in file names passed to ffmpeg.
<GrampaWildWilly>
No takers?
<aaabbb>
it takets time to get answers
<DonTrackMe>
takers?
<DonTrackMe>
remove accents in the first place? LMAO
<aaabbb>
i don't think ffmpeg cares about accents in the filename
<aaabbb>
that's your filesytem's job
<GrampaWildWilly>
Right. I've actually got it mostly working. And thank you for responding.
<GrampaWildWilly>
So here's what I do.
<DonTrackMe>
I guess if proper apostrophe are used to define what is, between the quotes, part of the path and filename, ffmpeg should slip on it
<GrampaWildWilly>
This is on Windows 11 Pro, by the way.
<GrampaWildWilly>
First I issue chcp 1252
<DonTrackMe>
why don't you give a break to MichaelSoft BinBows
<DonTrackMe>
Try Debian
<DonTrackMe>
Bill Gates is way behind me.
<GrampaWildWilly>
Then I execute ffmpeg -i "A name like thés" "Another file name with àccents"
<DonTrackMe>
I carry some windows 7 vm's for some old fashioned apps and that's it
<GrampaWildWilly>
And other parameters of course but that's just window dressing.
<DonTrackMe>
are you French?
<DonTrackMe>
I'm a frenchie...
<GrampaWildWilly>
The function works. The results are correct. The output file has the right name.
<DonTrackMe>
Arrête de mettre de accents partout...
<GrampaWildWilly>
The weird thing is that in the ffmpeg log, which I capture via 2>"Yet another file näme with accents" . . .
<GrampaWildWilly>
The ffmpeg report of the output file name replaces each accented letter with one of those ugly double-byte codes.
<GrampaWildWilly>
The file name in the report is displayed weird, but the function worked.
rv1sr has joined #ffmpeg
<GrampaWildWilly>
DonTrackMe je veux de sérieuses réponses. Je les accepterais de toi si tu en as à offrir. Et non, je ne suis pas francophone, mais j'ai appris le français assez bien à l'école. Alors, soyons un peu plus sérieux.
<DonTrackMe>
Je ne sais pas, comme les autres disent, les accents, c'est ton système d'exploitation qui les gèrent à condition que tu mette bien ente guillemets le chemin complet du fichier
<DonTrackMe>
Sérieusement, je me contente de fournir a ffmpeg des fichier ou des chemins ne contenat ni espaces, ni caractères spéciaux. . . .
<GrampaWildWilly>
Oui. C'est ça que je fais. Tout fonctionne à merveille. Mais le log de ffmpeg montre mal les noms des fichiers.
<DonTrackMe>
...
<DonTrackMe>
flush windows 11
<GrampaWildWilly>
Moi, je m'intéresse à l'op
<GrampaWildWilly>
Damn
<DonTrackMe>
Exact...
<DonTrackMe>
Damn windows 11 avec les layers de langues qu'il t'insère même en ligne de commande...pour ton bien..
<DonTrackMe>
nah
<GrampaWildWilly>
Moi, je m'intéresse à l'opéra. Les noms des opéra sont parfois comme La Bohème ou Roméo et Juliette.
<DonTrackMe>
bah oui
<DonTrackMe>
on dis pas contre
<DonTrackMe>
on parle de bill gates, pas contre js bach
<GrampaWildWilly>
Extrait d'un log de ffmpeg:
<GrampaWildWilly>
Output #0, mp4, to 'M:\VDH Testing\Die Zauberflöte Video 20230603.mp4':
<DonTrackMe>
t'a déja essayé d'écrire sur un smartphone en anglias ou le clavier et l'autocorrecteur était en français.
<DonTrackMe>
Oufffff.
<DonTrackMe>
hmmm
<GrampaWildWilly>
Mais le nom du fichier est plutôt N:\Opera\Die Zauberflöte Video 20230603.mp4
<DonTrackMe>
installe vbox, mets debian, test voir si dans linux tu as les memes problemes de caractères spéciaux...
<DonTrackMe>
pourquoi les gens aiment tant windows 11? Il fait les Grilled Cheese ?
<GrampaWildWilly>
Linux. C'est trop de travail. J'y ai déjà mis assez d'effort pour faire marcher Windows.
<GrampaWildWilly>
Windows s'installe. Linux n'a pas d'instructions claires pour aider ceux qui n'y connaissent rien.
<GrampaWildWilly>
Mais je ne suis pas ici pour débâttre les plus et moins de Windows vs Linux. Je veux parler de ffmpeg.
<DonTrackMe>
tu as essayé linux y'a 20 ans?
<GrampaWildWilly>
ffmpeg, s
<DonTrackMe>
linux ajd tu boot l'iso tu fais du next nxt next comme dans windows pis tes sur un desktop..
<GrampaWildWilly>
ffmpeg, s'il te plaît.
FH_thecat has quit [Quit: Leaving]
<DonTrackMe>
Je suis un irréductible de windows.
<DonTrackMe>
bah comme les autres disnet
<DonTrackMe>
je crois pas que ffmpeg soit la cause du problème ic
<GrampaWildWilly>
Et quant à ffmpeg?
<DonTrackMe>
ici
<DonTrackMe>
mais entre temps
<DonTrackMe>
je te dirais d'essayer de passer tes fichiers par ffQueue,
<DonTrackMe>
je participe au débuggage du truc
<DonTrackMe>
interface gui pour ffmpeg pour win. linux et autres...
<DonTrackMe>
tu drag et drop ton fichier et tu choisis tes reglages d'encodage..
Ox7C5_ has joined #ffmpeg
<GrampaWildWilly>
J'imagine qu'il y a un paramètre qui signifie à ffmpeg de me donner les caractères comme il faut.
<DonTrackMe>
je suis curieux de savoir si sur win1, tu as les memes problemes
<DonTrackMe>
He left the scene... I spent too much energy for hin...
Marth64 has joined #ffmpeg
hightower4 has joined #ffmpeg
hightower3 has quit [Ping timeout: 268 seconds]
lavaball has quit [Quit: lavaball]
GrampaWildWilly has joined #ffmpeg
<GrampaWildWilly>
dontrackme est tu toujours là?
<GrampaWildWilly>
es tu. Je connais les mots corrects.
Seamus has joined #ffmpeg
GrampaWildWilly has quit [Quit: Client closed]
GrampaWildWilly has joined #ffmpeg
flom84 has joined #ffmpeg
flom84 has quit [Remote host closed the connection]
GrampaWildWilly has left #ffmpeg [#ffmpeg]
rvalue has quit [Ping timeout: 240 seconds]
rvalue has joined #ffmpeg
flom84 has joined #ffmpeg
flom84 has quit [Remote host closed the connection]
MootPoot has quit [Quit: Connection closed for inactivity]
Seamus_ has joined #ffmpeg
Traneptora has joined #ffmpeg
junaid_ has quit [Remote host closed the connection]
SuRGeoNix has joined #ffmpeg
<SuRGeoNix>
Hi, I'm using avformat_open_input to open ddagrab with lavfi, is there any way to supply the d3d11 device? (normally i was doing that with AVCodecContext but this needs to be done in AVFormatContext)
<SuRGeoNix>
It seems that AVFilterContext supports graph_parse with the AVBufferRef *hw_device but how can I parse it from avformat_open_input options?
<JEEB>
for the record you don't need avformat for ddagrab
<JEEB>
it is part of avfilter and that has directly hw things there IIRC
<SuRGeoNix>
I know but currently I've not implemented video filters so I let ffmpeg create them
<JEEB>
and yes that is I think one of the reasons why the lavfi avdevice is going to be deprecated soon; it does not provide full access to the underlying avfilter context, and in ffmpeg command line you can just do `-filter_complex ddagrab` or so, which was eye-opening for me as well. ffmpeg does not need "inputs" to handle input :)
kepstin has quit [Remote host closed the connection]
<SuRGeoNix>
yes make sense, but my problem is that the stack works demux->decode->render ... it will not be easy to just remove the demux part for now :)
<JEEB>
actually you would not have either the decode :P since you are getting already decoded images from avfilter
<SuRGeoNix>
indeed just (process)->render
<JEEB>
the lavfi avdevice would also most likely give you wrapped avframes, so that wouldn't have decoding, either
<SuRGeoNix>
I guess will just copy the texture from one device to another for now... .but might not even possible (needs to be shared?)
<SuRGeoNix>
yes needs the shared flag and it's not there
<JEEB>
yes, since you need to give that flag to the hw frames context or whatever it is
<SuRGeoNix>
I don't have access to that :)
<JEEB>
yes, since you are trying to get by with the lavfi avdevice instead of utilizing the filter directly.
<SuRGeoNix>
might be possible to use fmtCtx priv data to get lavfi priv context
<SuRGeoNix>
the issue with that is that i can get that after it opens it
<SuRGeoNix>
Thanks for you clarifications anyways ;)
<JEEB>
yes, I would recommend just not using too much time with lavfi avdevice and instead focusing on the ddagrab filter. for the record, lavfi also has a more explicit api than the "magical filter graph" one
<JEEB>
I did personally prefer that one, since creating filter instances and then connecting them felt more explicit and you learned what those structures were underneath
<SuRGeoNix>
yes, I will leave this for now, I was going to add it if it was simple but I will push it for my next major release (which will support (process)->render directly)
kepstin has joined #ffmpeg
Seamus_ has quit [Remote host closed the connection]
Seamus_ has joined #ffmpeg
JanC has quit [Ping timeout: 272 seconds]
SuRGeoNix has quit [Quit: Client closed]
JanC has joined #ffmpeg
Tinos has joined #ffmpeg
dostoyevsky2 has quit [Quit: leaving]
dostoyevsky2 has joined #ffmpeg
Ogobaga has quit [Ping timeout: 272 seconds]
Ogobaga has joined #ffmpeg
junaid_ has joined #ffmpeg
Marth64 has quit [Ping timeout: 264 seconds]
Marth64 has joined #ffmpeg
moxie has quit [Ping timeout: 252 seconds]
meepmeep has quit [Read error: Connection reset by peer]
moxie has joined #ffmpeg
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
Marth64 has quit [Ping timeout: 256 seconds]
Marth64 has joined #ffmpeg
Ogobaga has quit [Quit: Konversation terminated!]
Ogobaga has joined #ffmpeg
hightower3 has joined #ffmpeg
hightower4 has quit [Ping timeout: 255 seconds]
junaid_ has quit [Remote host closed the connection]
Vonter has quit [Ping timeout: 255 seconds]
Vonter has joined #ffmpeg
TuxJobs has joined #ffmpeg
<TuxJobs>
I think I've found a solution to my issue where cutting out parts of .mp4 or .mkv videos grabbed a frame or two "too much": I simply first use FFMPEG to convert the file to be cut into an .avi. Then I do the cutting on the .avi file.
<TuxJobs>
The only problem is that it takes a million trillion years to do the converting.
<TuxJobs>
Does FFMPEG use the GPU or all CPU?
<TuxJobs>
Also, furq, I finally was able to try that ancient Mp3 encoder, but was unable to make it "blip" or "blop". So I guess it had to do with bad ripping of the CDs or something after all.
emanuele6 has quit [Remote host closed the connection]
emanuele6 has joined #ffmpeg
Marth64 has quit [Ping timeout: 272 seconds]
Marth64 has joined #ffmpeg
Tano has quit [Quit: WeeChat 4.1.2]
<another|>
unless you specifically set gpu, it's all software
darkapex has quit [Ping timeout: 256 seconds]
Tano has joined #ffmpeg
Marth64 has quit [Ping timeout: 272 seconds]
rsx has joined #ffmpeg
Marth64 has joined #ffmpeg
Ogobaga has quit [Quit: Konversation terminated!]
Masterbyte has joined #ffmpeg
<Masterbyte>
Hello here
<Masterbyte>
Is here the good channel for ask some question?
Ogobaga has joined #ffmpeg
Masterbyte has quit [Quit: Leaving]
lavaball has joined #ffmpeg
bitoff__ has joined #ffmpeg
Marth64 has quit [Ping timeout: 264 seconds]
Marth64 has joined #ffmpeg
bitoff_ has quit [Ping timeout: 256 seconds]
omegatron has joined #ffmpeg
Master_ has joined #ffmpeg
Ogobaga has quit [Ping timeout: 256 seconds]
lexano has joined #ffmpeg
Ogobaga has joined #ffmpeg
Marth64 has quit [Ping timeout: 256 seconds]
Marth64 has joined #ffmpeg
Seamus has quit [Ping timeout: 250 seconds]
Seamus_ has quit [Ping timeout: 240 seconds]
Seamus has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Marth64 has quit [Ping timeout: 252 seconds]
Marth64 has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Marth64 has quit [Ping timeout: 260 seconds]
Marth64 has joined #ffmpeg
Seamus has quit [Ping timeout: 256 seconds]
Vonter has quit [Ping timeout: 255 seconds]
Vonter has joined #ffmpeg
waleee has joined #ffmpeg
Seamus has joined #ffmpeg
hightower4 has joined #ffmpeg
hightower3 has quit [Ping timeout: 256 seconds]
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
noobaroo has joined #ffmpeg
xx has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
minimal has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Capstan has joined #ffmpeg
rvalue has quit [Ping timeout: 260 seconds]
rvalue has joined #ffmpeg
hightower3 has joined #ffmpeg
rsx has quit [Ping timeout: 264 seconds]
nrg has quit [Ping timeout: 246 seconds]
hightower4 has quit [Ping timeout: 255 seconds]
nrg has joined #ffmpeg
michaelni has quit [Quit: Leaving]
nrg has quit [Client Quit]
junaid_ has joined #ffmpeg
nrg has joined #ffmpeg
Ogobaga has quit [Quit: Konversation terminated!]
Ogobaga has joined #ffmpeg
Marth64 has quit [Ping timeout: 240 seconds]
Marth64 has joined #ffmpeg
Muimi has joined #ffmpeg
\\Mr_C\\ has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Seamus has quit [Ping timeout: 272 seconds]
Marth64 has quit [Ping timeout: 268 seconds]
Marth64 has joined #ffmpeg
Seamus has joined #ffmpeg
AbleBacon has joined #ffmpeg
holgersson has quit [Quit: “Format C:........[Done]“]
holgersson has joined #ffmpeg
michaelni has joined #ffmpeg
kepstin has quit [Ping timeout: 268 seconds]
AbleBacon has quit [Remote host closed the connection]
AbleBacon has joined #ffmpeg
fling has quit [Ping timeout: 255 seconds]
kepstin has joined #ffmpeg
AbleBacon_ has joined #ffmpeg
zsoltiv_ has joined #ffmpeg
AbleBacon__ has joined #ffmpeg
AbleBacon has quit [Ping timeout: 246 seconds]
fling has joined #ffmpeg
AbleBacon_ has quit [Ping timeout: 246 seconds]
AbleBacon__ is now known as AbleBacon
nrg has quit [Ping timeout: 268 seconds]
nrg has joined #ffmpeg
lolok has quit [Quit: lolok]
kasper93 has quit [Ping timeout: 256 seconds]
<TuxJobs>
another|: Is there a good reason for that?
<TuxJobs>
another|: Isn't using the GPU much faster and better for video stuff?
<TuxJobs>
another|: And is the way to do this as simple as using a --use-gpu flag or something?
<JEEB>
btw, if the conversion to avi took ages it means that you re-encoded, if you are OK with re-encoding then you don't need to convert to anything first unless your initial container does not have any indices
<JEEB>
since seek to a point with decoding should not have to limit itself to random access points for obvious reasons
<JEEB>
also: GPUs are great for *video* stuff, such as shaders for image manipulation and such. video formats not specifically designed for the limitations of GPUs do not fit well into the GPUs themselves
<JEEB>
that is why around 2008-2010 the GPU vendors gave up trying to do video encoding with GPGPU
<JEEB>
and moved onto hard-wired ASICs to do video decoding and encoding
JanC has quit [Ping timeout: 255 seconds]
<znf>
Can you do tone-mapping (hdr to sdr) with cuda* stuff?
<znf>
I see that `zscale` is usually recommended to do that, but that will obviously have to be run on the CPU
<JEEB>
zscale doesn't do tone mapping either
<JEEB>
there's three filters that do "proper" tone mapping, and I would probably recommend the libplacebo video filter for that (uses vulkan)
JanC has joined #ffmpeg
<JEEB>
zscale does map HDR to SDR in a clipping manner I think, but nothing fancier than that "since there is no specification for tone mapping"
<znf>
can you actually fit a vulkan filter in between nvenc stuff
<JEEB>
then you have the two tonemap filters, where the CPU based one is based off of really older version of mpv's tonemap, and then the opencl one is based off of a newer version of it :D and libplacebo is then mpv's rendering stuff moved onto a separate library (and then improved and rewritten a good few times)
<znf>
I mean, without a bunch of hwdownload/hwupload ?
<znf>
I feel like that would make a gpu very pissy about it
<JEEB>
I don't think you need hwdownload, since HW to HW transfers (or remappings) are done by the hwupload filter
nd has quit [Ping timeout: 255 seconds]
<JEEB>
I think there was some remapping support at least one way
<JEEB>
but in the worst case there might be a GPU to GPU memcpy
<JEEB>
it should not have to touch grass (RAM)
<JEEB>
at least even nvidia itself publishes examples of going both ways - vulkan image buffer to cuda and then synchronizes it with vulkan
<znf>
got a link?
Master_ has quit [Read error: Connection reset by peer]
<JEEB>
anyways, hwupload most likely will work - and that's something that in the very worst case is a GPU to GPU memcpy
Tinos has quit [Ping timeout: 250 seconds]
nd has joined #ffmpeg
<JEEB>
also as a fun side note, since vulkan hwdec interfaces now exist, and nvidia supports them in their drivers you can actually do decoding straight into a vulkan surface now
hightower4 has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
hightower3 has quit [Ping timeout: 260 seconds]
<haasn>
znf: try hwmap?
<znf>
last time I tried that, I managed to break everything :D
<haasn>
I'm pretty sure people combine libplacebo with nvenc routinely
<haasn>
or hwupload=derive_device=cuda apparently
<haasn>
derive_device=vulkan I mean
Haxxa has quit [Quit: Haxxa flies away.]
Haxxa has joined #ffmpeg
Tinos has joined #ffmpeg
Marth128 has joined #ffmpeg
Marth64 has quit [Killed (NickServ (GHOST command used by Marth128!~Marth64@85.237.194.236))]
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
<znf>
and for some reason they're specifying `-c:v h264_cuvid`
galad has quit [Quit: ZNC 1.9.x-git-230-b1f873df-frankenznc - https://znc.in]
carpenter has quit [Ping timeout: 256 seconds]
<JEEB>
that is basically the pre-hwaccel thing which passes the NAL unit parsing etc onto the driver
galad has joined #ffmpeg
moviuro has quit [Ping timeout: 256 seconds]
<JEEB>
it might also have scaling capabilities within the decoder component of the driver, which if you are doing only one output might leave you with a shorter command line, maybe?
luva has quit [Ping timeout: 256 seconds]
<znf>
I asked and the dev's answer was "that doesn't account for the card's capabilities
<znf>
"
<znf>
which makes me a bit confused -- why would you need to account for it, ffmpeg falls back to software anyway, right?
galad has quit [Client Quit]
<JEEB>
well the one thing specifying that driver decoder should cause is a failure if there's nothing
<JEEB>
but I think you can get clear failure when the hwaccel is available as well?
<znf>
[h264 @ 0x55a93d356e80] Reinit context to 1920x800, pix_fmt: yuv420p
<znf>
Selecting decoder 'h264' because of requested hwaccel method cuda
kmikita has quit [Ping timeout: 268 seconds]
moviuro_ has quit [Ping timeout: 260 seconds]
omegatron has quit [Ping timeout: 256 seconds]
JanC_ has joined #ffmpeg
JanC is now known as Guest2833
JanC_ is now known as JanC
<znf>
JEEB, are the `_cuvid` decoders a bad idea, usually?
Guest2833 has quit [Ping timeout: 256 seconds]
<JEEB>
yes, since a lot of the metadata etc parsing and handling from FFmpeg is not getting utilized. the packets are just being pushed into whatever nvidia is doing
<JEEB>
which also means that if there is support for some metadata or whatever added in FFmpeg, someone would then completely separately have to integrate that into the nvidia APIs if they allow for it to begin with
<JEEB>
since hwaccels utilize the core of the FFmpeg decoder, but then leave slice decoding to the hw thing, and thus are able to share code
<znf>
does this metadata include HDR stuff?
<JEEB>
while the separate decoders are literally that - just separate decoders
<JEEB>
they have to redo the stuff that would otherwise be in the framework
<JEEB>
yes, various side data
<JEEB>
HDR is side data as well
moviuro has joined #ffmpeg
Marth64 has joined #ffmpeg
pikapika has joined #ffmpeg
Marth128 has quit [Ping timeout: 264 seconds]
<znf>
thank you
MootPoot has joined #ffmpeg
nrg has quit [Ping timeout: 256 seconds]
Copy_of_nrg has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Muimi has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Copy_of_nrg is now known as nrg
Seamus has joined #ffmpeg
Muimi has joined #ffmpeg
Seamus has quit [Remote host closed the connection]
Seamus has quit [Remote host closed the connection]
<haasn>
perhaps I should add native cuda interop to libplacebo
<haasn>
that would certainly allow you to sidestep a large chunk of this mess
Seamus has joined #ffmpeg
<haasn>
looking at my own command history I ingest 'vaapi' frames directly into vf_libplacebo
<haasn>
(since I don't have a cuda device)
<haasn>
and that just works (tm)
carpenter has joined #ffmpeg
<znf>
and I don't have any other kind of device, heh
<haasn>
znf: as a work-around, if you can figure out a way to transform the cuda frames into vaapi or dmabuf, then vf_libplacebo could directly ingest those (even without a vulkan device initialized by you)
<haasn>
I'm guessing the modifiers errors come from the vulkan hwcontext
<znf>
like legit all I have is nvidia everywhere on linux machines
<JEEB>
at least nvidia itself does point at various ways of sharing buffers
<JEEB>
so clearly it should be possible
<JEEB>
philipl was working on some of that stuff I think?
<JEEB>
since he has had an interest towards cuda stuff
<haasn>
conclusion: need to add cuda interop to libplacebo
AbleBacon_ has joined #ffmpeg
<haasn>
just gotta steal the code from mpv
<JEEB>
in theory hwupload should JustWork, but I've not really poked at it since most of my use cases are without hwdec with ffmpeg
<TuxJobs>
JEEB: I don't know if it's actually true, but my idea of converting to AVI is like "using the exact same quality as the MP4, pad out every frame so that it exists based on the heavily space-saved MP4 original", so that exact seeking to a frame really does cut there and not slightly before/after as happens with a format that uses "keyframes".
<TuxJobs>
JEEB: So there would be no point in enabling GPU usage as they are not good for video encoding stuff?
<JEEB>
TuxJobs: random access points is probably what you refer to as "keyframes". but yes, if you are OK with re-encoding then you can just do... that :D
kmikita has joined #ffmpeg
AbleBacon has quit [Ping timeout: 252 seconds]
<JEEB>
instead of first going through another transcode
<JEEB>
TuxJobs: for encoding the ASICs are optimized for speed and latency. not for compression
<TuxJobs>
Why would I not be okay with re-encoding? Does that imply that the quality suffers in some way?
<JEEB>
I thought since you were using the word "to cut" you would have wanted the original video packets
<JEEB>
which is also why generally you need to cut on random access points
<JEEB>
since otherwise you lose possible references
<TuxJobs>
? :S
<znf>
> Does that imply that the quality suffers in some way?
<znf>
Yes.
<TuxJobs>
The only thing I mean is that if I use the .mp4 file directly, I often get one frame flashing by in the finished video file after I cut out a portion, instead of where I actually cut. First converting the MP4 to AVI seems to make this problem go away.
<znf>
All video transcoding is lossy (unless you want to output raw video for a few gigabytes/second)
<TuxJobs>
znf: But AVI is lossless, no?
<znf>
no, AVI is a container
<TuxJobs>
(And also uncompressed)
<JEEB>
if you were codec copying into AVI it would be lossless since the original video packets are read from the input mp4 container and put into the avi container
<JEEB>
but since you said it takes ages, you are re-encoding into *something*
<JEEB>
and if you are OK with re-encoding, then you might as well just do decode+encode from the original
<TuxJobs>
I assume it takes ages simply because it has to first "read" the MP4 file and then output the massive AVI one.
<znf>
dunno what ffmpeg defaults for avi, I'd assume h264 at this point
<JEEB>
but really, you don't need the copy into avi :D
<haasn>
but probably that will reproduce the same issue as your mp4, just now in avi container
<znf>
If you don't want to lose quality (ie: not transcode), you need -c copy, but as haasn said, that will most likely exhibit the same issue
AbleBacon_ is now known as AbleBacon
<znf>
or, well, -vcodec copy or whatever
<TuxJobs>
I use `-i infile.mp4 -q:a 0 -q:v 0 outfile.avi` to convert the MP4 to AVI and in mpv it says "mpeg4" when pressing "i" in the .avi.
<znf>
yes, you _are_ transcoding
<TuxJobs>
Dammit.
<TuxJobs>
:(
<znf>
and no, it's NOT "uncompressed"
<TuxJobs>
And yes, the "flashing frame from previous frame" issue just happened for the first time now that I made another test...
<TuxJobs>
And I thought I finally had a nice way to losslessly cut out videos from videos.
<TuxJobs>
May not be uncompressed, but 3x the filesize of the MP4.
<znf>
like I said before, `AVI` is just a container, that doesn't really tell you what kind of video codec it contains. Could be MPEG-4 Part2, could be XVID
<znf>
you could use -c:v rawvideo, but that won't be pretty on your storage space
<TuxJobs>
What does `-codec copy` or `-vcodec copy`? And which one is it?
<TuxJobs>
I hate losing a "generation" of quality.
<TuxJobs>
Just because I want the annoying junk they put in the beginning and end gone from videos.
<znf>
-codec copy specifies to copy the audio and video streams (and I think subtitles too, if present)
<TuxJobs>
Um...
<znf>
-vcodec copy copies only the video, it will transcode the audio to whatever the default is for that container (mp3 or ac3)
<TuxJobs>
znf: What is the correct way to make a sub-video of a MP4 (not losing quality)?
<znf>
define "correct"
<znf>
if you need to cut specific segments, you either accept the fact that there's extra-data at the beggining/end, but retaining the source quality
<znf>
or you accept the fact that you need to re-encode (thus losing some quality), but having the specific frames you want
<znf>
there's no other way
Ogobaga has joined #ffmpeg
<Lynne>
znf: what are you trying to do?
<znf>
Lynne, I was just playing around with a project that uses ffmpeg in the backend
<znf>
was trying to replace scale_cuda with libplacebo
<znf>
while retaining hw decoding/encoding with nvenc
<Lynne>
use vulkan for decoding?
<znf>
the binary I was playing around with doesn't have support for it
<Lynne>
you need to use hwdownload,format=vulkan,libplacebo,hwupload,format=cuda, I think
<znf>
wouldn't that cause a lot of data being copied in vram?
<Lynne>
no, cuda has a special interop
<Lynne>
haasn: it isn't *as easy* as adding a dmabuf interop, not by a longshot
<Lynne>
you cannot map vulkan frames to cuda, you can only map cuda frames to vulkan
lemoniter has joined #ffmpeg
lavaball has joined #ffmpeg
<Lynne>
which means you must control the allocation of the input vulkan frames (which you masquararade as being vulkan frames after allocating and exporting them from cuda) to be able to "interop"
<znf>
so the best way would be to move everything over to vulkan...
<znf>
which is great if you're doing it on Linux
<znf>
horrible experience for Windows, last time I tried building a binary for it
<Lynne>
it's weird, nvidia let you export cuda to vulkan, let you **run cuda code IN vulkan**, but don't let you import vulkan into cuda
<znf>
not sure if BtbN made his build script do vulkan on windows, yet
<znf>
or if he even has any interest
<BtbN>
Why would it not just work?
<znf>
my current (6.0) binary built with your script doesn't have it on windows? I can't recall why
<BtbN>
6.0 is just too old
<znf>
yeah, I should make my custom patches apply to the 6.1 release, but I've just haven't had an urgent need for it yet :)
<znf>
just gotta move my ass to do it
<haasn>
Lynne: how exactly does a filter like `hwupload` do vulkan -> cuda? wouldn't that require `cuda` being listed in av_hwdevice_get_hwframe_constraints(vulkan)->valid_sw_formats ?
<haasn>
(other way around, but you get the point)
<Lynne>
that's why it's called hwupload, it does a cuda->cuda gpu memcpy
Capstan has quit [Ping timeout: 250 seconds]
<Lynne>
actually, it does add cuda to the list of supported SW formats
<haasn>
the vulkan hwcontext does?
<haasn>
I'm trying to figure out how this will work with swfmt negotiation
mips64el has joined #ffmpeg
<haasn>
seems like the answer is "not really", and we should stop using hwupload to do hw->hw copies
<haasn>
hwcopy?
<znf>
hwtranspose!
<znf>
hwmaterialise
<znf>
hwemerge
<JEEB>
Lynne: so the example I linked didn't import vulkan surface into cuda?
<JEEB>
> CUDA imports the Vulkan image buffer, performs box filtering over it, and synchronizes with Vulkan through vulkan semaphores imported by CUDA.
<JEEB>
cudaVkImportImageMem and cudaUpdateVkImage, apparently?
Tano has joined #ffmpeg
rv1sr has quit []
<TuxJobs>
znf: And even when converting to AVI first (thus apparently re-encoding), it still doesn't cut properly.
<TuxJobs>
It's all just a big ugly mess of endless complexity. :/
<znf>
nobody ever said that's gonna happen
<JEEB>
then there's apparently another example there utilizing cuMemMap APIs
<znf>
cuts will almost always happen on keyframe intervals
<TuxJobs>
znf: I experienced it myself today, as I mentioned.
<znf>
you want to _cut_ and re-encode at the same time
<TuxJobs>
Annoying 1-frame leftover from the left side of the cut.
<znf>
not re-encode, and then cut from the resulting file
<TuxJobs>
Getting straight answers is hopeless.
TuxJobs has quit [Quit: Leaving]
iive has joined #ffmpeg
<yrc>
Hi! Time to go to bed for me. Before I do, though, I thought I’d ask a question. Hopefully someone will have the answer by the time I come back :-) I tried muxing all chapters of the whole IceAge DVD (i.e. main movie + misc. bonuses, etc.) into a single MKV using Ordered Chapters. I made certain that all chapters inside a given `<EditionEntry>` share the same streams, codecs and languages. However,
<yrc>
different `<EditionEntry>` may have different settings (bonuses typically have less streams than the movie).
<yrc>
The muxing fails with this error: `Error: The file no. 26 ('./t.50.ch.7.mkv') does not contain a track with the ID 4, or that track is not to be copied. Therefore no track can be appended to it.`. Does this mean that there is _no way_ to mux chapters that do not _all_ share the same kind of streams? Will I have to “group by types-of-all-streams” and create 1 MKV per group?
<yrc>
’later. Tschüß
<znf>
the hell do you think you are, a project manager asking answers from their team while they fuck off and do something else?
<yrc>
znf: Not at all! I just want to warn that I won’t answer right away if someone answers my question, because I won’t be there, and I want to avoid this non-answering being taken as rudeness. Sorry if my intent was misunderstood.
<yrc>
I don’t request anyone to answer; I just hope someone will know. And if someone does, I’ll be thankful.
<yrc>
I just had to write the question now, because I’ll switch the PC off, and I’ll loose the output of the command.
<JEEB>
don't worry, on IRC someone will respond - or not. but in general handling ordered chapters with FFmpeg's (de)muxer is not a thing so far?
SnakesAndStuff has joined #ffmpeg
<JEEB>
and the error you're getting sounds like the concat demuxer, and yea. that has the limitation that all inputs need to have the same streams
<yrc>
Thank you JEEB. OK, good night all. I’ll be back :-)
<SnakesAndStuff>
Hello. I have read the guides on multiple output over at https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs and really like the documentation etc. However, I'm running into trouble monitoring a stream (locally) while recording as well from a webcam using v4l2
<SnakesAndStuff>
However, there seems to be a LOT of lag that gets greater and greater when I stream an additional output over to ffplay. Is there a streaming option or options to use as a "monitor" to look at video framing etc? I don't care if there is frame drop as long as I can monitor the general framing.
<SnakesAndStuff>
Also: I'm curious if there is any advantage to scaling down the output that is being monitored? There is overhead with scaling, but does it at some point become less intensive to scale down and view a lower resolution video than to just view a lower res video? I'm guessing not?
ivanich has joined #ffmpeg
Tinos has quit [Remote host closed the connection]
<SnakesAndStuff>
I think I figured out my own question... -framedrop seems to keep it as up to date as possible.
<SnakesAndStuff>
Now for the next question: when recording in rawvideo, is there a timestamp saved that can sync up with an audio feed that is recorded at the same time? Or does it need to be manually synced?
<SnakesAndStuff>
bbiab
lucasta has joined #ffmpeg
Muimi has joined #ffmpeg
SuicideShow has quit [Ping timeout: 260 seconds]
Seamus has quit [Remote host closed the connection]
Seamus has joined #ffmpeg
Traneptora has quit [Quit: Quit]
SuicideShow has joined #ffmpeg
ursa-major has joined #ffmpeg
iive has quit [Quit: They came for me...]
HarshK23 has quit [Quit: Connection closed for inactivity]
<znf>
kinda weird question, is there a way to use some arbitrary flag that technically does nothing, as my first ffmpeg argument, so I can differentiate the processes in a list of ffmpeg processes?
<znf>
I thought I could use `-user_agent` but the source is local and apparently ffmpeg doesn't like that