[Ffmpeg-devel-irc] ffmpeg.log.20180125

burek burek021 at gmail.com
Fri Jan 26 03:05:02 EET 2018


[00:00:34 CET] <TAFB_WERK> yeah, cpu sits around 6% for 15 mins to an hour before it freaks out
[00:01:25 CET] <TAFB_WERK> alright, I'm off work, will have to continue another time, ttyl peeps
[00:01:45 CET] <TAFB_WERK> https://www.youtube.com/c/Skyviewelectronics/live
[00:01:50 CET] <TAFB_WERK> pipe stream is up, MUCH smoother
[00:02:24 CET] <FishPencil> It might be smoother but it isn't a higher bitrate
[00:02:35 CET] <FishPencil> and it's still choppy imo
[00:02:36 CET] <friki> Hi, I've build ffmpeg with decklink but I still receive the error: "Unknown input format: 'decklink'" . Full ffmpeg output: https://pastebin.com/NqYXrK6E
[00:05:07 CET] <sfan5> friki: it's using the wrong shared library at runtime
[00:05:20 CET] <sfan5> either build with --disable-shared or fiddle with LD_LIBRARY_PATH
[00:06:39 CET] <friki> sfan5: i'll try to rebuld with this option
[00:08:58 CET] <friki> sfan5: you discovered that by this message "WARNING: library configuration mismatch"?
[00:09:05 CET] <sfan5> yes
[00:09:30 CET] <friki> good, thanks
[00:09:31 CET] <sfan5> it's immediately obvious because --extra-version=1+b2 is something debian adds to their package versions
[00:10:45 CET] <friki> hehe i se i've added also this extra version in my compilation. I'll start over also changing it
[00:11:37 CET] <sfan5> oh indeed, well the configure lines still mismatch
[00:14:20 CET] <friki> i think i don't need opencv. in my pervious compilation i need to remove it because of this error "ERROR: opencv not found". I think i've installed all dependencies (debian package: libopencv-imgproc-dev )
[00:15:11 CET] <friki> it will be great if i can get ffmpeg as much similar as debian's one (adding decklink)
[00:15:32 CET] <friki> but it's not a big deal for now
[00:36:34 CET] <ArsenArsen> I'm trying to use the C API but when doing it I get [mp4 @ 0x7fb0682635e0] Could not find tag for codec rawvideo in stream #0, codec not currently supported in container and I can't operate on it further. Code: https://gist.github.com/ArsenArsen/ef2a54e6348a840fee9c6f47e2ab8934
[01:01:04 CET] <friki> sfan5: same after recompile with --disable-shared :-/ https://pastebin.com/zxS3iqdx
[01:02:10 CET] <furq> ArsenArsen: the warning is pretty self-explanatory, you can't mux rawvideo into mp4
[01:02:25 CET] <ArsenArsen> figured out where I went wrong, but not a solution
[01:02:32 CET] <ArsenArsen> but thank you furq
[01:03:16 CET] <furq> i would assume the solution is to use a muxer that supports rawvideo, like mkv or nut
[01:03:30 CET] <furq> but my eyes glazed over as soon as i saw C++ so maybe the problem is different
[01:03:53 CET] <ArsenArsen> Nope, the solution is decoding rawvideo and re-encoding it, just haven't implemented that yet
[09:55:08 CET] <friki_> someone knows how to capture the second SDI input using bmdcapture (from bmdtools)? I know bmdtools are out of ffmpeg project, sorry for the offtopic
[09:57:48 CET] <sfan5> friki_: did you get the decklink thing working yesterday?
[09:59:11 CET] <friki_> sfan5: Morning! I get stuck at this point, after rebuild with "--disable-shared": https://pastebin.com/zxS3iqdx
[09:59:47 CET] <sfan5> hmm that seems weird
[09:59:58 CET] <sfan5> does readelf -d ./ffmpeg mention any libav*.so libraries? (it shouldn't)
[10:01:17 CET] <friki_> In fact I prefere not to rebuild ffmpeg and keep the current installer version to avoid side efects with other installed softare. For this reason i've been using bmdcapture since some months ago. Now I have a new card with 2 SDI inputs I don't know how to run it with bmdcapture
[10:03:13 CET] <sfan5> well as long as you don't try to install your custom ffmpeg system-wide, it won't interfere with anything else
[11:46:58 CET] <Guest76> Hi, I'm using ffmpeg (2.8) for a video player I'm working on using mpegts over udp multicast. I noticed that my player hangs on the call to avcodec_decode_video2, but ffplay does not. How should I handle intermittent connections as to prevent this thread hang? (side note, I wished ffmpeg had a interrupt callback on the AVCodecContext also)
[12:00:52 CET] <JEEB> progmanos: I am not sure why that one would hang
[12:01:01 CET] <JEEB> the one that reads data from multicast, sure.
[12:02:20 CET] <progmanos> av_read_frame does not hang because I set the udp timeout value and I'm using the interrupt callback. it's weird that it's only hanging in the call to avcodec_decode_video2
[12:02:47 CET] <progmanos> almost like the mpeg2 decoder gets stuck in an infinite loop
[12:03:25 CET] <progmanos> does anyone know if a later minor release on the 2.8 mainline version fixed a issue related to this?
[12:19:03 CET] <JEEB> no idea, I would just test latest master and I would recommend switching to the feed/receive API
[12:19:14 CET] <JEEB> https://www.ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[12:19:17 CET] <JEEB> this API is <3
[12:40:53 CET] <Asuran> hi im trying to rescale a 1088x1920 vid to -vf scale=364:642 but it doesnt work no matter what i do i get not what i wanted and its ugly stretched to other ratio
[12:47:45 CET] <friki_> sfan5: finally i got recompiled ffmpeg with decklink support :-) [i think "make clean" is required after changing some ./configure options]
[12:50:37 CET] <JEEB> friki_: you should generally not build in the source root (even making a "lunix_build" directory in it, and then running the configure/make from there is OK), as you can then easily nuke it from the orbit and then build from zero again :)
[12:52:23 CET] <friki_> JEEB: like: mkdir mybuild && cd mybuild && ../configure --enable-STUFF && make ?
[12:54:30 CET] <friki_> JEEB: ok, i see now. Thanks for the tip!
[12:55:31 CET] <JEEB> yup
[12:58:08 CET] <friki_> next question... I'm trying to capture from secondary SDI channel from a "Decklink 4k Extreme". May be the ffmpeg syntax has changed?
[12:58:57 CET] <JEEB> never looked into the decklink module's parameters so no idea
[12:59:11 CET] <friki_> -i 'DeckLink 4K Extreme (2)' doesn't works for me
[13:07:17 CET] <friki_> some commands showing "list_devices", "list_formats"... https://pastebin.com/MLGVD5yu
[13:40:50 CET] <sfan5> -video_input sounds like it'd do that, http://ffmpeg.org/ffmpeg-devices.html#Options-3
[13:45:38 CET] <sfan5> though it doesn't seem to have options for secondary inputs
[14:46:23 CET] <khali> good afternoon
[14:47:24 CET] <khali> I have a few old AVC+MP3 videos using MP4 container which my TV refuses to read
[14:48:01 CET] <khali> I found that this TV supports AVC+MP3 in MKV container though, so I'm going to convert all my old files using ffmpeg
[14:49:02 CET] <khali> my current plan is the very simple and naive: ffmpeg -i movie.mp4 -c copy movie.mkv
[14:49:47 CET] <khali> I just wanted to ask if anyone has suggestions of other options which would be recommended for such a conversion?
[14:49:57 CET] <c_14> -map 0 potentially
[14:50:02 CET] <c_14> if you have more than 1 audio track
[14:50:56 CET] <c_14> btw. do you also have avc+mp3 mp4 files that the TV reads? Because in that case it might be something like the video profile that's causing the issue
[14:56:08 CET] <khali> thanks c_14, indeed there are a few multilanguage files in the lot
[14:56:40 CET] <khali> good question, let me check
[15:07:16 CET] <khali> generating list...
[15:08:44 CET] <khali> c_14: I checked, all my avc+mp3 mp4 files are rejected and only these
[15:09:06 CET] <c_14> then it might just be the container, yeah
[15:09:10 CET] <khali> also the fact that the same streams in MKV container are supported suggests that it's not a profile issue
[15:09:13 CET] <c_14> or codec+container rather
[15:09:47 CET] <khali> well it was an odd combination of codecs to use... I was young and lacked experience
[15:13:50 CET] <khali> I always wondered why "-map 0" isn't the default
[15:21:08 CET] <khali> thank you c_14, looks all good
[16:06:53 CET] <alexpigment> khali: re your earlier post, the funny thing is that mp3 is supported in MP4 files, but up until this point, I thought Apple products were the only thing that didn't play them
[16:07:20 CET] <alexpigment> which, of course, I assumed was a business-related decision since they have a stake in AAC
[16:40:49 CET] <khali> alexpigment: sure it is supported, and VLC and ffplay are find with that
[16:41:27 CET] <saml> is there IDE for filtergraph?
[16:42:02 CET] <khali> but as I recall my father in law's Sony LCD did not support them either
[16:42:04 CET] <saml> i want auto complete and visualization and step debugger and peek intermediate results between filter chains
[16:42:11 CET] <khali> and neither does my brand new Panasonic
[16:42:58 CET] <khali> I'm surprised as I actually expected all these screens to be powered by open-source players
[16:43:12 CET] <alexpigment> khali: well, VLC and ffplay are going to play a lot of things that aren't exactly standard. but even major players on windows and all browsers handle them. quicktime and safari don't though. it sucks because the AAC license is pretty prohibitive
[16:44:13 CET] <alexpigment> at least, if you're a business, you gotta pay VIA for just the AAC part - the fees for H.264 don't even come into play until you are at a very high number of units
[16:46:47 CET] <SortaCore> on a call with libx264 licensors soon
[16:46:58 CET] <SortaCore> let's hope I can get my code non-open-source-requiredy
[16:47:14 CET] <SortaCore> don't want to impose that on all the fellas that will use my dll
[16:47:15 CET] <alexpigment> :)
[16:48:05 CET] <alexpigment> always good to be all squared away with licensing
[16:50:01 CET] <furq> not relevant any more but browsers used to be real shaky with avc/mp3 in mp4
[16:50:05 CET] <furq> firefox didn't play that for ages
[16:50:17 CET] <furq> even when avc/aac in mp4 and mp3 both played file
[16:50:20 CET] <furq> fine
[16:55:42 CET] <khali> yes, clearly limitation is most often about combinations, not individual support
[17:17:04 CET] <saml> [a][b]scale2ref  does it scale a to match b?  or scale b to match a?
[17:26:02 CET] <kepstin> saml: it says what it does in the example in the filter documentation.
[17:29:45 CET] <saml> kepstin, scales a to b
[17:29:53 CET] <saml> i verified by looking at Output: section
[17:30:01 CET] <saml> hehehehhehehehehehehhehehehee such smart
[17:43:37 CET] <saml> interesting about psnr filter.  framerate -> scale2ref -> psnr  yields better than scale2ref -> framerate -> psnr     and framerate 50 yields better than framerate=fps=60
[17:43:48 CET] <saml> just way too many variables
[17:44:37 CET] <saml> i calculate psnr just to detect abnormal code release
[17:45:38 CET] <saml> does it make sense if videoencoder-v1 had X PSNR for few reference videos.  but output of videoencoder-v2  gives lower PSNR ?
[17:46:34 CET] <saml> i mean v1 and v2 outputs different sets of encodings based on same originals.  and I want to compare psnr of both v1's output and v2's output
[17:47:02 CET] <saml> to see if i've done a good job with v2
[17:47:26 CET] <saml> i guess it's same as optimizing ffmpeg arguments for psnr, which is useless
[17:54:34 CET] <kepstin> saml: using the framerate filter on anything involving psnr seems like a terrible idea given how it interpolates frames.
[17:55:20 CET] <kepstin> and psnr will not tell you if an encode will look good to a person, so :/
[18:04:48 CET] <SortaCore> read that as HolocaustUser... what is up with my brain
[18:04:59 CET] <SortaCore> on a related note I finished the call
[18:05:13 CET] <SortaCore> dude will talk to lawyers
[18:08:16 CET] <SortaCore> now I'll play some Monstrum to relax
[18:58:25 CET] <SortaCore> I escaped from the psychic monster of death
[18:58:31 CET] <SortaCore> very relaxing
[19:01:52 CET] <saml> kepstin, ah thanks. i missed interpoloation part
[19:03:16 CET] <alexpigment> "<saml> i calculate psnr just to detect abnormal code release"
[19:03:34 CET] <alexpigment> why don't you just keep an *encoded* video as your reference for PSNR
[19:03:46 CET] <alexpigment> and run the same job you used to create *that* video in each release?
[19:04:29 CET] <alexpigment> for example, i have source video A
[19:04:40 CET] <saml> yeah that's what i'm doing
[19:05:09 CET] <saml> psnr was first chosen cause it's shipped with virtually all ffmpeg where as vmaf comes optionally
[19:05:20 CET] <alexpigment> then why are you dealing with different video specs?
[19:05:41 CET] <saml> ah, i'm not doing -psnr (during encoding)
[19:05:41 CET] <alexpigment> the frame rates, size, etc, should always match exactly if that's what you're doing
[19:05:48 CET] <saml> i'm doing -filter_complex psnr
[19:06:17 CET] <saml> oh i misunderstood.  i have an original as reference.  i'm comparing output of v1 and v2
[19:06:32 CET] <saml> *encoded* video
[19:06:41 CET] <saml> yup that will work, i think
[19:06:56 CET] <alexpigment> i think we're on the same page here
[19:06:58 CET] <alexpigment> but just in case
[19:07:19 CET] <alexpigment> you have an original video. you use ffmpeg in a known good state create an encoded video with known parameters
[19:07:41 CET] <saml> it could be v2 will output different dimension, different framerate, ... etc than v1's output
[19:07:44 CET] <alexpigment> you re-run that command later to detect problems with code changes by running that exact same ffmpeg command on the original
[19:07:58 CET] <alexpigment> you compare encoded video A with encoded video B
[19:08:16 CET] <alexpigment> saml: why?
[19:08:56 CET] <alexpigment> if you want some science here, you need to keep an original video, and have a very specific set of ffmpeg parameters
[19:09:16 CET] <saml> i can imagine a year from now, i (youtube, for example) would be encoding to different resolution
[19:09:57 CET] <alexpigment> ok, so what is the point again, if it's not to "detect normal code release"?
[19:10:00 CET] <saml> i do want to minimize variables.  exact same ffmpeg argument but only ffmpeg version changed ... etc
[19:10:08 CET] <alexpigment> i realize you may be changing specs
[19:10:12 CET] <saml> but in a year, anything can change. i might not use ffmpeg anymore
[19:10:16 CET] <alexpigment> but your PSNR test videos should not
[19:10:41 CET] <saml> yeah i'm not really sure what i'm trying to detect or test
[19:11:02 CET] <saml> let's say i upload the same video to youtube and to dailymotion. how do I compare their outputs?
[19:11:07 CET] <saml> to choose a vendor, for example
[19:11:33 CET] <alexpigment> well, assuming they support the same frame rate and resolution, you can compare the two
[19:11:49 CET] <saml> i thought i could use -filter_complex psnr   of youtube.mp4 and dailymotion.mp4  against original as reference and get some sense of each vendor's quality
[19:12:13 CET] <alexpigment> no, you want to compare against something that has the exact same frame rate and resolution
[19:12:25 CET] <saml> of course youtube.mp4 and dailymotion.mp4 will have different dimention, framerate, pixel format.. etc
[19:12:34 CET] <alexpigment> saml: that's the variable you need to remove
[19:12:38 CET] <saml> yup
[19:12:51 CET] <alexpigment> they'll have the same pixel format, so ignore that
[19:13:08 CET] <alexpigment> if they have different frame rates, then you are uploading a source file with a frame rate that X supports and Y doesn't
[19:13:25 CET] <alexpigment> so upload a video that has a frame rate that both support (e.g. 29.97fps)
[19:13:30 CET] <saml> yeah i tried artificially encoding a video with rgb24 instead of yuv420p,  and it didn't affect psnr
[19:13:52 CET] <alexpigment> rest safely knowing that yuv420p is here to stay for the foreseeable future on streaming sites
[19:14:22 CET] <alexpigment> anyway, i see that you're really struggling with this project, and from the knowledge I gather, you're making this way harder than it should be
[19:14:48 CET] <saml> some vendors does not keep original's framerate. if i upload 29.97 fps,  output could be 30
[19:15:12 CET] <saml> yah i'm a noob. it's been a learning experience
[19:15:13 CET] <alexpigment> saml: that would be very weird
[19:15:20 CET] <alexpigment> but have a contingency plan
[19:15:41 CET] <alexpigment> encode your ORIGINAL in as many different formats as you can at a lossless bitrate
[19:16:02 CET] <alexpigment> upload the different formats - not the originals - as your tests
[19:16:28 CET] <alexpigment> if you know some site is janky and doesn't preserve 29.97fps and instead uses 30fps like an idiot, then upload your 30fps video as a test
[19:16:35 CET] <alexpigment> compare the psnr against that
[19:16:49 CET] <saml> and calculate  psnr(format1, output1)
[19:16:53 CET] <saml> yeah that makes sense
[19:17:06 CET] <saml> i didn't know about lossless bitrate
[19:17:23 CET] <alexpigment> well, lossless codec, lossless bitrate, etc
[19:17:33 CET] <saml> hrm that's a good idea
[19:18:10 CET] <saml> so, find out output format of different vendors.  encode orginal to match those dimension, framerate, using lossless codec. and upload them. and do psnr
[19:18:36 CET] <alexpigment> so even if whatever you're uploading looks janky because of a conversion you did locally (say, for example, 59.94fps to 30fps), the PSNR is still going to be valid when comparing the video you uploaded to what the streaming service created from it
[19:18:47 CET] <alexpigment> saml: yep
[19:19:02 CET] <alexpigment> and hopefully you can find a format that all services support, so you only need one reference video
[19:19:11 CET] <alexpigment> or at least, one reference video per resolution
[19:19:13 CET] Action: saml googles for lossless codec
[19:19:41 CET] <alexpigment> huffyuv is a common one
[19:19:55 CET] <alexpigment> you can actually use x264 at -crf 0 as well
[19:20:46 CET] <alexpigment> just for the sake of file size and making sure your video is well supported, i'd go with x264 at crf 0
[19:21:29 CET] <alexpigment> what makes that advantageous is that you're going to be comparing against services that are also likely encoding your video to x264
[19:44:13 CET] <trichy_guru> Hi There, I am a newbie to ffmpeg and I am working on a tool to find out if an image sweeps an entire screen. Example an overlay that just sweeps the screen indicating the start of commercial
[19:48:26 CET] <kepstin> trichy_guru: sounds cool, good luck with that. That sort of image analysis is kinda hard to do.
[19:58:43 CET] <lyncher> for what I've seen, inserting CEA-608 captions into a H264 file is just a matter of adding H264RawSEIUserDataRegistered structures into the stream
[19:59:06 CET] <lyncher> what about H265? what data structure will carry 608/708 captions?
[19:59:50 CET] <TAFB_WERK> alexpigment: I haven't had good luck with crf 0, not many things will play it :(
[20:22:27 CET] <alexpigment> tafb_werk: well, that's because of the profile it uses i'd guess
[20:22:31 CET] <alexpigment> yuv444pp
[20:22:40 CET] <alexpigment> but a service transcoding the file should be fine
[20:22:50 CET] <alexpigment> likewise, comparing psnr should be fine
[20:23:09 CET] <alexpigment> it's still yuv420p though; the profile is just different
[20:49:51 CET] <saml> is there acceptable psnr range? 50?
[20:52:51 CET] <kepstin> saml: psnr doesn't really relate to human vision, so no, there's not really. I mean, if it's really low it's obviously terrible, but that's it&
[20:58:29 CET] <saml> thanks
[21:08:01 CET] <saml> what's good format (-f) for outputting to stdout?   -f avi -  works. but  -f mp4 -  doesn't  with -vcodec libx264
[21:08:27 CET] <BtbN> mpegts
[21:08:39 CET] <kepstin> saml: nut, maybe matroska
[21:27:10 CET] <saml> what's a good filter for deinterlacing? nnedi?
[21:28:58 CET] <kepstin> saml: that generally gives good results, but ffmpeg's implementation is really slow
[21:29:13 CET] <saml> ah i see
[21:29:36 CET] <kepstin> if you want something faster, yadif is ok
[21:34:42 CET] <DHE> I'm using yadif. not bad
[21:35:33 CET] <kepstin> it has some noticable artifacting on certain types of diagonal lines :/
[21:36:09 CET] <kepstin> but for a deinterlacer that can run in realtime (or faster) on cpu of a modern pc, it's quite decent.
[21:47:40 CET] <sfan5> isn't bwdif generally better?
[21:48:10 CET] <kepstin> I have less experience using bwdif, so can't really compare.
[22:07:55 CET] <alexpigment> sfan: i've tested it a few times, but i don't recall the advantages
[22:08:03 CET] <alexpigment> what is supposed to be better about bwdif?
[22:08:43 CET] <alexpigment>  /me reads documentation; answers own question
[22:08:46 CET] <JEEB> I don't think there's any sort of consensus, but bwdif uses yadif and w3f deinterlacers with some sort of switching
[22:08:54 CET] <JEEB> I think it's the least tested one
[22:09:00 CET] <alexpigment> yeah
[22:09:05 CET] <JEEB> (which makes sense since it's the newest)
[22:09:24 CET] <alexpigment> is there a possibility to use dxva2 to access whatever hardware deinterlacer is present?
[22:09:28 CET] <alexpigment> like with nvidia?
[22:09:41 CET] <alexpigment> nvidia even has their own inverse telecine on hardware
[22:10:01 CET] <JEEB> it's part of the video rendering stuff with DXVA2 afaik
[22:10:03 CET] <alexpigment> nvidia's deinterlacer appears to be much better than yadif to my eyes
[22:10:07 CET] <JEEB> so decoder just outputs
[22:10:10 CET] <teratorn> can you launch ffmpeg to launch a listening port to receive an rtsp stream as an input?
[22:10:21 CET] <JEEB> and then you're supposed to use the dxva renderer related stuff for deint
[22:10:27 CET] <JEEB> (whatever it maps to with your GPU)
[22:10:41 CET] <alexpigment> you're talking about ffmpeg specifically, right?
[22:10:48 CET] <JEEB> no
[22:10:57 CET] <JEEB> in general they're separated in DXVA2
[22:10:59 CET] <alexpigment> considering that windows media player does that sort of stuff on the fly with the hardware
[22:11:10 CET] <JEEB> yes I just said it's not in the decoder
[22:11:17 CET] <JEEB> not that you don't have it
[22:11:18 CET] <alexpigment> gotcha
[22:11:25 CET] <JEEB> > you're supposed to use the dxva *renderer
[22:11:30 CET] <JEEB> * related stuff
[22:11:43 CET] <JEEB> which meant "as opposed to decoding"
[22:11:52 CET] <alexpigment> oh gotcha
[22:12:09 CET] <JEEB> FFmpeg only supports decoding if I recall correctly, but players like mpv if I recall correctly can use the deint
[22:12:19 CET] <teratorn> I see https://ffmpeg.org/ffmpeg-protocols.html#toc-rtsp, I guess that supports it
[22:15:19 CET] <JEEB> alexpigment: actually it was d3d11 it seems
[22:15:20 CET] <JEEB> https://mpv.io/manual/master/#video-filters-d3d11vpp
[22:16:00 CET] <JEEB> dxva2 also has it IIRC, but I guess d3d11va was the newer thing so it got implemented just there for mpv
[22:29:34 CET] <alexpigment> JEEB: yeah that rings a bell
[22:29:51 CET] <alexpigment> i tried to get it working on this computer in MPV but it was a busy day, and didn't have time to effectively troubleshoot it
[22:30:12 CET] <alexpigment> but someday i will not be busy, and that day i will try to figure out how to get around the error that it was giving
[22:30:16 CET] <alexpigment> :)
[22:56:17 CET] <alexpigment> anyone have any experience with beat detection for music?
[22:57:12 CET] <alexpigment> it doesn't look like ffmpeg has a way to do it, so i was wondering what libraries were good to use
[23:16:26 CET] <hoek> So I have this corrupted MPEG1 file shaved off a broken FAT USBstick via dd_rescue, and ffmpeg stops writing with 'Invalid mb type in I-frame at 18 15'. Can anyone point me to some docs on how to ignore broken/invalid frames and try the next valid frame in a file?
[23:18:53 CET] <hoek> I'm trying a simple 'ffmpeg -i /broken_fat_fs/corrupted_file.mpg /tmp/rescued_file.mpg'
[23:19:48 CET] <alexpigment> hoek: for things like that, i find that more tools is better
[23:20:06 CET] <alexpigment> there's a program called VideoRedo for windows, which has a "Quickstream Fix" option
[23:20:16 CET] <alexpigment> i think they have a trial version
[23:20:21 CET] <alexpigment> anyway, maybe worth trying that first
[23:20:45 CET] <alexpigment> it has helped me with a lot of videos that were otherwise broken
[23:22:30 CET] <hoek> alexpigment: thx, will try!
[23:38:54 CET] <zerodefect> Using the C-API, is it possible to dynamically adjust/update the video properties on the 'buffer' filter on a frame-by-frame basis?
[23:39:56 CET] <JEEB> I don't know the 'buffer' filter, but there is a video filter framework and you can basically be as dynamic as you want regarding what you output
[23:40:14 CET] <BtbN> the buffer filter does not have runtime reconfig
[23:40:18 CET] <JEEB> but as I said, I have no idea what this 'buffer' filter is
[23:41:20 CET] <kepstin> zerodefect: yes, but the docs are wrong, the interface is over in libavfilter/buffersrc.h rather than libavfilter/vsrc_buffer.h
[23:41:40 CET] <zerodefect> Ok. I am using the overlay filter, so I want to adjust the spatial resolution of the overlay on the fly.
[23:41:49 CET] <zerodefect> kepstin: Ah :) Let me look
[23:42:28 CET] <kepstin> the 'buffer' (and 'abuffer') filters are designed specifically to be used programmatically, and have extra interfaces. They're pretty much useless in the ffmpeg cli.
[23:42:34 CET] <JEEB> if you need to adjust the output resolution etc you might have to flush the filter chain and re-create it
[23:42:49 CET] <kepstin> and yeah, a lot of filters won't be able to handle resolution changes
[23:43:12 CET] <JEEB> if the output resolution is always the same then you can keep a lot of stuff the same as long as you remember to scale etc at required points
[23:43:53 CET] <JEEB> for example if you have input->scale->output, that would work even with resolution changes I think. although in my case when I tested I had a PID switch there and thus switched around the decoder, too
[23:44:40 CET] <JEEB> what makes a re-creation to be required I think is stuff like "I want to change the output resolution" etc
[23:44:53 CET] <zerodefect> Ok. I'm only looking to change the overlay resolution.
[23:45:21 CET] <JEEB> as long as you scale your overlay to be within the bounds of the video frame I think it should be OK
[23:45:43 CET] <JEEB> although you would have to check the exact requirements from the code
[23:46:19 CET] <zerodefect> Can I use the 'avfilter_graph_send_command' to adjust both properties on buffer and overlay?
[23:46:23 CET] <kepstin> i think overlay doesn't care about that, it's simply not draw stuff that's outside the image boundaries
[23:46:53 CET] <kepstin> zerodefect: read the code on the filters in question to see if they implement the command callback and what it does (if it's not listed in the docs)
[23:46:57 CET] <JEEB> kepstin: I remember at one point checking the code but I might remember incorrectly
[23:47:14 CET] Action: JEEB had some fun times learning to generate a filter chain
[23:47:22 CET] <JEEB> (and  then actually start it up)
[23:47:59 CET] <JEEB> also I still wonder why ffmpeg.c doesn't utilize the function that dumps a graphical representation of the chain :P
[23:48:04 CET] <kepstin> zerodefect: it looks like you have to use the custom interface on buffersrc to change peroperies at runtime.
[23:48:08 CET] <JEEB> because that was rather nice for debugging
[23:48:53 CET] <zerodefect> Ok. Thanks guys.
[00:00:00 CET] --- Fri Jan 26 2018


More information about the Ffmpeg-devel-irc mailing list