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
lusciouslover has quit [Ping timeout: 276 seconds]
sugoi has joined #ffmpeg
sugoi1 has joined #ffmpeg
sugoi has quit [Ping timeout: 248 seconds]
sugoi1 is now known as sugoi
Juest has quit [Ping timeout: 248 seconds]
Juest has joined #ffmpeg
acovrig6012 has joined #ffmpeg
acovrig6012 has quit [Client Quit]
MisterMinister has quit [Ping timeout: 255 seconds]
zsoltiv_ has quit [Ping timeout: 246 seconds]
acovrig6012 has joined #ffmpeg
sugoi has quit [Ping timeout: 248 seconds]
rv1sr has joined #ffmpeg
kasper93 has quit [Ping timeout: 244 seconds]
sugoi has joined #ffmpeg
sugoi has quit [Ping timeout: 252 seconds]
gronk has quit [K-Lined]
FH_thecat has quit [Quit: Leaving]
FH_thecat has joined #ffmpeg
Vonter has quit [Read error: Connection reset by peer]
Vonter has joined #ffmpeg
celmor has quit [Quit: Client closed]
lavaball has joined #ffmpeg
Vonter has quit [Ping timeout: 272 seconds]
Vonter has joined #ffmpeg
lavaball has quit [Quit: lavaball]
Vonter has quit [Quit: WeeChat 4.4.2]
nd has quit [Ping timeout: 260 seconds]
nd has joined #ffmpeg
sugoi has joined #ffmpeg
coldfeet has joined #ffmpeg
sugoi has quit [Ping timeout: 265 seconds]
HerbY_NL has joined #ffmpeg
Vonter has joined #ffmpeg
Nact has quit [Quit: Konversation terminated!]
<snoriman>
when I want to use libavformat only to demux but also want to get meta info like the video width/height do I need to also allocate a avcodec context? (I think I must do that, but if it's not necessary I don't want to waste resources)
<JEEB>
avformat only has avcodec parameters, which is not an avctx
<snoriman>
Ok thanks, then I'll instantiate a codec context too
kasper93 has joined #ffmpeg
<ppw>
hi JEEB. does running ffprobe -show_entries stream_tags:format_tags on a video cover all the metadata tags?
<JEEB>
snoriman: I meant you have a codecpar provided for the container info :P
<JEEB>
so if that has enough information, then you don't have to instantiate codec context
lavaball has joined #ffmpeg
<snoriman>
ah I see, thanks. Then I indeed, don't need to create the codec context
<JEEB>
for some formats there might not be that info so in those cases you either consider them unsupported or in that case attempt to decode until you get the first decoded frame :)
<snoriman>
for this use case I'm only handling mp4
lavaball has quit [Remote host closed the connection]
<snoriman>
ah.. and h264, which makes me wonder: does the format context parses the video-configuration box? (AVCC if I'm correct)
<JEEB>
yea it parses the basic things from it, it doesn't parse the decoder init bytes
<snoriman>
Ok awesome, thansk!
xx has joined #ffmpeg
auri_ has quit []
auri has joined #ffmpeg
<snoriman>
JEEB: if I want access the SPS/PPS, do I need to use the AVCodecContext.extradata? or can I access this from a AVFormatContext too?
<snoriman>
oh sorry, it seems the AVCodecParameters of the AVStream holds those too
<snoriman>
Is the AVStream.codecpar.extradata is the raw AVCDecoderConfigurationRecord? I can parse this myself, but is there a better way to get the sps/pps?
HerbY_NL_ has joined #ffmpeg
HerbY_NL has quit [Ping timeout: 276 seconds]
YuGiOhJCJ has joined #ffmpeg
lullerhaus has quit [Ping timeout: 246 seconds]
fling has joined #ffmpeg
fling has quit [Ping timeout: 260 seconds]
HerbY_NL_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ewomer has joined #ffmpeg
HerbY_NL has joined #ffmpeg
Sketch has quit [Ping timeout: 260 seconds]
Blacker47 has joined #ffmpeg
HerbY_NL has quit [Ping timeout: 260 seconds]
rex has quit [Read error: Connection reset by peer]
rex has joined #ffmpeg
Traneptora has quit [Quit: Quit]
Sketch has joined #ffmpeg
rsx has joined #ffmpeg
arbitercoin has joined #ffmpeg
tyzoid has quit [Ping timeout: 255 seconds]
<kmikita>
I have issue with native mpeg4 encoder when using b-frames "-c: mpeg4 -bf 1". On hardware dvd-player playback picture has two blinking horizontal lines of blocks at 1/3 and 2/3 screen. Can I fix compatibility by ffmpeg flags?
<kmikita>
with libxvid no problems
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
minimal has joined #ffmpeg
relue has quit [Ping timeout: 246 seconds]
relue has joined #ffmpeg
ewomer has quit [Read error: Connection reset by peer]
fling has joined #ffmpeg
ewomer has joined #ffmpeg
lusciouslover has joined #ffmpeg
lusciouslover has quit [Ping timeout: 276 seconds]
billchenchina- has joined #ffmpeg
rvalue has quit [Read error: Connection reset by peer]
Corroddity has quit [Remote host closed the connection]
Corroddity has joined #ffmpeg
fling has quit [Remote host closed the connection]
sugoi has joined #ffmpeg
sugoi has quit [Ping timeout: 248 seconds]
Unit640 has joined #ffmpeg
lavaball has joined #ffmpeg
coldfeet has quit [Remote host closed the connection]
Kadigan has joined #ffmpeg
<Kadigan>
Hey all. I'm having a really bad Google day. How the hell do I tell ffmpeg to output a JPEG file, without the file having a JPEG extension?
<Kadigan>
Everybody says "just output it to blah.jpg and it'll know", but that's the thing - I'm using tmp files, so all I have is a nsf7eogeiihifes8hfi
<Kadigan>
I thought -f jpg or something might work, but I was obviously wrong.
<JEEB>
see `ffmpeg -muxers |grep jpeg`
<Kadigan>
Okay... which one does it use when saving a .jpg file? :D
<JEEB>
hint: it's the mjpeg one since FFmpeg supports jpeg due to motion jpeg (which is just a bunch of jpegs one after another)
<Kadigan>
Ah, so the one I instantly eliminated (since I know it's a VIDEO format... heh), is the one to use.
<JEEB>
"jpg" ends up at the meta-format image2 :P
wodim has joined #ffmpeg
<JEEB>
these can be checked with `ffmpeg -h muxer=MUXER_NAME`
<JEEB>
that lists the extensions registered for that specific muxer
lucasta has joined #ffmpeg
<wodim>
can I use ffprobe to tell whether an input file is a video or an image? I am using `ffprobe -v quiet -show_format -show_streams -print_format json` and I see nothing in the output that indicates what I need
<JEEB>
there is no such differentiation within FFmpeg. for example JPEG and PNG readers can just take on a bunch of piped one after another images of that format
<JEEB>
the closest to that is the disposition utilized for stuff like album art
<wodim>
any other alternatives? maybe libmagic?
<JEEB>
do you actually care whether it is a single image, or just that it is for example (at least) one PNG or JPEG file?
<wodim>
I am using ffprobe to obtain the dimensions and duration of a file, but ffmpeg will happily generate those for a still image or a gif. I need to be able to tell whether what I passed to ffmpeg is an actual video or not
<wodim>
ffprobe*
<ppw>
exiftool
<JEEB>
wodim: would in your case `cat 1.jpg 2.jpg > 3.jpg` be a true or falsie?
<JEEB>
since in that case it is indeed JPEG, just two of them one after another and FFmpeg will happily read both. but format-wise it is the same as single one
<wodim>
concatenating two jpeg files does not a video make
<JEEB>
alright, so you just care about the format
<JEEB>
cool
<JEEB>
then you can just look for the format
<JEEB>
and with something like image2(pipe) getting picked, you look at the codec
<wodim>
that would require a whitelist/blacklist approach
<wodim>
which I don't like
<wodim>
because you can't catch 'em all
<JEEB>
yup, you would have like three for jpeg, two for png or so
<JEEB>
since for FFmpeg all those things are just Yet Another Media Input
<wodim>
and when someone passes a gif I need to update the program
<wodim>
and then a webp, and then...
<JEEB>
it doesn't differentiate whether technically it is an image format originally or not, esp. since people utilized concatenated JPEG for "video" over HTTP
<JEEB>
which is why the JPEG format is called "mjpeg" in FFmpeg
<JEEB>
"motion jpeg"
<JEEB>
which is just a.jpg and b.jpg put one after another
<wodim>
that does not seem relevant in a practical sense
<JEEB>
I'm just basically explaining why FFmpeg doesn't differentiate between "image" or "video", since everything can be in theory a video input for it
<wodim>
I understand, thank you
<JEEB>
and since the readers are capable of reaidng multiple things after another, if you pass it concatenated a.jpg and b.jpg, you will indeed get two frames
<JEEB>
(at the default 25fps )
<JEEB>
np
<JEEB>
this has caused various "fun" things in API clients
<wodim>
I will use libmagic then
<JEEB>
such as mpv
<wodim>
yes, it's indeed giving me trouble, which is why I want to fix it
<JEEB>
wodim: would that allow you to get a generic type?
<JEEB>
or wouldn't that also end up as a format matching thing
<wodim>
it doesn't try to be as clever
<wodim>
if the mimetype begins with "video/" and ffprobe can parse it, it's extremely likely to be a valid video
realies has joined #ffmpeg
<BtbN>
well, is a singular jpeg file not a valid video, in some sense?
HerbY_NL has joined #ffmpeg
<Kadigan>
It does. I just thought that MJPEG was in some way different from regular JPEG.
<Kadigan>
Thank you for the help, it all works now. I now have a small script to convert a video + make a still frame and compress it, to put alongside.
lusciouslover has joined #ffmpeg
<Unit640>
Kadigan: Not sure if you found a way to do it, but I remember also being in that situation and I believe I just auto-renamed the temp files temporarily into .jpg.
relue has quit [Ping timeout: 248 seconds]
relue has joined #ffmpeg
fling has joined #ffmpeg
fling_ has joined #ffmpeg
fling has quit [Ping timeout: 260 seconds]
minimal has quit [Quit: Leaving]
sugoi has joined #ffmpeg
fling_ has quit [Ping timeout: 260 seconds]
fling has joined #ffmpeg
HerbY_NL has quit [Ping timeout: 248 seconds]
billchenchina- has quit [Remote host closed the connection]
fling_ has joined #ffmpeg
fling has quit [Ping timeout: 260 seconds]
rsx has quit [Quit: rsx]
fling_ is now known as fling
MisterMinister has joined #ffmpeg
fling has quit [Ping timeout: 260 seconds]
Rena has quit [Quit: $WITTY_QUIT_MESSAGE]
Sketch has quit [Ping timeout: 246 seconds]
Rena has joined #ffmpeg
sugoi has quit [Quit: sugoi]
lucasta has quit [Quit: Leaving]
fling has joined #ffmpeg
Sketch has joined #ffmpeg
coldfeet has joined #ffmpeg
HerbY_NL has joined #ffmpeg
fling has quit [Ping timeout: 260 seconds]
fling_ has joined #ffmpeg
Sketch has quit [Read error: Connection reset by peer]
fling_ is now known as fling
bitblit has joined #ffmpeg
Sciencentistguy has quit [Quit: o/]
Sketch has joined #ffmpeg
Sciencentistguy has joined #ffmpeg
microlappy has joined #ffmpeg
HerbY_NL has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
microlappy has quit [Remote host closed the connection]
emmanuelux has joined #ffmpeg
probie_ has joined #ffmpeg
noelle_ has joined #ffmpeg
jmcantrell_ has joined #ffmpeg
ursa-major_ has joined #ffmpeg
RetroPunk_ has joined #ffmpeg
nyaomin has joined #ffmpeg
adema- has joined #ffmpeg
robobub_ has joined #ffmpeg
fristed` has joined #ffmpeg
Hobbyboy|BNC has joined #ffmpeg
Traneptora has quit [Quit: Quit]
robobub has quit [*.net *.split]
noelle has quit [*.net *.split]
probie has quit [*.net *.split]
samhza has quit [*.net *.split]
jmcantrell has quit [*.net *.split]
ursa-major has quit [*.net *.split]
RetroPunk has quit [*.net *.split]
meklu has quit [*.net *.split]
Hobbyboy has quit [*.net *.split]
dza has quit [*.net *.split]
DarkG_ has quit [*.net *.split]
NoImNotNineVolt has quit [*.net *.split]
nyaomi has quit [*.net *.split]
CoreX has quit [*.net *.split]
jess has quit [*.net *.split]
adema has quit [*.net *.split]
tykling has quit [*.net *.split]
fristed has quit [*.net *.split]
Hobbyboy|BNC is now known as Hobbyboy
noelle_ is now known as noelle
jmcantrell_ is now known as jmcantrell
fristed` is now known as fristed
RetroPunk_ is now known as RetroPunk
robobub_ is now known as robobub
probie_ is now known as probie
ursa-major_ is now known as ursa-major
tykling has joined #ffmpeg
dza has joined #ffmpeg
NoImNotNineVolt has joined #ffmpeg
meklu has joined #ffmpeg
DarkG_ has joined #ffmpeg
CoreX has joined #ffmpeg
jess has joined #ffmpeg
tykling has quit [Max SendQ exceeded]
HerbY_NL has joined #ffmpeg
martylake has quit [Remote host closed the connection]
HerbY_NL has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
martylake has joined #ffmpeg
gioyik has joined #ffmpeg
microlappy has joined #ffmpeg
minimal has joined #ffmpeg
Juesto has joined #ffmpeg
Juest has quit [Ping timeout: 252 seconds]
Juesto is now known as Juest
fling has quit [Ping timeout: 260 seconds]
microlappy has quit [Remote host closed the connection]
cmc has quit [Remote host closed the connection]
cmc has joined #ffmpeg
fling has joined #ffmpeg
Kadigan has quit [Ping timeout: 252 seconds]
Kadigan has joined #ffmpeg
duskmoss has joined #ffmpeg
<duskmoss>
I'm curious what distros y'all find ffmpeg is packaged best+most feature complete in?
five6184803391 has quit [Remote host closed the connection]
five6184803391 has joined #ffmpeg
HerbY_NL has joined #ffmpeg
HerbY_NL has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ewomer has quit [Ping timeout: 252 seconds]
ewomer has joined #ffmpeg
martylake has quit [Remote host closed the connection]
martylake has joined #ffmpeg
ewomer has quit [Read error: Connection reset by peer]
<Unit640>
duskmoss: How could it possibly vary?
<duskmoss>
the build configs for ffmpeg are pretty different between distros
<furq>
they're usually pretty similar
<furq>
there's just a few distros that are extremely paranoid about shipping anything patented
ewomer has joined #ffmpeg
<duskmoss>
my experiences that hasn't been the case for hardware transcoding, but maybe I've just hit all the weird ones
fling has quit [Ping timeout: 260 seconds]
<Kadigan>
Unit640: I just went with `-f mjpeg` and it did the trick.
coldfeet has quit [Quit: leaving]
arbitercoin has quit [Ping timeout: 255 seconds]
Blacker47 has quit [Quit: Life is short. Get a V.90 modem fast!]
Traneptora has joined #ffmpeg
lavaball has quit [Quit: lavaball]
EmleyMoor has quit [Ping timeout: 260 seconds]
Kadigan_ has joined #ffmpeg
EmleyMoor has joined #ffmpeg
Kadigan has quit [Ping timeout: 264 seconds]
EmleyMoor has quit [Ping timeout: 252 seconds]
EmleyMoor has joined #ffmpeg
realies has quit [Read error: Connection reset by peer]
realies has joined #ffmpeg
Dagger has quit [Ping timeout: 260 seconds]
Dagger has joined #ffmpeg
iive has joined #ffmpeg
<snoriman>
I'm experimenting with CUDA/GL interop and got a proof of concept working. I'm using AVFormatContext to demux a mp4 file and passig the packets into my CUVID implementation (proof-of-concept that I created to experiment with interop). I'm only running into an issue where CUVID renders "garbage" until it receives the second IDR. The first IDR is received in from the first call to `av_read_frame()`
<snoriman>
though, the data starts with a SEI. Does someone has an idea why CUVID can't handle this?
realies6 has joined #ffmpeg
realies has quit [Read error: Connection reset by peer]
realies6 is now known as realies
YuGiOhJCJ has joined #ffmpeg
<snoriman>
Ok, so it seems that the `CUvideoparser` indeed has issues to parse the first packet which contains multiple nals. Is there a way use AVFormatContext to demux an mp4 with h264 and give me each nal instead?
Kadigan_ has left #ffmpeg [Bye.]
vincejv has quit [Ping timeout: 276 seconds]
rv1sr has quit []
<Lynne>
probably it expects annex-b, but you only get annex-b in .ts/rtp streams
<Lynne>
use the h264_mp4toannexb bsf to convert it
<Lynne>
you'll need to use the bsf api from libavcodec, lavf can't do it automatically
<Lynne>
why are you NIHing your own decoder too, though?
vincejv has joined #ffmpeg
Warcop has quit [Ping timeout: 264 seconds]
ewomer has quit [Ping timeout: 252 seconds]
Warcop has joined #ffmpeg
gioyik has quit [Quit: WeeChat 4.4.2]
ppw has quit [Ping timeout: 260 seconds]
EmleyMoor has quit [Ping timeout: 252 seconds]
ewomer has joined #ffmpeg
SuicideShow has quit [Ping timeout: 260 seconds]
SuicideShow has joined #ffmpeg
theobjectivedad has quit [Ping timeout: 260 seconds]
five6184803391 has quit [Remote host closed the connection]