[Ffmpeg-devel-irc] ffmpeg.log.20180702
burek
burek021 at gmail.com
Tue Jul 3 03:05:01 EEST 2018
[06:56:13 CEST] <acos> So I settled on lossles h264 as capture format for these VHS tapes. Only took me 70 tries to settle on a good command.
[06:56:49 CEST] <TheAMM> What was the focus of the trial and erroring?
[06:56:57 CEST] <acos> Kept getting errors
[06:57:10 CEST] <acos> Noob to ffmpeg but ya
[06:57:19 CEST] <TheAMM> What sort of capture device do you have?
[06:57:28 CEST] <acos> So many flags on this. Still cant figure out how to fix the sync issue
[06:57:41 CEST] <acos> Will have to process it after the fact. It's a USB capture device.
[06:57:42 CEST] <TheAMM> No that I'm trying to solve your issues posthumously, but I'm interested in capture devices
[06:57:48 CEST] <TheAMM> Not*
[06:57:52 CEST] <acos> Aw :(
[06:58:15 CEST] <TheAMM> I record some of my PS4 gameplay using v4l2 and alsa
[06:58:23 CEST] <acos> Cool
[06:58:33 CEST] <TheAMM> I've simply accepted that I have to go manually sync the a/v after I've finished
[06:59:16 CEST] <acos> Ya it's just as a fshow device it won't let me use itsoffset command
[06:59:18 CEST] <TheAMM> (which is kind of a bother because there are no nice hints on the PS4 menu, all transitions are fades and such)
[07:00:05 CEST] <TheAMM> There's setpts and setapts, and adelay
[07:00:26 CEST] <acos> Hmm wonder how to use that
[07:04:28 CEST] <TheAMM> You can rewrite the timestamps with setpts and setapts, but I'm no expert on them
[12:36:26 CEST] <King_DuckZ> hi, I have this function: https://paste.debian.net/1031661/ and I don't seem to be ever entering the loop - I think it's normal since my test video is 10 identical frames
[12:37:12 CEST] <King_DuckZ> but then my output is a file the whose size is 242 bytes and has no streams, am I missing something in there or is the problem coming from somewhere else?
[12:37:23 CEST] <BtbN> What kind of language even is that? oO
[12:38:04 CEST] <King_DuckZ> BtbN: it's c++
[12:38:16 CEST] <BtbN> C++ doesn't have a "not" keyword.
[12:38:48 CEST] <furq> #define not !
[12:39:01 CEST] <King_DuckZ> it does if you include ciso646, or even if you don't, in gcc
[12:39:03 CEST] <BtbN> And you will need a better logic to check the receive_packet result than that in either case
[12:39:47 CEST] <campones> hello, i m currently trying to compile on ubuntu 16, fresh install and I get this
[12:39:48 CEST] <campones> https://i.gyazo.com/3bb385e635f07dd10dbb4be525642523.png
[12:39:51 CEST] <BtbN> At the very least to Tell EAGAIN from actual error
[12:40:15 CEST] <campones> here is my config : ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfdk_aac --enable-libvorbis --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libvpx --enable-libvorbis --enable-libopus --enable-librtmp --enable-libass --enable-libfreetype --extra-libs=-ldl --enable-openssl
[12:41:06 CEST] <campones> what is broken here, any ideas? thanks
[12:42:03 CEST] <BtbN> An image of plain text... great
[12:42:48 CEST] <King_DuckZ> BtbN: so something like while (not r and r != EAGAIN) {}, with r being avcodec_receive_packet's return value?
[12:43:19 CEST] <BtbN> That logic would always be true.
[12:43:23 CEST] <campones> would it change anything if it was a pastebin?
[12:43:56 CEST] <BtbN> There's an example of the intended workflow in the docs of one of the two functions
[12:44:59 CEST] <King_DuckZ> BtbN: the examples are full with deprecated stuff, as a ffmpeg noob they just confused a lot
[12:45:24 CEST] <campones> https://pastebin.com/EeDeJTVg
[12:45:29 CEST] <BtbN> What? No they are not. Random stuff you find in years old blogposts is
[12:49:14 CEST] <King_DuckZ> BtbN: https://www.ffmpeg.org/doxygen/4.0/encode__audio_8c_source.html#l00095 is that a good example?
[12:50:05 CEST] <King_DuckZ> I don't need to call unref tho... or do I?
[12:50:41 CEST] <BtbN> https://www.ffmpeg.org/doxygen/trunk/group__lavc__decoding.html#ga9395cb802a5febf1f00df31497779169 describes the basic workflow
[12:52:38 CEST] <campones> http://www.ffmpeg.org/doxygen/trunk/tests_2mpeg12framerate_8c.html
[12:52:48 CEST] <campones> from yesterday.. and now I m failing to compile..
[12:52:50 CEST] <campones> could be related?
[12:54:39 CEST] <King_DuckZ> BtbN: AVERROR(EAGAIN): user must read output with avcodec_receive_packet() (once all output is read, the packet should be resent)
[12:55:00 CEST] <King_DuckZ> but the code I linked just doesn't seem to care about that, so which one should I believe?
[12:55:07 CEST] <King_DuckZ> that's why I said I find it confusing
[15:27:37 CEST] <King_DuckZ> I'm still very confused about that process
[15:28:05 CEST] <King_DuckZ> BtbN: is it wrong to use avcodec_send_frame() and av_interleaved_write_frame() together?
[15:28:18 CEST] <JEEB> the latter is AVPackets, right?
[15:28:24 CEST] <BtbN> Aren't they from completely different libs?
[15:28:26 CEST] <JEEB> which is IIRC badly misnamed given the current structs
[15:28:29 CEST] <King_DuckZ> idk
[15:28:33 CEST] <JEEB> just like the read_frame one
[15:28:39 CEST] <JEEB> which reads an AVPacket out of input
[15:29:12 CEST] <JEEB> the decoding/encoding thing should be relatively straightforward, you send stuff into a decoder or encoder, and then receive from it, and then there's an error that tells you to do the other thing
[15:29:34 CEST] <JEEB> simplest is with say H.264 decoding, where you have to feed the decoder N AVPackets before you get your first decoded AVFrame
[15:30:20 CEST] <King_DuckZ> JEEB: right, it *should*, but I'm lost in a maze of stuff that takes ownership of other stuff, but only sometimes, others who don't do that, examples that use different functions and ultimately my 262 bytes output file with no streams :(
[15:30:37 CEST] <JEEB> until you have fed enough the receive_frame thing will keep returning EAGAIN
[15:31:01 CEST] <JEEB> and all of the code I *know* has to follow this, how the function/loop is specifically done is a different issue altogether :P
[15:31:12 CEST] <JEEB> this page gives just one example https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[15:31:17 CEST] <King_DuckZ> I don't need decoding since input frames come from somewhere else already, I only have to do encoding
[15:31:23 CEST] <JEEB> right
[15:31:31 CEST] <JEEB> so you send avframes and receive avpackets
[15:33:47 CEST] <King_DuckZ> right, I've got this now, after fixing as per BtbN's suggestions: https://paste.debian.net/1031688/
[15:34:14 CEST] <JEEB> $dayjob time so definitely not reading any code right now :P
[15:44:13 CEST] <acos> So I settled on lossles h264 as capture format for these VHS tapes. Only took me 70 tries to settle on a good command.
[15:44:26 CEST] <acos> It's hard to get a good video LOL
[15:44:55 CEST] <BtbN> With lossless video it's pretty easy
[15:48:40 CEST] <King_DuckZ> is anyone able to review my code please?
[15:48:44 CEST] <Mavrik> Lossless for VHS is quite optimistic tho :)
[15:49:15 CEST] <King_DuckZ> could it be the pkt I'm passing to av_interleaved_write_frame() can't be reused? since that function claims to take ownership of that pointer?
[15:52:27 CEST] <BtbN> Just look at the documentation for it... https://www.ffmpeg.org/doxygen/trunk/group__lavf__encoding.html#ga37352ed2c63493c38219d935e71db6c1
[15:52:39 CEST] <BtbN> "If the packet is reference-counted, this function will take ownership of this reference and unreference it later when it sees fit. The caller must not access the data through this reference after this function returns."
[15:52:47 CEST] <acos> Noob at ffmpeg. Yes fell asleep before stopping creature. Got 90gb file
[15:53:49 CEST] <King_DuckZ> BtbN: yeah I've been staring at that for a bit now - "If the packet is reference-counted, this function will take ownership of this reference and unreference it later when it sees fit. The caller must not access the data through this reference after this function returns."
[15:54:31 CEST] <BtbN> Seems pretty clear to me?
[15:54:32 CEST] <King_DuckZ> how can I tell if it's ref-counted or not? does that sentence mean that my code is wrong if pkt always points to the same object?
[15:55:05 CEST] <King_DuckZ> BtbN: can you explain then please? because I don't get it
[15:55:30 CEST] <BtbN> It takes ownership of it, and keeps it for later. That's the whole point of the function.
[15:56:37 CEST] <King_DuckZ> so it's definitely doing that?
[15:56:54 CEST] <BtbN> It's the whole point of the interleaved in its name
[15:58:45 CEST] <King_DuckZ> which means I have to av_packet_alloc() right after the call to av_interleaved_write_frame(), so the next time avcodec_receive_packet() is called it will have a fresh packet pointer?
[15:59:47 CEST] <BtbN> You need to unref/free it first, otherwise you'll leak it
[16:01:44 CEST] <King_DuckZ> I thought av_interleaved_write_frame() would do that? since it's got ownership now?
[16:01:50 CEST] <Mavrik> Basically av_interleaved_write_frame will take away the data buffer of the packet
[16:01:55 CEST] <Mavrik> So you shouldn't use it again.
[16:02:08 CEST] <Mavrik> You need to free the packet you passed in and allocate new buffer for more data.
[16:04:24 CEST] <King_DuckZ> see why I find it confusing? so a call to the av_packet_free/av_packet_all is the correct thing here?
[16:04:33 CEST] <King_DuckZ> alloc
[16:05:00 CEST] <Mavrik> Not sure what do you mean by that question :/
[16:05:20 CEST] <King_DuckZ> T_T
[16:06:54 CEST] <mpodien> how do i tell ffmpeg to transcode file into an .mp4 without adding this extension to the output filename?
[16:07:01 CEST] <furq> -f mp4
[16:07:10 CEST] <mpodien> thanks a bunch!
[16:08:37 CEST] <King_DuckZ> well it's not crashing if I free it, so all this talk about taking ownership was a lie after all
[16:08:55 CEST] <King_DuckZ> but my output is still the 262 bytes thing
[16:09:26 CEST] <Mavrik> uhh.
[16:11:27 CEST] <BtbN> Yes, the documentation and the code sure is a lie...
[16:12:25 CEST] <King_DuckZ> so, at the end of my input I call the encode() function I linked earlier with a null frame, then I call av_write_trailer() and finally avformat_free_context(), is there anything missing?
[16:12:55 CEST] <BtbN> You should read up on how reference counting works
[16:13:13 CEST] <BtbN> the whole point of it is to count references, so only the free of the last reference actually frees thing...
[16:14:44 CEST] <King_DuckZ> wut? what about av_packet_unref() then? I thought that's what did the count decrement
[16:15:04 CEST] <BtbN> free implicitly calls it
[16:17:13 CEST] <King_DuckZ> ok, so that clears up some confusion at least, and explains why my code is not crashing
[16:31:31 CEST] <Mavrik> I think the confusing part here is that "take ownership" usually means ownership of the buffer only, not the whole struct.
[16:34:59 CEST] <King_DuckZ> Mavrik: yup, I'd never call free() or delete on a buffer of whose I don't have ownership
[16:35:32 CEST] <King_DuckZ> and I'd expect an unref() function to clean up automatically when the count drops to 0
[16:36:12 CEST] <King_DuckZ> of whom
[16:39:38 CEST] <DHE> even so sometimes there's confusion about whether a ref is made by the called function or whether it takes your ref
[16:40:04 CEST] <Mavrik> I usually just double check in source :(
[16:59:01 CEST] <King_DuckZ> avformat_write_header() is returning 0 but my output is still empty... any idea on how one would debug a problem like this?
[17:01:30 CEST] <Mavrik> You usually need to write trailer and close output to finish the file.
[17:02:18 CEST] <King_DuckZ> avformat_free_context() == close output?
[17:02:21 CEST] <DHE> maybe there's nothing to write by the format yet, maybe there's a write buffer
[17:06:35 CEST] <acos> How was I supposed to capture VHS tape? Was fighting the crossbar for hours.
[17:40:01 CEST] <King_DuckZ> DHE: what do you mean it's got nothing to write?
[17:40:44 CEST] <King_DuckZ> I do call encode() passing a null frame, if that's what you mean, and I can see that in my console as well, since I put a printf in there
[17:59:28 CEST] <King_DuckZ> heh it turns out I wasn't increasing frame->pts
[17:59:56 CEST] <King_DuckZ> now the file size looks better, but I don't think increasing is correct yet
[18:00:19 CEST] <King_DuckZ> I should be doing += some_magic_value, amirite?
[18:13:50 CEST] <JEEB> King_DuckZ: you have a time base and the PTS
[18:14:55 CEST] <JEEB> PTS is ticks, and the time base is how many ticks in that sample will be at.
[18:15:01 CEST] <JEEB> argh no
[18:15:15 CEST] <JEEB> PTS is ticks at how many ticks in that sample should be presented at
[18:15:22 CEST] <JEEB> and time base is how many ticks is 1 second
[18:16:05 CEST] <JEEB> amd I think currently you need to set the time base in the encoder
[18:16:13 CEST] <JEEB> since AVFrames don't (yet) have time bases
[18:16:21 CEST] <JEEB> as an example
[18:16:26 CEST] <JEEB> if you have 24/1 fps
[18:16:30 CEST] <JEEB> your time base is 1/24
[18:16:37 CEST] <JEEB> and each sample +1s the pts
[18:18:28 CEST] <King_DuckZ> just +1? not +1/24?
[18:18:42 CEST] <King_DuckZ> or some crazy denominator, since it's an int?
[18:18:45 CEST] <JEEB> 1*(1/24)
[18:18:47 CEST] <JEEB> is 1/24
[18:19:05 CEST] <JEEB> pts of 24 with time base of 1/24 thus is 1 second
[18:20:28 CEST] <JEEB> but yea, the muxer's AVStream time base can be different due to various things like "lol this container only has timestamps at a time base of 1/90000
[18:20:42 CEST] <JEEB> there's a function to scale the timestamps between two time bases
[18:21:29 CEST] <JEEB> if AVFrames and AVPackets had their own time bases that could in theory be taken care of automagically, but unfortunately that's not the case yet
[18:22:17 CEST] <JEEB> av_packet_rescale_ts
[18:22:18 CEST] <JEEB> it seem
[18:22:20 CEST] <JEEB> *seems
[18:22:42 CEST] <JEEB> you give it an AVPacket and the encoder time base and the AVStream->time_base
[18:22:43 CEST] <King_DuckZ> I don't understand, if I only have to do ++, then what do I need to scale?
[18:22:54 CEST] <King_DuckZ> not pts, right?
[18:23:07 CEST] <JEEB> ok, so you have your encoder, with time base of say 1/24
[18:23:12 CEST] <King_DuckZ> yes
[18:23:17 CEST] <JEEB> now you f.ex. try to mux into FLV or MPEG-TS
[18:23:31 CEST] <JEEB> these containers have a hard-coded time base (zomg!)
[18:23:39 CEST] <JEEB> FLV has 1/1000
[18:23:44 CEST] <JEEB> MPEG-TS has 1/90000
[18:23:54 CEST] <JEEB> so after you get the AVPacket from an encoder
[18:24:08 CEST] <JEEB> you have to rescale the pts/dts/duration to the output AVStream's time_base
[18:24:21 CEST] <JEEB> and in general the MP4 muxer also likes to poke your time base
[18:24:44 CEST] <JEEB> thankfully there's a helper function for that
[18:24:58 CEST] <King_DuckZ> hm that would explain why my video terminates instantly, I tried mpg and mp4... though mkv worked fine
[18:25:03 CEST] <JEEB> av_packet_rescale_ts(pkt, encoder_time_base, avstream->time_base)
[18:26:07 CEST] <JEEB> for mp4 you get extra points if your AVPackets also have teh duration field set (the encoder might set this for you, probably not)
[18:27:15 CEST] <King_DuckZ> I can set everything all the time, it's just that I didn't know I had to :/
[18:27:49 CEST] <JEEB> not having it set is not a problem
[18:28:06 CEST] <JEEB> it's just that mp4 likes if you have it set, otherwise it calculates the duration from the packets
[18:29:12 CEST] <JEEB> also for the record, this timestamp rescaling thing I can see being used by at least a few examples, including the "transcoding" one which IIRC even used the new decoding/encoding APIs. not that I vouch for any of the examples, unfortunately
[18:29:33 CEST] <JEEB> some of them do things rather backwards and/or were created when specific helpers for f.ex. "black frame generation" just weren't available
[18:29:50 CEST] <JEEB> also I liked the example that just skips muxing and just fwrites AVPackets' contents into a file
[18:29:56 CEST] <JEEB> which might be valid, or maybe not...
[18:29:58 CEST] <King_DuckZ> yeah, I noticed lots of stuff going on, but when you have no idea it just looks like it's churning stuff
[18:30:22 CEST] <King_DuckZ> variable names are not super helpful either... c, oc, st, pts....
[18:32:11 CEST] <King_DuckZ> so if I got it right, I need to adjust that timestamp *after* I got my packet from avcodec_receive_packet() but *before* I pass it on to av_interleaved_write_frame(), correct?
[18:32:19 CEST] <JEEB> yup
[18:32:42 CEST] <King_DuckZ> and it's not like I have to adjust the number myself, that helper function will do it for me if I just pass it the whole packet, right?
[18:32:47 CEST] <JEEB> yes
[18:32:57 CEST] <JEEB> because thank goodness someone added that helper
[18:33:09 CEST] <King_DuckZ> cool, I'm understanding something today! :)
[18:34:11 CEST] <JEEB> https://www.ffmpeg.org/doxygen/trunk/group__lavc__packet.html#gae5c86e4d93f6e7aa62ef2c60763ea67e
[18:34:32 CEST] <JEEB> and yea, a total protip is to search `site:ffmpeg doxygen trunk KEYWORD`
[18:34:42 CEST] <JEEB> when you need docs for something
[18:35:19 CEST] <JEEB> also that first one was supposed to be ffmpeg.org
[18:35:21 CEST] <JEEB> I fail as usual
[18:36:03 CEST] <atomnuker> wait, what?
[18:36:15 CEST] <atomnuker> you should definitely set the PTS of the avframe
[18:36:25 CEST] <King_DuckZ> lol it's allright, I don't use google, I just go to ffmpeg's doc page and use the search box there ;)
[18:36:31 CEST] <JEEB> yes, I thought that was already being done atomnuker
[18:36:33 CEST] <atomnuker> the avpkt inherits the avframe PTS, though the encoder's free to mod it
[18:36:37 CEST] <JEEB> yes
[18:36:48 CEST] <JEEB> did I miss the part where this poor bastard doesn't set any PTS to begin with?
[18:37:00 CEST] Action: King_DuckZ nods
[18:37:03 CEST] <JEEB> I did start with explaining the concept of time_base and what PTS is
[18:37:14 CEST] <atomnuker> oh k, nvm then
[18:37:17 CEST] <King_DuckZ> which is why I was getting an empty mp4 T_T
[18:37:28 CEST] <King_DuckZ> as it turned out
[18:38:29 CEST] <King_DuckZ> btw JEEB, an AVCodecContext is the encoder, right? the object that will give me the source time_base?
[18:38:58 CEST] <JEEB> it can also be the decoder, but yes - in your case that's the encoder
[18:39:08 CEST] <JEEB> and you should be trying to set the time base for it
[18:39:18 CEST] <JEEB> it will probably derp at you at initialization if the time base is bad
[18:39:50 CEST] <King_DuckZ> likely somewhere it's set, I remember mucking around with denominators and frame rates and such
[18:40:25 CEST] <King_DuckZ> I struggle to believe I wrote a wrapper that kinda works with the little understanding I have of anything ffmpeg
[18:41:17 CEST] <King_DuckZ> when we will finally opensource this, you guys need to spam my wrapper as the way to do ffmpeg in c++ :p
[18:45:36 CEST] <King_DuckZ> does pts need to start from 1 or something? because those changes rid me of all the "non strict monotonic pts" warnings I was getting except the first one
[18:45:42 CEST] <acos> Why does avi default to mpeg4? I wanted raw avi uncompressed frames.
[18:46:11 CEST] <JEEB> acos: because each container has defaults for video/audio
[18:46:24 CEST] <JEEB> if you need something specific you just have to set it
[18:46:36 CEST] <acos> :( so what do I have to type to get another format. Wish it was easy.
[18:46:54 CEST] <JEEB> -c:v rawvideo
[18:46:58 CEST] <JEEB> if I recall correctly
[18:47:18 CEST] <acos> Does the ss command work to clip from crf0 libx264?
[18:48:43 CEST] <acos> ThanksJEEB
[18:55:04 CEST] <King_DuckZ> the avstream's time_base should be set automatically, no?
[18:55:19 CEST] <King_DuckZ> ah no nvm
[18:55:23 CEST] <King_DuckZ> I'm setting it
[18:55:32 CEST] <JEEB> and it can then override it if it feels like it
[18:55:56 CEST] <King_DuckZ> so the one from the codec is the one that is set automatically?
[18:56:34 CEST] <JEEB> pretty sure it doesn'
[18:56:37 CEST] <JEEB> doesn't
[18:57:11 CEST] <King_DuckZ> ok so that must be why I'm getting an empty video again
[18:57:25 CEST] <King_DuckZ> and: invalid DTS: pts IS LESS THAN dts
[18:58:04 CEST] <King_DuckZ> and: Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[19:00:18 CEST] <King_DuckZ> time to go home, thanks for your help everyone!
[19:00:26 CEST] <King_DuckZ> I'll bother you tomorrow again! :p
[20:21:47 CEST] <godzirra> Hi everyone.
[20:23:03 CEST] <godzirra> Can anyone help me out for a moment? I'm trying to figure out why this works: ffmpeg -i lion-sample.mp4 -nostats -hide_banner -loglevel verbose -f mp3 ./output.mp3 ... But this does not. I get an error saying stream 1, offset 0x45cf: partial file, pipe:0: Invalid data found when processing input : cat lion-sample.mp4 | ffmpeg -i pipe:0 -nostats -hide_banner -loglevel verbose -f mp3 ./output.mp3
[20:23:30 CEST] <JEEB> you mostly cannot access mp4 files without seeking
[20:23:37 CEST] <JEEB> and cat kind of doesn't let you seek
[20:23:42 CEST] <JEEB> as in, stdin
[20:23:44 CEST] <godzirra> So I'll almost always need the entire mp4 file, so I shouldn't use pipes?
[20:23:59 CEST] <JEEB> due to various indices etc being at the end rather often, yes
[20:24:07 CEST] <godzirra> bummer. Okay, thanks.
[22:17:07 CEST] <darkdrgn2k> anyy reason when i add output_ts_offset to the mix the video gets verry choppy
[22:37:49 CEST] <lvlscape> anyone here have expirence using ksmgrab? trying to have ffmpeg grab the video from a window that isnt part of x11 or the framebuffer.. i believe its an EGL window as it runs a fullscreen application a linux server without an x-enviroment/xserver installed.
[22:40:43 CEST] <lvlscape> i set the cap_sys_admin+ep for ffmpeg in hopes of trying kmsgrab, tinking it would grab the video further down the pipe.. but kmsgrab isnt recognized, so styarted looking through docs for recompile flags, or if it was a compaitibility, or unsure if im even ont he right approach. i think the EGL window is comign from SDL/SDL2 device.. which is a supported ffmpeg device.. but when looking up how it works in
[22:40:45 CEST] <lvlscape> the documentation it appears as if people oly output to SDL / SDL2 devices from ffmpeg, not using them as input
[22:41:54 CEST] <JEEB> https://www.ffmpeg.org/ffmpeg-devices.html#kmsgrab
[22:42:04 CEST] <JEEB> that's the kmsgrab documentation and examples
[22:47:50 CEST] <lvlscape> JEEB: understood, when i try thos examples i get "Unknown input format: 'kmsgrab'" which leads me to think that either 1- i ened to recompile ffmpeg with a flag to enable , 2- im usinf incorrectly, however after a search, found a mentiont o "setcap cap_sys_admin+ep" on ffmpeg to escelate its privlige for thsi input, which i tried ot no success or 3- it just isnt compatible with my device for some reason,
[22:47:51 CEST] <lvlscape> which i cant find documentation for how to check. i was able to find a docuemnt explaining how X11 + kms/drm + framebuffers all work together https://imgur.com/a/aeod2Am
[22:48:23 CEST] <JEEB> lvlscape: your FFmpeg needs to be new enough and kmsgrab has to be in input devices
[22:48:35 CEST] <JEEB> (when you configure)
[22:49:18 CEST] <lvlscape> JEEB: gotcha, yeah its def not on my 'ffmpeg -devices' output . though i did build from source.
[22:49:29 CEST] <JEEB> it requires libdrm at the very least http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=1d1b6dc3b133f45afc03d187d3cfc3e9619abd06;hb=HEAD#l6005
[22:49:37 CEST] <JEEB> as in, the development headers and libraries and pkg-config file
[22:49:48 CEST] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=1d1b6dc3b133f45afc03d187d3cfc3e9619abd06;hb=HEAD#l3221
[22:50:01 CEST] <lvlscape> that makes a lot of sense, since kms/drm seem synonomoys.
[22:50:05 CEST] <JEEB> (this sets libdrm as a dependency of kmsgrab)
[00:00:00 CEST] --- Tue Jul 3 2018
More information about the Ffmpeg-devel-irc
mailing list