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

burek burek021 at gmail.com
Wed Jan 31 03:05:02 EET 2018


[00:07:21 CET] <kepstin> with the new multithreading, i wouldn't be surprised if vp9 is faster than vp8 in many cases.
[04:01:06 CET] <mathcubes_> Yo can anyone help me?
[04:01:23 CET] <mathcubes_> I need help with getting nvenc working with OBS
[04:01:36 CET] <mathcubes_> I am using this
[04:01:37 CET] <mathcubes_> https://gist.github.com/Brainiarc7/3f7695ac2a0905b05c5b
[04:02:09 CET] <mathcubes_> But I am getting alot of makefile errors not existing
[04:02:09 CET] <mathcubes_> paste.ubuntu.com/26486952
[04:02:26 CET] <nfobot> mathcubes_: Available functions: muxer demuxer encoder decoder filter source sink indev outdev protocol bsf
[04:02:56 CET] <mathcubes_> @eveyone help
[08:52:43 CET] <dragmore88> hi. Anyone know if ffprobe or ffmpeg supports detecting/setting the EAC3 parameter : convsnroffst ? (its to enable the ability to downfilter eac3 to ac3 compliant systems)
[10:16:24 CET] <ArsenArsen> how do I read frames from x11grab/gdigrab/avfoundation inside C?
[12:12:09 CET] <GianlucaF> Hi guys, can someone help me about guidelines to create a video from multiple scenes, where a scene is a combination of Image + N lines of Text?
[12:13:33 CET] <GianlucaF> I think I need to create N intermediate videos ( one for each scene ) and then join each scene video with the next one ... or there is a more quick way to do this?
[12:48:57 CET] <hanna> I was sent here from #mpv: apparently, the `loudnorm` filter doesn't pass through PTS or something - using it with -af inside mpv (with the new filter code) causes seeking to take forever and prints invalid audio PTS warnings
[12:49:03 CET] <hanna> other filters like `dynaudnorm` don't have the same issue
[12:49:33 CET] <hanna> any clues?
[12:49:59 CET] <hanna> if you have mpv, just compile git master against ffmpeg git master and run `mpv --no-config -af loudnorm FILE.mp4` and seek around
[12:53:41 CET] <JEEB> Kyle Swanson and durandal_1707 are the latest who have touched that filter
[12:53:56 CET] <JEEB> looking at `gitk libavfilter/af_loudnorm.c`
[12:58:42 CET] <durandal_1707> JEEB: its small patch thats needed to fix it
[13:00:58 CET] <hanna> hmm using :print_format=summary it seems like the frame_type starts out as LINEAR but then switches to DYNAMIC after a seek
[13:01:00 CET] <hanna> that seems... unexpected
[13:01:56 CET] <hanna> interestingly enough even if :linear=false
[13:04:47 CET] <hanna> Hmm, no, that's only printed on uninit
[13:22:36 CET] <th3_v0ice> Why does this code needs to be there,     x4->params.i_fps_num = avctx->time_base.den;
[13:22:37 CET] <th3_v0ice>     x4->params.i_fps_den = avctx->time_base.num * avctx->ticks_per_frame;
[13:23:48 CET] <th3_v0ice> If I leave my timebase to be av_invq(framerate), my video has half of the fps, because of these two lines. Now I am sure there is a good reason why this is there and I am just wondering what is it?
[13:25:47 CET] <solidus-fractal> hey all, i'm trying to build ffmpeg on windows 10 in order to link the libs and use them in a visual studio 2017 project and have no clue where to start
[13:25:58 CET] <solidus-fractal> I've installed msys2 and followed a guild i found on the wiki
[13:26:18 CET] <solidus-fractal> but configure --enable-shared has been stuck on one command with config.log not advancing for about 20 minutes
[13:26:24 CET] <solidus-fractal> from mingw64.exe
[13:27:05 CET] <solidus-fractal> i launched mingw64.exe from my msys2 install directory from a msvc 2017 development shell
[13:27:22 CET] <solidus-fractal> and it appears to be compiling with gcc, the gthing its stuck on is..
[13:27:39 CET] <solidus-fractal> gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_WIN32_WINNT=0x0600 -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c11 -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast
[13:27:39 CET] <solidus-fractal> -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -Wno-unused-const-variable -Wno-bool-operation -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto -Wmaybe-uninitialized -c -o /tmp/ffconf.sTbDf0bk/test.o
[13:27:40 CET] <solidus-fractal> /tmp/ffconf.sTbDf0bk/test.c
[13:27:52 CET] <solidus-fractal> :X, sorry, forgot to pastebin that
[13:28:31 CET] <solidus-fractal> https://pastebin.com/gTcyfh93
[13:28:48 CET] <solidus-fractal> should i leave mingw64.exe running with the configure command up? i'm a bit lost
[13:29:00 CET] <solidus-fractal> will this even generate .libs i can use to link into a visual studio 2017 project?
[13:40:10 CET] <hanna> JEEB: durandal_1707: I think this patch fixes it https://0x0.st/sbQf.txt
[13:42:01 CET] <hanna> it certainly works around the issues, though I'm not sure if that's the correct fix
[13:44:42 CET] <esc-reality_> Could someone maybe take a look at this?: trac.ffmpeg.org/ticket/6949
[13:44:48 CET] <esc-reality_> Thanks in advance :$
[13:49:06 CET] <solidus-fractal> heyyy, it configured, is there anyway to build jus the libs with make :?
[13:55:33 CET] <sfan5> if you configure with --disable-programs it will just build the libs
[13:56:09 CET] <sfan5> configure always takes long on windows btw
[13:56:47 CET] <solidus-fractal> so if i just want the 64bit libs to link into msvc 2017 x64... i want ./configure --enable-shared --disable-programs :?
[13:56:57 CET] <solidus-fractal> and if i alreayd configured and reconfigure on top, will anything be foobar'd?
[13:57:25 CET] <solidus-fractal> sorry, this is my first time trying to get anything in mingw to play nicely with vs 2017, i've been spoiled by a life of linux only targets
[13:57:27 CET] <sfan5> 1) yes 2) no
[13:58:13 CET] <sfan5> though mingw usually generates .dll.a, which i'm not sure if MSVC can handle
[13:58:28 CET] <durandal_1707> hanna: AV_NOPTS_VALUE
[13:58:41 CET] <solidus-fractal> i dont think it can, but theres mention on the wiki of a tool called lib.exe that comes with msvc
[13:58:49 CET] <solidus-fractal> that can take lib.a's
[13:59:50 CET] <solidus-fractal> if i can get to apoint iwth some .lib.a's and header files linked into my vs solution, i'll be hapily tackling how to use lib.a's :P
[14:00:21 CET] <JEEB> dll.a is something htat MSVC can handle just fine
[14:00:35 CET] <JEEB> you just have to specify the .a file instead of just name without suffix
[14:00:46 CET] <JEEB> aka libthing.dll.a instead of libthing
[14:00:53 CET] <solidus-fractal> between learning visual studio stuff, then cmake on windows, writing cmake stuff, and now trying to figure out msys2.. i'm suprised anythign gets done in a windows build environment
[14:00:55 CET] <JEEB> because MSVC only searches for .lib
[14:01:11 CET] <solidus-fractal> JEEB, thanks!
[14:02:31 CET] <JEEB> solidus-fractal: also if you have the MSVC lib command in your PATH I think FFmpeg's build system should be able to utilize that one
[14:03:37 CET] <JEEB> although I'm not sure now that I grep a bit more
[14:04:12 CET] <JEEB> that said, .a files should work as long as you specify them with the extension(s) instead of just the name of the lib`
[14:04:27 CET] <solidus-fractal> JEEB, do you know any other gotchas / tips for compiling .libs and .dll's to link to a msvc project?
[14:04:55 CET] <solidus-fractal> would it pick up that lib.exe is there and use it instead if it was in my path or is that a param to configure
[14:06:56 CET] <GianlucaF> Hi guys, can someone help me about guidelines to create a single video from multiple scenes, where a scene is a combination of one image ( or video )  + N lines of Text?
[14:10:04 CET] <solidus-fractal> wait, lib.exe is a windows executable, that wont run inside mingw64 so how would it know hhow to use it :?
[15:01:25 CET] <Fyr> guys, what are the options for matroska container to make it playable even when the file is incomplete, like mov_flags for MP4?
[15:02:05 CET] <Fyr> when MP4 is incompletely downloaded, it can be played, but MKV can't.
[15:02:39 CET] <Fyr> at least, with the default options..
[15:03:00 CET] <sfan5> in my experience it's the other way around
[15:09:34 CET] <kepstin> mkv usually can be played but not seeked in that case
[15:09:44 CET] <kepstin> (or slow seeking because no index)
[15:10:11 CET] <kepstin> there's a few old versions of ffmpeg where mkv files couldn't be played as they were being written, but that's fixed now
[15:11:05 CET] <Fyr> ok, seeked.
[15:11:15 CET] <kepstin> anyways, there's two options: 1. use the -reserve-index-space <size> option, see the format docs for details
[15:11:26 CET] <kepstin> or 2. use the 'mkclean' tool to fix the file after it's made
[15:50:17 CET] <saml> -filter_complex framerate=fps=24001/1001    is this okay?
[15:50:22 CET] <saml> using fraction as framerate
[15:50:37 CET] <furq> sure
[15:50:38 CET] <saml> i don't see much difference than specifying 23.9
[15:50:42 CET] <saml> nice
[15:51:40 CET] <furq> the difference between 24000/1001 and 23.976 is about two frames an hour
[15:51:58 CET] <furq> so it's not just an academic distinction
[15:52:58 CET] <furq> 23.9 would be about 6800 frames an hour so definitely don't do that
[15:53:30 CET] <saml> okay thanks
[15:54:07 CET] <furq> also the framerate filter generally doesn't give good results
[16:01:20 CET] <saml> yup that's what I noticed
[16:01:33 CET] <saml> i assume it's because a lot of media is interlaced
[16:06:32 CET] <alexp> saml: just to make sure you didn't typo in your original question, it's 24000/1001, not 24001/1001
[16:42:31 CET] <saml> alexpigment, thanks               "avg_frame_rate": "24000/1001",
[16:49:05 CET] <alexpigment> saml: cool. just wanted to point that out in case you were about to run a bunch of encodes with a fractionally incorrect rate :)
[16:50:19 CET] <furq> saml: no it doesn't give results because it just does a linear blend
[16:50:38 CET] <furq> normally you want fps or minterpolate (or telecine if you're going from 30 to 24)
[16:51:00 CET] <furq> i put that in parens so that people wouldn't yell at me for recommending creating new telecined content in 2018
[16:51:38 CET] <alexpigment> furq: as long as ATSC and DVB still exist, many people will be telecining in 2018
[16:51:53 CET] <alexpigment> and in 2019
[16:51:56 CET] <alexpigment> and so on
[16:52:43 CET] <kepstin> I mean, you can switch modes in ATSC, I think? but why bother when you could just statically set your encoder for 1080i and telecine stuff that doesn't match :/
[16:53:00 CET] <alexpigment> really?
[16:53:01 CET] <JEEB> most broadcast specs let you code the video rather freely regarding that
[16:53:05 CET] <alexpigment> i didn't think atsc had a 24fps mode
[16:53:14 CET] <JEEB> yea, 24Hz I'm not sure
[16:53:21 CET] <JEEB> but I've seen soft telecine at least
[16:53:38 CET] <JEEB> as in, actual coded was not full rate, and then headers tell the decoders to add fields
[16:53:42 CET] <alexpigment> just saying, most networks still telecine
[16:53:47 CET] <JEEB> sure
[17:01:48 CET] <wouter> hi -- what does ffmpeg do if I give it "-safe 0" when concatenating files with the concat demuxer?
[17:02:08 CET] <wouter> I see that in the examples everywhere, but I can't find the right man page to see what -safe does and what the 0 means...
[17:02:15 CET] <furq> it just disables the protocol whitelist iirc
[17:02:22 CET] <furq> normally you'd need to prepend every entry with file://
[17:02:49 CET] <furq> !demuxer concat @wouter
[17:02:49 CET] <nfobot> wouter: http://ffmpeg.org/ffmpeg-formats.html#concat-1
[17:02:53 CET] <furq> it's listed in there iirc
[17:03:46 CET] <kepstin> wouter: it's basically a protection so that someone can't make a playlist you play off the internet which loads your local files or whatnot.
[17:05:31 CET] <wouter> okay, thanks
[17:09:03 CET] <JEEB> &34
[17:13:15 CET] <saml> furq, i don't understand between linear blend vs. minterpolate
[17:13:18 CET] <saml> i'll study
[17:13:41 CET] <durandal_1707> study hard
[17:14:58 CET] <saml> okay i give up. let's go shopping
[17:15:27 CET] <furq> all you really need to know is that minterpolate is much better but also really slow
[17:17:23 CET] <saml> Convert the video to specified frame rate using motion interpolation.
[17:17:35 CET] <saml> oh so I should use minterpolate instead of framerate filter
[17:20:07 CET] <furq> it depends what you're doing
[17:20:26 CET] <Diag> furq: can ffmpeg do minterpolate realtime
[17:20:32 CET] <saml> i'm doing psnr :P
[17:20:34 CET] <Diag> from a capture device
[17:20:46 CET] <furq> Diag: i doubt it
[17:21:01 CET] <Diag> how slow is it
[17:21:12 CET] <furq> saml: if you're trying to compare two clips of different framerates then every method is going to give terrible results
[17:23:13 CET] <saml> furq, yeah. so far best result is: ffprobe on main.  and encode reference losslessly to match main's spec. and use that as ref
[17:23:32 CET] <saml> but it's slow to create that lossless ref
[17:23:47 CET] <saml> but it works!
[17:24:18 CET] <saml> encoding 4k resolution clips is soooooooo slow
[17:24:37 CET] <saml> i wonder if there's a way to launch multiple machines with multiple cores and somehow distribute encoding
[17:24:58 CET] <saml> let's say i'm youtube. i'm rich
[17:25:17 CET] <saml> there's a giant 4k resolution video being uploaded (or livestreamed)
[17:25:40 CET] <saml> so i panic and give up
[17:25:53 CET] <saml> my poor web server
[17:27:53 CET] <saml> i think youtube uses mapreduce and bigdata in this scenario cause google
[17:27:57 CET] <kepstin> i'm 90% sure youtube already does that. for streamable formats I think they start the encoding as you upload too.
[17:28:43 CET] <alexpigment> well, youtube does it incrementally by resolution too
[17:28:45 CET] <saml> if i split each frame into tiles and distributed workers encode each tile and combine later on, encoding quality would suffer, right?
[17:28:51 CET] <saml> depending on tile size.. etc
[17:28:52 CET] <alexpigment> so the 360p is first, 480p, 720p, then 1080p, etc
[17:29:42 CET] <saml> i read twitch wrote their own so that video is decoded only once  and do 360p, 480p... etc in parallel using already decoded stream
[17:29:44 CET] <kepstin> saml: you'd have to re-encode again later to combine them, so that's just a waste of effort. The way you actually do it is split it up into chunks by time (so 10s or whatever), and encode each chunk separately. Then it's just concatenation to merge them.
[17:30:30 CET] <furq> well the nice thing about youtube is you don't need to merge them
[17:30:46 CET] <furq> or you wouldn't need to if it wasn't for apple and windows xp
[17:31:29 CET] <saml> where you chunk would affect encoding quality right? if one chunk happens to have similar colors... etc
[17:32:06 CET] <kepstin> saml: for segmented streaming, the video is already being chunked/split, so there's no difference.
[17:33:34 CET] <kepstin> it's just the same as encoding video with a fixed gop size.
[19:09:12 CET] <saml> yeah HLS will die i think
[19:09:22 CET] <saml> what is gop?
[19:09:42 CET] <saml> The Republican Party, commonly referred to as the GOP
[19:09:58 CET] <saml> group of pictures
[19:10:13 CET] <klaxa> why should hls die?
[19:10:48 CET] <saml> cause Apple's players don't adhere to their published "spec"
[19:11:12 CET] <saml> it won't die.
[19:29:20 CET] <saml> so during encoding (for output),  -r duplicates or drops frames to match specified fps.   is it same as minterpolate?
[19:31:19 CET] <saml> why would you convert framerate  of video during encoding?
[19:31:30 CET] <saml> some devices only support specific frame rate? web optimized?
[19:31:55 CET] <c_14> no, it's the same as the fps filter
[19:31:58 CET] <c_14> (because that's all it does)
[19:34:57 CET] <alexpigment> saml: there are lots of reasons to convert framerate during encoding
[19:35:01 CET] <alexpigment> device compatibility is one
[19:35:27 CET] <alexpigment> also, format compatibility (e.g. blu-ray can't support 1080p60 officially)
[19:36:05 CET] <alexpigment> the other reason would be to convert variable frame rate to constant frame rate
[19:36:20 CET] <alexpigment> because of either player compatibility or some sort of standard
[19:36:50 CET] <saml> ah i see.  with -r 30  -acodec copy, there's audio sync issue. why?
[19:37:03 CET] <saml> is it because timestamp(?) gets re-written?
[19:37:25 CET] <alexpigment> hmmm, i'm not sure about that one
[19:37:29 CET] <saml> like something says 1 minute mark is Nth frame but now it's Mth frame. but audio is the same
[19:37:29 CET] <alexpigment> what is the source frame rate?
[19:37:37 CET] <saml> 120fps
[19:37:50 CET] <alexpigment> and the -r is *after* the input?
[19:37:57 CET] <saml> yeah
[19:38:09 CET] <alexpigment> just to be clear, the speed of the video isn't changing, right?
[19:38:22 CET] <saml> i'm not sure how to teste
[19:38:30 CET] <alexpigment> well, does it look 4x slower?
[19:39:09 CET] <alexpigment> anyway, presumably you've also done -r 120 and confirmed that that problem doesn't happen there either, right?
[19:39:25 CET] <saml> ah
[19:39:31 CET] <alexpigment> if it happens with -r 120, then obviously the -r is not the culprit
[19:40:25 CET] <saml> that's a good idea to find culprit.  (i wasn't the doing the encoding. just was answering someone's question from different channel
[19:40:36 CET] <alexpigment> ah
[19:41:27 CET] <alexpigment> well, it's either a) the framerate is additionally being defined as 30 before the input, and therefore the speed is changing, or b) the simple act of encoding the video and copying the audio is causing the sync issue
[19:41:36 CET] <alexpigment> my 2 cents, anyway
[19:50:25 CET] <elmarikon> cheers everyone!
[19:50:42 CET] <elmarikon> Hasanyone tried the new libvmaf-Filter in ffmpeg, yet?
[19:51:13 CET] <elmarikon> I had huge problems compiling that thing, and now it won't run...
[19:51:31 CET] <elmarikon> meaning ffmpeg works, but the filter doesn't.
[19:53:30 CET] <elmarikon> this is all I get: https://pastebin.com/eBnV0AjE
[19:53:47 CET] <elmarikon> can anyone suggest, what to do, plz!?
[19:56:35 CET] <saml> Conversion failed!
[19:56:47 CET] <saml> [Parsed_libvmaf_0 @ 00000000028635c0] libvmaf encountered an error, check log for details
[19:56:51 CET] <furq> does the vmaf log say anything
[19:56:53 CET] <saml> is there log for libvmaf?
[19:57:20 CET] <saml> libvmaf=log_path=/tmp/yolo.log
[19:57:58 CET] <saml> https://www.ffmpeg.org/ffmpeg-all.html#libvmaf  wow libvmaf comes with psnr :)
[19:58:06 CET] <saml> i've been dealing with psnr for too long
[20:11:26 CET] <elmarikon> saml: there is no log...
[20:11:56 CET] <elmarikon> i also tried to define the log-path. nothing...
[20:40:52 CET] <saml> log_path bro
[20:41:02 CET] <saml> full cli and example video would help
[20:41:07 CET] <saml> so that i can study :P
[20:41:27 CET] <geuis> hey folks, I'm trying to build ffmpeg from git head with librsvg enabled but getting the error "ERROR: librsvg-2.0 not found using pkg-config". Config paste is https://pastebin.com/p4YHJFLU
[20:51:16 CET] <saml> geuis, pkg-config --cflags --libs librsvg  does this work?
[20:51:22 CET] <saml> not sure what's module name for librsvg
[20:53:14 CET] <JEEB> geuis: see ffbuild/config.log
[20:53:17 CET] <JEEB> for exact failure
[20:53:38 CET] <atomnuker> hey someone's using the rsvg wrapper I wrote, awesome, didn't think anyone else would find it useful
[20:58:13 CET] <geuis> This is the last chunk in the config before it fails
[20:58:14 CET] <geuis> gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -I/usr/local/apps/ffmpeg/ffmpeg_build/include -std=c11 -fomit-frame-pointer -fPIC -pthread -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/u
[20:59:28 CET] <geuis> Sorry that didn't paste. Included here https://pastebin.com/KD0Tq3dk
[20:59:55 CET] <geuis> Basically this: /usr/bin/ld: cannot find -lselinux collect2: error: ld returned 1 exit status ERROR: librsvg-2.0 not found using pkg-config
[21:03:03 CET] <geuis> @atomnuker if I can get librsvg to work, it potentially will solve a big feature problem for a video creation pipeline I'm building
[21:03:24 CET] <geuis> it *was* building on Friday, but as of yesterday this error started
[21:03:25 CET] <JEEB> geuis: somehow you're getting selinux's library required, which you don't have installed
[21:03:46 CET] <geuis> that's weird.
[21:04:04 CET] <JEEB> that comes out of some pkg-config check
[21:04:10 CET] <JEEB> feel free to check which .pc file has it
[21:04:44 CET] <saml> librsvg must be secure cause selinux
[21:05:15 CET] <saml> dpkg -L librsvg2-dev  | grep \.pc
[21:05:44 CET] <saml> how much memory do I need for interpolate?
[21:06:02 CET] <saml> Failed to inject frame into filter network: Cannot allocate memory
[21:06:10 CET] <Diag> how much do you have
[21:07:04 CET] <saml> https://gist.github.com/saml/5b4f4869558e0a2884014ec64c8e000e
[21:07:13 CET] <saml> I have 16GB big data
[21:09:36 CET] <geuis> @JEEB root at cbaea585c934:/# dpkg -L librsvg2-dev  | grep \.pc
[21:09:37 CET] <geuis>  /usr/lib/x86_64-linux-gnu/pkgconfig/librsvg-2.0.pc
[21:09:52 CET] <saml> pastebin the content of .pc?
[21:11:39 CET] <geuis> https://pastebin.com/sWfzJhgj
[21:12:24 CET] <saml> hrm that doesn't have selinux  listed
[21:12:44 CET] <atomnuker> what does pkg-config librsvg-2.0 --debug show?
[21:14:17 CET] <geuis> checking
[21:15:31 CET] <saml> which ubuntu version is this?
[21:15:37 CET] <saml> i could try to do the same in docker
[21:17:13 CET] <geuis> its debian:stretch
[21:17:39 CET] <geuis> specifically, my base image is node:stretch https://hub.docker.com/_/node/
[21:18:53 CET] <saml> wow node.js
[21:21:49 CET] <geuis> yeah super yummy. The other services calling ffmpeg are node based, so I'm building ffmpeg on the same base image and copying the cached binary over
[21:23:41 CET] <geuis> @atomnuker https://pastebin.com/KkCef9Ua
[21:23:58 CET] <saml> root at 3c846e00654c:/# pkg-config --libs --cflags librsvg-2.0 |grep selinux
[21:24:08 CET] <saml> returns nothing. so, I don't think it's a problem with librsvg-2.0
[21:24:30 CET] <geuis> on an aside, I also tried this with ubuntu:16.04 yesterday as the base docker image and had the same issue
[21:25:40 CET] <saml> geuis, what is FFMPEG_VERSION?
[21:25:48 CET] <geuis> 3.4.1
[21:26:02 CET] <geuis> its normally passed in as a build arg
[21:26:37 CET] <JEEB> feel free to grep through ffbuild/config.log to see at what point selinux came up
[21:26:49 CET] <geuis> I also cloned the git head for ffmpeg in the last hour and had the same thing happen
[21:26:54 CET] <saml> PKG_CONFIG_PATH="${cwd}/ffmpeg_build/lib/pkgconfig" ./configure ...
[21:26:57 CET] <saml> I think that's the problem
[21:27:03 CET] <saml> why set PKG_CONFIG_PATH ?
[21:27:07 CET] <JEEB> why not?
[21:27:10 CET] <JEEB> it appends to the search path
[21:27:16 CET] <JEEB> and he probably has some things he's built himself
[21:27:28 CET] <saml> ah didnn't know it appends
[21:27:33 CET] <JEEB> PKG_CONFIG_LIBDIR
[21:27:35 CET] <JEEB> is the override one
[21:27:46 CET] <JEEB> (which you use when cross-compiling f.ex.)
[21:28:05 CET] <saml>  PKG_CONFIG_PATH="${cwd}/ffmpeg_build/lib/pkgconfig" pkg-config --libs --cflags librsvg-2.0
[21:28:10 CET] <saml> hrm, that works... so i'm wrong
[21:28:47 CET] <geuis> actually that's just there based on the compilation example given at https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
[21:29:23 CET] <JEEB> anyways, as I noted - grep around ffbuild/config.log
[21:29:27 CET] <JEEB> see what exactly brought in selinux
[21:29:41 CET] <geuis> with the exception of some extra vars like FFMPEG_VERSION, its basically the example instructions
[21:29:53 CET] <JEEB> also as an unrelated recommendation `--disable-autodetect` is a nice thing
[21:30:08 CET] <JEEB> it makes sure FFmpeg's configure doesn't try to do anything you don't ask it to
[21:30:20 CET] <JEEB> (exceptions are still around, but in general)
[21:30:22 CET] <geuis> selinux doesn't appear until the very end of the config.log
[21:30:30 CET] <geuis> check_func_headers librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -lrsvg-2 -lm -lgio-2.0 -lz -lresolv -lselinux -lgdk_pixbuf-2.0 -lm -lgmodule-2.0 -pthread -ldl -lpng16 -lm -lz -lm 
[21:31:06 CET] <JEEB> could be either cairo or glib
[21:31:17 CET] <JEEB> although not sure at all
[21:34:18 CET] <geuis> is this something that can be installed? `cannot find -lselinux`
[21:34:31 CET] <JEEB> yes
[21:34:38 CET] <JEEB> selinux development package would contain that library
[21:34:51 CET] <JEEB> it comes out of somewhere not FFmpeg, that's for sure :D
[21:35:03 CET] <JEEB> (since FFmpeg is only querying pkg-config for things)
[21:36:01 CET] <geuis> MUCH SUCCESS!
[21:36:28 CET] <geuis> root at b53c70ad9b33:/usr/local/apps/ffmpeg/ffmpeg_sources/ffmpeg-3.4.1# apt-get install libselinux1-dev
[21:36:35 CET] <geuis> and ./configure worked
[21:36:53 CET] <JEEB> yes because whatever told you it needed selinux didn't have selinux's library required packaging-wise :D
[21:37:10 CET] <JEEB> although it still raises eyebrows for me
[21:39:26 CET] <saml> while read -r x; do pkg-config --libs "$x" | grep selinux && echo "$x"; done < <(pkg-config --list-all |awk '{{print $1}}')
[21:39:42 CET] <saml> nothing in pkg-config requires -lselinux
[21:40:37 CET] <JEEB> a) use the PKG_CONFIG_PATH override you were using b) try --static in pkg-config parameters
[21:41:08 CET] <JEEB> saml: well whatever it is FFmpeg isn't coming up with it by itself
[21:43:35 CET] <saml> i blame node.js
[21:43:54 CET] <klaxa> you can never go wrong with that
[21:44:17 CET] <geuis> seconded
[21:45:34 CET] <geuis> @JEEB --static is already in there   ./configure \     --prefix="${cwd}/ffmpeg_build" \     --pkg-config-flags="--static" \
[21:45:59 CET] <JEEB> no, in your test
[21:46:04 CET] <JEEB> since you tested with --static
[21:48:48 CET] <geuis> oh you mean remove --static?
[21:48:52 CET] <JEEB> no
[21:49:00 CET] <JEEB> I mean in your pkg-config check-up for selinux
[21:49:02 CET] <JEEB> :P
[21:49:08 CET] <JEEB> ADD --static
[21:49:23 CET] <JEEB> to pkg-config's flags for --libs "${x}"
[21:49:54 CET] <geuis> this? pkg-config --cflags --libs --static librsvg
[21:50:16 CET] <JEEB> --libs should be enough, but yes. that while loop you posted just some time ago here :P
[21:50:32 CET] <geuis> sorry I don't do much of this kind of stuff =)
[21:50:49 CET] <geuis> think that was saml
[21:51:16 CET] <geuis> root at b53c70ad9b33:/usr/local/apps/ffmpeg/ffmpeg_sources/ffmpeg-3.4.1# pkg-config --cflags --libs --static librsvg Package librsvg was not found in the pkg-config search path. Perhaps you should add the directory containing `librsvg.pc' to the PKG_CONFIG_PATH environment variable No package 'librsvg' found
[21:51:45 CET] <geuis> echo $PKG_CONFIG_PATH /usr/local/apps/ffmpeg/ffmpeg_build/lib/pkgconfig
[21:52:16 CET] <JEEB> how did you just get it right like a few dozen lines upwards in the chat?
[21:52:22 CET] <JEEB> and now suddenly get it wrong again?
[21:52:53 CET] <JEEB> librsvg-2.0 is what you were posting earlier
[21:53:36 CET] <geuis> not smart, that why
[21:53:37 CET] <saml> grep -r selinux /usr/lib/x86_64-linux-gnu/pkgconfig/
[21:53:46 CET] <saml> /usr/lib/x86_64-linux-gnu/pkgconfig/gio-2.0.pc:Libs.private: -L/usr/lib/x86_64-linux-gnu -lz  -lresolv  -lselinux
[21:53:53 CET] <saml> it's gio, it seems
[21:54:11 CET] <JEEB> and then that gets grabbed by some library's privates
[21:54:14 CET] <geuis> yeah --static provides some more details
[21:54:14 CET] <saml> i guess gio is gnome io?
[21:54:48 CET] <JEEB> geuis: basically --static means that pkg-config will try harder to find dependencies. for shared libraries it generally isn't needed, but if you have static ones it helps with those
[21:55:07 CET] <JEEB> (mostly because the format for static libraries doesn't tell you if it depends on any shared ones)
[21:55:37 CET] <geuis> gotcha
[23:00:27 CET] <saml> wow bro psnr cray
[23:01:11 CET] <saml> so, unless i know how video's framerate is generated (using -r or -filter framerate ...), I cannot calculate a good PSNR
[23:02:19 CET] <alexpigment> saml: i don't want to keep asking you about this, but again, are you comparing two videos with different frame rates to get PSNR?
[23:02:58 CET] <saml> sorry
[23:03:04 CET] <saml> yup i am
[23:03:10 CET] <alexpigment> stop doing that :)
[23:03:21 CET] <saml> yup that's what i'm learning
[23:03:35 CET] <saml> i had to try and convince myself. such foolish
[23:03:36 CET] <alexpigment> frame rate and frame size need to be the exact same
[23:03:48 CET] Action: saml googles frame size
[23:03:52 CET] <alexpigment> resolution
[23:03:58 CET] <alexpigment> e.g. 1920x1080
[23:04:09 CET] <alexpigment> also, scan type of course (progressive, interlaced)
[23:04:16 CET] <alexpigment> most other things can vary
[23:04:20 CET] <alexpigment> those elements can't
[23:05:21 CET] <alexpigment> psnr is really only useful to measure the effects of encoding with a lower *bitrate* compared to a soure video
[23:05:57 CET] <JEEB> PSNR is basically a calculation of how something is different from another :P
[23:06:00 CET] <JEEB> for video that being frames
[23:06:04 CET] <alexpigment> so i have my source - say that it's 100mbps - and I encode it to 2mbps, PSNR can give me a very basic description of how much quality i've lost in that process
[23:06:29 CET] <alexpigment> but the numbers are really only useful in relation to other comparisons
[23:07:22 CET] <alexpigment> for example, if i encode a 5mbps video from that 100mbps source, i'd ideally compare the psnr results of the 2mbps and 5mbps, so see at what bitrate i start dropping in quality significantly
[23:07:42 CET] <JEEB> against the original of course
[23:07:53 CET] <JEEB> so you have PSNR values against the original, and then you can plot them or whatever
[23:08:01 CET] <alexpigment> JEEB: of course. i'm talking about how the psnr for one video doesn't mean anything really
[23:08:22 CET] <alexpigment> it's good to compare the psnr results between two different videos (and the psnr is generated from comparing against the source)
[23:08:43 CET] <JEEB> well I wouldn't say good, but when you know what exactly it is - it gives you a value
[23:09:04 CET] <alexpigment> we're saying the exact same thing jeeb
[23:09:16 CET] <JEEB> could very well be
[23:09:41 CET] <alexpigment> point being: psnr is a generally meaningless number in a vacuum
[23:31:12 CET] <saml> so, psnr is useful when everything is same but -vcodec
[23:33:57 CET] <kepstin> nah, comparing psnr across different codecs isn't that useful
[23:34:21 CET] <kepstin> it's kinda useful when everything is the same except bitrate, i guess?
[23:44:08 CET] <DHE> PSNR implies that image quality can be expressed mathematically when codecs are usually tuned to the human eye
[23:47:01 CET] <kepstin> yeah, and you can see that with the x264 tune options. The default is to use psy tunings, with reduce psnr; you can alternatively choose to optimize for psnr (or ssim) which reduces visual quality a bit.
[23:47:58 CET] <kepstin> codecs tuned for psnr tend to make things look kind of smooth and blurry when they don't have enough bitrate
[23:48:18 CET] <alexpigment> one of the reasons i hate bitrate-starved H.264 :)
[23:48:38 CET] <alexpigment> sure, it doesn't get blocky, but it looks like entire sections have vaseline rubbed on them
[23:48:43 CET] <kepstin> x264's defaults seem to try to preserve energy instead, so it'll leave blocking in textured areas rather than smooth them out.
[23:48:59 CET] <kepstin> depends on other settings too tho
[23:50:12 CET] <kepstin> if your source was really grainy tho, well, that'll never look good at low bitrate :)
[23:50:28 CET] <alexpigment> very true
[00:00:00 CET] --- Wed Jan 31 2018


More information about the Ffmpeg-devel-irc mailing list