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
EmleyMoor has quit [Ping timeout: 252 seconds]
wziko has joined #ffmpeg
wziko has quit [Max SendQ exceeded]
hx030 has quit [Ping timeout: 252 seconds]
EmleyMoor has joined #ffmpeg
Marth64 has quit [Quit: Leaving]
Marth64 has joined #ffmpeg
Peetz0r has joined #ffmpeg
blb has quit [Ping timeout: 248 seconds]
blb has joined #ffmpeg
HarshK23 has quit [Quit: Connection closed for inactivity]
chandash has quit [Quit: WeeChat 4.4.2]
xx has quit [Ping timeout: 264 seconds]
Ohtani has quit [Ping timeout: 245 seconds]
minimal has quit [Quit: Leaving]
\\Mr_C\\ has quit [Remote host closed the connection]
KombuchaKip has quit [Quit: Leaving.]
System_Error has quit [Remote host closed the connection]
KombuchaKip has joined #ffmpeg
System_Error has joined #ffmpeg
mrelcee has quit [Quit: I want Waffles!]
mrelcee has joined #ffmpeg
Traneptora has joined #ffmpeg
rex has quit [Ping timeout: 265 seconds]
Dagger has quit [Ping timeout: 265 seconds]
Dagger has joined #ffmpeg
rex has joined #ffmpeg
rv1sr has quit []
rv1sr has joined #ffmpeg
mrelcee has quit [Quit: I want Waffles!]
mrelcee has joined #ffmpeg
stolen has joined #ffmpeg
Vonter has joined #ffmpeg
makidoll has quit [Remote host closed the connection]
makidoll has joined #ffmpeg
Suchiman has quit [Quit: Connection closed for inactivity]
StephenLynx has quit [Quit: Leaving]
evilscreww has joined #ffmpeg
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
evilscreww has quit [Ping timeout: 250 seconds]
MisterMinister has quit [Ping timeout: 244 seconds]
realies has joined #ffmpeg
wziko has joined #ffmpeg
wziko has quit [Ping timeout: 248 seconds]
Tano has quit [Quit: WeeChat 4.4.2]
vlt has quit [Ping timeout: 245 seconds]
wziko has joined #ffmpeg
HarshK23 has joined #ffmpeg
wziko has quit [Ping timeout: 246 seconds]
System_Error has quit [Remote host closed the connection]
vlt has joined #ffmpeg
System_Error has joined #ffmpeg
vlt has quit [Ping timeout: 264 seconds]
Tano has joined #ffmpeg
wziko has joined #ffmpeg
wziko has quit [Ping timeout: 244 seconds]
jab416171 has quit [Ping timeout: 276 seconds]
vlt has joined #ffmpeg
jab416171 has joined #ffmpeg
dreamon has joined #ffmpeg
dreamon has quit [Quit: Leaving]
lavaball has joined #ffmpeg
noobaroo has quit [Quit: noobaroo]
Suchiman has joined #ffmpeg
MRiddickW has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
xx has joined #ffmpeg
EmleyMoor has quit [Ping timeout: 252 seconds]
EmleyMoor has joined #ffmpeg
j45 has quit [Ping timeout: 260 seconds]
j45 has joined #ffmpeg
Sketch has quit [Remote host closed the connection]
Sketch has joined #ffmpeg
chiselfuse has quit [Ping timeout: 264 seconds]
chiselfuse has joined #ffmpeg
dallemon2 has joined #ffmpeg
dallemon has quit [Read error: Connection reset by peer]
dallemon2 is now known as dallemon
TheSashmo has quit [Read error: Connection reset by peer]
TheSashmo has joined #ffmpeg
Blacker47 has joined #ffmpeg
wondiws has quit [Ping timeout: 276 seconds]
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
cmc has quit [Ping timeout: 264 seconds]
stonerl has quit [Remote host closed the connection]
stonerl has joined #ffmpeg
stolen has quit [Quit: Connection closed for inactivity]
wziko has joined #ffmpeg
wziko has quit [Max SendQ exceeded]
<nasso>
soreau: you have to specify an absolute value, filters don't have any information about the duration of their input so they can't understand negative values
ttys000_ has quit [Ping timeout: 245 seconds]
ttys000 has joined #ffmpeg
militantorc has joined #ffmpeg
evilscreww has joined #ffmpeg
Hackerpcs has quit [Quit: Hackerpcs]
Hackerpcs has joined #ffmpeg
Hackerpcs has quit [Max SendQ exceeded]
Hackerpcs has joined #ffmpeg
evilscreww has quit [Quit: Leaving]
sihloo has quit [Ping timeout: 248 seconds]
minimal has joined #ffmpeg
wziko has joined #ffmpeg
wziko has quit [Max SendQ exceeded]
sihloo has joined #ffmpeg
crossby1004 has joined #ffmpeg
minimal has quit [Quit: Leaving]
billchenchina has joined #ffmpeg
sihloo has quit [Ping timeout: 246 seconds]
billchenchina has quit [Client Quit]
billchenchina has joined #ffmpeg
realies has quit [Quit: Ping timeout (120 seconds)]
realies has joined #ffmpeg
drew has joined #ffmpeg
<drew>
I have a vp9 webm with webvtt subtitles, but the subtitles are not set to default or forced. How would could I just copy all the streams but set those properties of the (only) subtitle stream?
<JEEB>
the stream level flags are called dispositions
<JEEB>
you can set them per-stream as expected with the whole -OPTION:{v,s,a,d} etc just like -c etc
<kepstin>
drew: if you want to adjust properties of a stream in an existing mkv/webm file, consider also using specialized tools like mkvpropedit
<JEEB>
for example we have a FATE test that sets the hearing impaired flag for dispositions of all video streams with `-disposition:v +hearing_impaired`
<kepstin>
a command similar to "mkvpropedit --edit track:s1 --set flag-default=1 --set flag-forced=1 file.webm" should do what you want.
<drew>
so I did `ffmpeg -i in.webm -c copy -disposition:s:0 default+forced out.webm` and that looks okay, but have I messed up anything in doing this? It didn't seem to re-encode anything
<kepstin>
if you use "-c copy" you're explicitly telling it not to re-encode anything
<JEEB>
since you don't have a specifier
<JEEB>
drew: also since you don't have a + in the beginning it will override whatever dispositions it read from input
<JEEB>
since it is just a set of flags just `default+forced` is setting those, while `+default+forced` adds
<JEEB>
overriding the input flags may be what you want, but just making sure you understand what it does :)
TheSashmo has quit [Read error: Connection reset by peer]
<drew>
right, that is an important distinction
<drew>
I am sure I want whatever other metadata is there, so I will do +default+forced
TheSashmo has joined #ffmpeg
StephenLynx has joined #ffmpeg
<drew>
I tried with +default and +forced and +default+forced and it looks like they all do the same thing. I thought I remembered mpv showing "[forced]" when there is a forced subtitle, but I am not seeing that
<drew>
but with all three options, the video starts with the subtitles on
<drew>
I would think that forced would have them on when I start the video and default would not
<JEEB>
default I think was regarding general selection and forced is usually meant that "shown even if not selected". hopefully by now matroska specifies this stuff better since it got made into a spec by CELLAR
<JEEB>
from where "forced" flags have come, generally it were some specific subpictures which had a special flag to force showing them no matter what
<JEEB>
(DVD/blu-ray)
<soreau>
nasso: I see, thanks
<kepstin>
iirc "default" means "show this subtitle track if there's no audio track that matches the user's language preference", and "forced" means "shows this subtitle track even when there's an audio track that matches the user's language preference"
<kepstin>
"forced" subtitles are generally used for things like translations of on-screen text alongside a translated/dubbed audio track.
<JEEB>
yea, like in DVD or blu-ray there's specific subpictures which are flagged like that
<JEEB>
and IIRC in those cases they are supposed to be always shown
<JEEB>
but in any case, if there's a proper definition in the spec that's better
MisterMinister has joined #ffmpeg
<JEEB>
an example for forced subpics are things such as lines spoken in another language, such as French things in an otherwise English language movie (then subictures having italics or whatever)
<kepstin>
if there's only one subtitle track in an mkv file, and both the default and forced flags are set on it, then i think that means that the subtitle track will always be shown regardless of the user's language preference (unless they manually turn it off using player controls, of course)
<kepstin>
if their language doesn't match, default means it'll be shown, if their language does match, forced means it'll be shown.
<JEEB>
yay, they actually have some of this stuff in the spec
Muimi has joined #ffmpeg
rv1sr has quit [Ping timeout: 265 seconds]
Muimi has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Muimi has joined #ffmpeg
wyatt8740 has quit [Ping timeout: 248 seconds]
wyatt8740 has joined #ffmpeg
soreau has left #ffmpeg [Leaving]
lavaball has joined #ffmpeg
Marth64 has quit [Quit: Leaving]
rex has quit [Ping timeout: 248 seconds]
parakovsky has quit [Quit: down]
parakovsky has joined #ffmpeg
Marth64 has joined #ffmpeg
billchenchina has quit [Quit: Leaving]
wziko has joined #ffmpeg
wziko has quit [Max SendQ exceeded]
minimal has joined #ffmpeg
rv1sr has joined #ffmpeg
wziko has joined #ffmpeg
crossby1004 has quit [Ping timeout: 276 seconds]
stonerl has quit [Remote host closed the connection]
stonerl has joined #ffmpeg
parakovsky has quit [Quit: down]
parakovsky has joined #ffmpeg
stonerl has quit [Remote host closed the connection]
stonerl has joined #ffmpeg
rex has joined #ffmpeg
makidoll has quit [Remote host closed the connection]
makidoll has joined #ffmpeg
parakovsky has quit [Quit: down]
parakovsky has joined #ffmpeg
coldfeet has joined #ffmpeg
darkapex has quit [Ping timeout: 246 seconds]
Vonter has quit [Ping timeout: 244 seconds]
coldfeet has quit [Quit: Lost terminal]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
JanC has quit [Read error: Connection reset by peer]
System_Error has joined #ffmpeg
JanC has joined #ffmpeg
Muimi has quit [Quit: Going offline, see ya! (www.adiirc.com)]
darkapex has joined #ffmpeg
TheSashmo has quit [Read error: Connection reset by peer]
MisterMinister has quit [Ping timeout: 252 seconds]
TheSashmo has joined #ffmpeg
Vonter has joined #ffmpeg
EmleyMoor has quit [Ping timeout: 252 seconds]
EmleyMoor has joined #ffmpeg
Traneptora has quit [Quit: Quit]
Juest has quit [Ping timeout: 252 seconds]
lolok has quit [Quit: lolok]
lolok has joined #ffmpeg
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
jemius has joined #ffmpeg
MisterMinister has joined #ffmpeg
daily has joined #ffmpeg
daily has left #ffmpeg [Leaving]
KombuchaKip has quit [Quit: Leaving.]
daily has joined #ffmpeg
<JEEB>
daily: anyways, currently I guesstimate that if you don't manually set the pix_fmt, ffmpeg will query the list of supported pixel formats from the output encoder, and pick some of them. depending on what you want your application to do, that is not how you want it to behave
<daily>
well, basically, i will give the option to set the pixel format on my command line interface as well, but if it's not specified i'd like to provide a reasonable default
<JEEB>
like, if you are making an application that focuses for some use case(s), you may already know what encoders and pixel formats you want to set. alternatively you actually look at what came from decoding and/or filtering and attempt to see if that pixel format can be encoded
<JEEB>
yeh, you can see avcodec_get_supported_config being called in the transcode example for example, and it is also called in the ffmpeg cli in quite a few places
KombuchaKip has joined #ffmpeg
<JEEB>
with AV_CODEC_CONFIG_PIX_FORMAT that gives the list of supported formats from that side if you want that
cmc has joined #ffmpeg
<daily>
i suppose if i want "the default for this format", i should go for the first entry?
<JEEB>
that's the fun bit, there is no default per se
<JEEB>
that's the list of all pixel formats that the encoder supports
<daily>
what does the ffmpeg cli choose?
TheSashmo has quit [Read error: Connection reset by peer]
TheSashmo has joined #ffmpeg
daily has quit [Ping timeout: 248 seconds]
daily has joined #ffmpeg
<JEEB>
daily: if you `git grep -C5 "\->pix_fmt" -- fftools/` you can see that it does utilize the input decoder values, then it also can default the encoder pix_fmt to the first frame that was received from the filter chain and of course it has the per stream option matching which leads to such logic that I previously described
realies has quit [Ping timeout: 244 seconds]
<daily>
JEEB: perhaps I should explain, my program works with RGB and would prefer RGB, but most video files only do YUV, so i wanted to let it pick a YUV and use swscale, but perhaps i could also try RGB
<JEEB>
I think at that point things such as use cases become relevant. is your application such that it prefers keeping original format to possibly plastic box compatibility?
nasso has quit [Remote host closed the connection]
makidoll9 has joined #ffmpeg
Marth64 has quit [Quit: Leaving]
makidoll has quit [Remote host closed the connection]
makidoll9 is now known as makidoll
<daily>
JEEB: well I understand that this conversion is lossy, isn't that correct?