BtbN changed the topic of #ffmpeg to: Welcome to the FFmpeg USER support channel | Development channel: #ffmpeg-devel | Bug reports: https://ffmpeg.org/bugreports.html | Wiki: https://trac.ffmpeg.org/ | This channel is publically logged | FFmpeg 7.0 is released
aus has quit [Remote host closed the connection]
aus has joined #ffmpeg
aaabbb has quit [Killed (zinc.libera.chat (Nickname regained by services))]
aaabbb has joined #ffmpeg
bbbccc has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
squeaktoy has quit [Quit: WeeChat 4.2.1]
System_Error has joined #ffmpeg
five61848033 has quit [Remote host closed the connection]
five61848033 has quit [Remote host closed the connection]
five61848033 has joined #ffmpeg
jagannatharjun has joined #ffmpeg
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg
Tinos has joined #ffmpeg
waleee has quit [Ping timeout: 260 seconds]
noobaroo has quit [Quit: Konversation terminated!]
noobaroo has joined #ffmpeg
Vonter has joined #ffmpeg
<aaabbb>
is there a reason the btbn build doesn't have the alsa input device?
aus has quit [Quit: Ping timeout (120 seconds)]
aus has joined #ffmpeg
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
<ossifrage>
I'm trying to extract all frames from a mp4 video to png files and I seem to be missing frames. ffmpeg -i $f -start_number 0 -vsync 0 images/$f/$f.%06d.png
<ossifrage>
Some of the videos are missing 0 frames, some 3, some 1. [based on per-frame metadata that came with the video files]
<aaabbb>
ossifrage: "ffmpeg -an -i $f -f null -" how many frames does it say?
<aaabbb>
that will decode the video and count frames, in case maybe the metadata you got is wrong
cmc has quit [Ping timeout: 260 seconds]
AbleBacon has quit [Read error: Connection reset by peer]
cmc has joined #ffmpeg
<ossifrage>
aaabbb, it seems like the metadata is wrong (it has bounding boxes of object in each frame, making everything suspect)
<aaabbb>
more likely that metadata is wrong than ffmpeg's code :p
<aaabbb>
(not to say it's bug free...)
<ossifrage>
aaabbb, they also have the frame rate wrong in the metadata (29 != 29.97)
zombean has joined #ffmpeg
jagannatharjun has quit [Quit: Connection closed for inactivity]
jagannatharjun has joined #ffmpeg
coldfeet has joined #ffmpeg
YuGiOhJCJ has joined #ffmpeg
vlm has joined #ffmpeg
MisterMinister has quit [Ping timeout: 256 seconds]
rv1sr has joined #ffmpeg
<aaabbb>
how do i increase the roll-off for the highpass/lowpass filters? like how asubcut and asupercut work but without being limited to <200hz and >20khz
xx has joined #ffmpeg
<aaabbb>
i've heard the aiir filter can do it, but i have no idea how to get it to do that
kts has joined #ffmpeg
lavaball has joined #ffmpeg
upekkha has quit []
kts has quit [Ping timeout: 240 seconds]
upekkha has joined #ffmpeg
Vonter has quit [Ping timeout: 260 seconds]
Vonter has joined #ffmpeg
Vonter has quit [Ping timeout: 268 seconds]
kts has joined #ffmpeg
zombean has quit [Ping timeout: 256 seconds]
kts has quit [Ping timeout: 264 seconds]
YuGiOhJCJ has quit [Ping timeout: 260 seconds]
Suchiman has joined #ffmpeg
YuGiOhJCJ has joined #ffmpeg
foul_owl has quit [Ping timeout: 260 seconds]
foul_owl has joined #ffmpeg
zombean has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
<BtbN>
aaabbb: libalsa cannot be statically linked
<aaabbb>
oh i see
chainik1 has quit [Quit: (╯°□°)╯︵ ┻━┻]
chainik1 has joined #ffmpeg
<aaabbb>
another question if anyone knows. is there any filter like silencedetect but which mutes the channel during "silence"? something that can be used as vad (voice activity detection)
<aaabbb>
so that basically anything below say -60dB becomes -91.0dB
zombean has quit [Ping timeout: 256 seconds]
zombean has joined #ffmpeg
meklu_ is now known as meklu
Tinos has quit [Remote host closed the connection]
Tinos has joined #ffmpeg
aaabbb has quit [Remote host closed the connection]
kts has joined #ffmpeg
Tinos has quit [Remote host closed the connection]
Tinos has joined #ffmpeg
kts has quit [Quit: Konversation terminated!]
Blacker47 has joined #ffmpeg
j45 has quit [Ping timeout: 268 seconds]
j45 has joined #ffmpeg
Juest has quit [Ping timeout: 260 seconds]
e^pi-1 has quit [Quit: WeeChat 4.2.2]
foul_owl has quit [Ping timeout: 255 seconds]
aaabbb has joined #ffmpeg
jagannatharjun has quit [Quit: Connection closed for inactivity]
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
Blacker47 has joined #ffmpeg
aaabbb has quit [Quit: leaving]
manwithluck has quit [Ping timeout: 256 seconds]
Sakura`Kinomoto has quit [Read error: Connection reset by peer]
manwithluck has joined #ffmpeg
Sakura`Kinomoto has joined #ffmpeg
minimal has joined #ffmpeg
pa has quit [Quit: quit.]
<BtbN>
You're describing a noisegate, and I don't think ffmpeg has that.
<BtbN>
afftdn exists, but doesn't exactly sound like a noisegate to me
Unit640 has joined #ffmpeg
Tinos has quit [Remote host closed the connection]
<Unit640>
I'm trying to use ffmpeg to determine whether a given input image is "more or less fully black" or not, in order to never create bookmark thumbnails which tell nothing to the user. But no matter what I do, the command keeps returning 0. Here are three examples:
HarshK23 has quit [Quit: Connection closed for inactivity]
darkapex has quit [Read error: Connection reset by peer]
darkapex has joined #ffmpeg
KombuchaKip has joined #ffmpeg
jlc has joined #ffmpeg
Livio has joined #ffmpeg
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
makidoll has left #ffmpeg [Disconnected: Received SIGTERM]
makidoll has joined #ffmpeg
billchenchina has quit [Remote host closed the connection]
billchenchina has joined #ffmpeg
billchenchina has quit [Remote host closed the connection]
billchenchina has joined #ffmpeg
coldfeet has quit [Remote host closed the connection]
Livio has quit [Ping timeout: 268 seconds]
Kei_N has quit [Ping timeout: 264 seconds]
Kei_N has joined #ffmpeg
zombean has quit [Ping timeout: 246 seconds]
minimal has joined #ffmpeg
hightower4 has joined #ffmpeg
Muimi has joined #ffmpeg
hightower3 has quit [Ping timeout: 256 seconds]
Livio has joined #ffmpeg
dkh has quit [Ping timeout: 255 seconds]
coldfeet has joined #ffmpeg
<BtbN>
Sounds like a usecase for the thumbnail filter.
jagannatharjun has quit [Quit: Connection closed for inactivity]
Vonter has quit [Ping timeout: 264 seconds]
ivanich has quit [Ping timeout: 252 seconds]
ivanich has joined #ffmpeg
jemius has joined #ffmpeg
le_patenteux has joined #ffmpeg
<le_patenteux>
hello! I have been successfull in having ffmpeg render a video with alpha channel using the chromakey filter, although, I cannot make it work using vaapi
<le_patenteux>
Does anyone know if vaapi can be used with the chromakey filter?
Livio has quit [Ping timeout: 264 seconds]
<le_patenteux>
(documentation on vaapi functions is hard to come by!)
<Unit640>
BtbN: But how?
Livio has joined #ffmpeg
<JEEB>
le_patenteux: most video filters deal with "software" (normal RAM) frames, while most likely with vaapi you receive a frame that is in VRAM. you can of course utilize such filters, but you will have to first use "hwdownload" or so to make a normal RAM frame out of that hardware decoded frame. or hwupload if your source is normally decoded and you need a vaapi frame out of it
<Unit640>
I think I just found a way to do it using imagemagick (the "convert" command).
HarshK23 has joined #ffmpeg
<le_patenteux>
JEEB do you have a generic example as to how I can load from ram to vram?
<le_patenteux>
(how do I tag someone in a response?)
<JEEB>
`hwupload,format=pix_fmts=vaapi` or so?
<BtbN>
Unit640: the whole job of the thumbnail filter is to pick a meaningful thumbnail
<JEEB>
(format is a meta-filter)
<BtbN>
specifically to avoid this situation of picking a random black frame
<Unit640>
BtbN: Well, I'm glad somebody told me about that before I spent a thousand work-hours into implementing my own such feature...
<Unit640>
(And just got it working now before I came back to read you say that.)
<Unit640>
Mine basically works like this: when a bookmark in mpv is made, my system uses FFMPEG to grab the picture frame from that timestamp in the relevant video file. If it's 95% dark or more, it's considered a black frame, and then we discard it, move forward 1 second in the video and take a new image sample and check it, and so on until a suitable one is found.
<BtbN>
You could optimize that to pick +- 5 or 10 seconds around that timestamp, and feed that to the thumbnail filter
coldfeet has quit [Remote host closed the connection]
<Unit640>
So that the thumbnails in the bookmarks page never shows stupid black frames.
<BtbN>
The thumbnail filter can't operate on a whole video, cause it needs to keep the entire set it works on in RAM
<BtbN>
But for a short range, it absolutely can do that
<BtbN>
I guess you could in theory chain two thumbnail filters or three
<le_patenteux>
another question, I am able to encode using vp8/vp9 with alpha transparency with no issue... Except I can't use hardware acceleration... HEVC should also support Alpha, but I can't get ffmpeg to do it...
<le_patenteux>
this realy simple line will get me alpha transparency with vpx codec:
<le_patenteux>
but I was never able to do it with hevc
<JEEB>
the libvpx encoder wrapper just has the special handling where it creates another encoder for the alpha plane
<le_patenteux>
which means?
<JEEB>
which means that someone wrote the code that starts up not one encoder, but two
<JEEB>
since the alpha is actually a completely separate stream
<le_patenteux>
and where does it go?
<JEEB>
it's just packaged in webm as an attachment to the main packet
<le_patenteux>
and if I want to do the same with hevc?
<JEEB>
you need to have someone (or you yourself) code the required bits
<JEEB>
in HEVC it's also a case of a separate stream, but as packets with another layer id
<JEEB>
and some packet that says that btw, this another layer is actually alpha
<le_patenteux>
when you say "code the required bits", you mean it is not supported as of right now?
<JEEB>
yes, for encoding you'd need two separate encoders doing two separate streams, and for decoding you'd need to look for that other layer and start up a secondary decoder for that
<le_patenteux>
so some sorcerer made an encoder for VPx that does that?
<JEEB>
the wrapper for libvpx encoder just opens a second encoder in case of YUVA
<JEEB>
and then I guess the options are similar enough that the buffering is similar enough :P
s55 has quit [Ping timeout: 252 seconds]
<BtbN>
I have yet to figure out how to make nvenc alpha-encoding for hevc work
<BtbN>
it does support it, but it's very under-documented and arcane
<le_patenteux>
so for a simple minded person like me, I would neef to run 2 encoder in parallel and somehow remux the content in a single stream... or in 2 different output and use 1 as a mask?
<BtbN>
The libvpx wrapper does it for you
<le_patenteux>
yes, but I lose GPU acceleration
<BtbN>
For VP9?
<le_patenteux>
because I have yet to encounter a way to have GPU acceleration for VP8 or 9
<BtbN>
I don't think there is any vp9 hardware encoder, is there?
<BtbN>
hardware decoding is readily available
<le_patenteux>
encoding I mean
<BtbN>
Yes, there is no such encoder to begin with
<BtbN>
vp9 encoding is famously shit
<le_patenteux>
VAAPI is listed to have it... never saw it woring!
<le_patenteux>
working
<le_patenteux>
I have to get the kids at school, will you be there in 30 minutes? your insights are valuable!
<JEEB>
you have plenty of stuff with vaapi VLD (decoding), but not sure anything ever exposed EncSlice
<JEEB>
you can see the listing in vainfo :P
<le_patenteux>
vainfo gives me 2 VP9 references
<le_patenteux>
VAProfileVP9Profile0
<le_patenteux>
VAProfileVP9Profile2
<le_patenteux>
I need to get the kids... be back in 30 minutes
<JEEB>
yea but those are VLD I bet :P
<JEEB>
or more like, I *know*
stolen has quit [Quit: Connection closed for inactivity]
kasper93 has quit [Remote host closed the connection]
Unit640 has left #ffmpeg [Leaving]
kasper93 has joined #ffmpeg
Muimi has quit [Quit: Going offline, see ya! (www.adiirc.com)]
averne has quit [Remote host closed the connection]
averne has joined #ffmpeg
s55 has joined #ffmpeg
darkapex has quit [Remote host closed the connection]
darkapex has joined #ffmpeg
AbleBacon has joined #ffmpeg
talismanick has joined #ffmpeg
<le_patenteux>
ooooh yes, i understand now
<le_patenteux>
VLD is read and SLice is encode
s55 has quit [Ping timeout: 268 seconds]
<le_patenteux>
you said "have yet to figure out how to make nvenc alpha-encoding for hevc work" and that is exactly were we are at!
<le_patenteux>
Since VPx cannot be hardware accelerated, I need an output format capable of encoding via GPU and carry Alpha information
<le_patenteux>
ffmpeg chromakey is seriously good... I can't believe we can't do anything at a decent speed with it!
q66 has quit [Ping timeout: 255 seconds]
s55 has joined #ffmpeg
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
Livio has quit [Ping timeout: 240 seconds]
lexano has joined #ffmpeg
s55 has quit [Ping timeout: 260 seconds]
jemius has quit [Quit: Leaving]
s55 has joined #ffmpeg
q66 has joined #ffmpeg
lucasta has quit [Quit: Leaving]
ivanich has quit [Remote host closed the connection]
s55 has quit [Ping timeout: 268 seconds]
<BtbN>
well, if you figure it out or have docs, let me know :D
<BtbN>
The main issue with it is the ultra weird format nvenc accept alpha yuv data
<BtbN>
it ONLY accepts it as NV12
<BtbN>
By giving it a second, fully independent NV12 buffer, which has the chroma planes all memset to 0x80
<BtbN>
That's not something anything in ffmpeg provides
<le_patenteux>
I understood 10% of what you said... But in short, HEVC is a b%tch for alpha... got ya! :D
<le_patenteux>
I will revert to plan... what are we at now, plan w? use nay output format my GPU is capable of accelerating, but replace the background with a pure green color so that keying will be super easy after
<le_patenteux>
so now... I can't wrap my head around how the hell to do that since you guys told me that the chromakey filter is only cpu based
lavaball has quit [Remote host closed the connection]
<BtbN>
This is nvenc
<le_patenteux>
nvenc or vaapi... same battle
<le_patenteux>
different driver
<le_patenteux>
my goal is this: source is hevc mp4, filmed in front of a green screen.. Output, idealy would have been webm with alpha, but I can take whatever is accelerated and replace the background with a pure green color to key it out easy
<BtbN>
Why would it be the same battle? It's a completely different API
<BtbN>
vaapi has no support for an alpha layer in hevc whatsoever I think
<le_patenteux>
are you telling me nvenc does?
<le_patenteux>
jEEB said it did not
<le_patenteux>
(or at least, that is what I understood)