[Ffmpeg-devel-irc] ffmpeg.log.20171004
burek
burek021 at gmail.com
Thu Oct 5 03:05:01 EEST 2017
[00:45:57 CEST] <Johnjay> the -stream_loop option is cool
[00:46:09 CEST] <Johnjay> But how do I combine that with a fixed time interval?
[00:46:24 CEST] <Johnjay> i.e. loop this file x times until you reach 15s or 67s etc?
[00:58:58 CEST] <klaxa> Johnjay: -t 15 or -t 67
[01:02:44 CEST] <Johnjay> hrm ok
[01:04:22 CEST] <klaxa> if you have an audiofile length you want to match use -shortest
[01:28:22 CEST] <Johnjay> anybody compile ffmpeg under msys2?
[01:28:53 CEST] <JEEB> I've done that OK recently, although I get my mingw-w64 toolchain separately due to :reasons:
[01:31:29 CEST] <Johnjay> i'm still a little confused at the difference between mingw, mingw-w64, msys, msys2
[01:31:41 CEST] <Johnjay> right now I have msys2 and it says it has mingw-32 and mingw-64 subsystems or something
[01:32:54 CEST] <JEEB> msys2 is a set of tools based on cygwin, mingw is also called "ye olde mingw" and not utilized by anyone except for perverts wanting windows 2000 compatibility. mingw-w64 is a fork of ye olde mingw, which originally was meant to add 64bit windows compatibility. after a while it ended up being just better for any modern windows version than ye olde mingw
[01:33:53 CEST] <JEEB> generally you can think of "I'm using msys2 tools and package management to cross-compile for native 32bit or 64bit windows using mingw-w64 toolchains"
[01:34:42 CEST] <JEEB> the main difference between the three shortcuts is what toolchain is the default (aka "without a cross-prefix")
[01:35:38 CEST] <Johnjay> i tried compiling zlib as a test but it needs some weird patch or something b/c I got a library error because there is no wopen library
[01:35:42 CEST] <JEEB> if I recall correctly with the msys2 shell the default gcc/ld are for msys2, with the 32bit mingw one it's what otherwise would be i686-w64-mingw32-gcc/ld, and with the 64bit one it would be x86_64-w64-mingw32-gcc/ld
[01:36:09 CEST] <JEEB> Johnjay: you probably used the wrong Makefile or so
[01:36:24 CEST] <Johnjay> I just downloaded zlib from the site and used the makefile it has after running configure
[01:36:27 CEST] <JEEB> or you are building for msys2 and not mingw-w64
[01:36:45 CEST] <Johnjay> i don't understand clearly teh difference there but ok
[01:36:46 CEST] <JEEB> I distinctly remember the configure in zlib not working on mingw-w64
[01:36:48 CEST] <Johnjay> one is posix or something
[01:36:53 CEST] <Johnjay> correct
[01:37:18 CEST] <JEEB> your confusion is because all of them are for your "windows binaries that run on windows" :P
[01:37:30 CEST] <JEEB> msys2 stuff all depends on the msys2 cygwin libraries
[01:38:06 CEST] <Johnjay> so msys2 is basically taking all the mingw and mingw-64 stuff and making it usable
[01:38:08 CEST] <JEEB> so for a lot of stuff msys2-targeting tools (f.ex. what by default is "gcc") the result is more *nix like, but it's not normal windows
[01:38:12 CEST] <Johnjay> for teh binaries on teh windoze
[01:38:36 CEST] <JEEB> msys2 is the tools and package management for you if you want to build stuff for native windows (mingw-w64 32bit or 64bit)
[01:38:45 CEST] <Johnjay> ah ok
[01:38:53 CEST] <JEEB> then you can install mingw-w64 toolchains with msys2 package management
[01:39:04 CEST] <Johnjay> right that's what the tutorial i followed did
[01:39:13 CEST] <Johnjay> I went to the ffmpeg snapshot dir and typed ./configure and now it's frozen
[01:39:19 CEST] <Johnjay> so... yeah
[01:39:42 CEST] <JEEB> and to make you even more confused if you use the mingw shortcuts the mingw-w64 toolchains it automagically makes the matching mingw-w64 toolchain the one without a prefix
[01:39:50 CEST] <JEEB> so while usually "gcc" would be the msys2 one
[01:40:01 CEST] <JEEB> if you start with the mingw one, it will be the mingw-w64 one
[01:40:26 CEST] <JEEB> Johnjay: the configure script will take some time because fork() is slow as hell on windows
[01:40:34 CEST] <Johnjay> ok.
[01:40:36 CEST] <JEEB> on my 4790K I think half a minute or so?
[01:40:47 CEST] <Johnjay> yes i see it has mingw-w64,32, and msys subsystems
[01:40:54 CEST] <Johnjay> and gcc works on one but not the other
[01:40:56 CEST] <Johnjay> all very confusing
[01:41:19 CEST] <JEEB> yes, since it's trying to hide stuff from you with them :)
[01:41:46 CEST] <Johnjay> ok i installed pkg-config like it wanted
[01:41:50 CEST] <Johnjay> restarting
[01:42:00 CEST] <Johnjay> i ran the mingw-w64 one if it matters. i'm on win7 64 bit
[01:42:07 CEST] <JEEB> you need nasm and yasm for x86_64 builds
[01:42:13 CEST] <JEEB> for hand-written SIMD
[01:42:22 CEST] <Johnjay> erm ok, but not for 32 bit build?
[01:42:23 CEST] <JEEB> which you do want to take advantage of
[01:42:26 CEST] <Johnjay> ok
[01:42:30 CEST] <JEEB> well in general for x86
[01:42:46 CEST] <JEEB> it will tell you "are you really sure?" if yasm/nasm can't be found
[01:43:04 CEST] <JEEB> and you have to specifically disable asm to make that error go away and successfully configure
[01:43:05 CEST] <Johnjay> here's the tutorial I used: https://github.com/orlp/dev-on-windows/wiki/Installing-GCC--&-MSYS2
[01:43:54 CEST] <JEEB> well there's two targets for mingw-w64 (yes, due to historical reasons it's called like that even though it targets both i686 and x86_64)
[01:44:11 CEST] <JEEB> (since mingw-w64 started as a project to enable win64 support)
[01:44:17 CEST] <Johnjay> right
[01:44:21 CEST] <Johnjay> i understand that much at least
[01:44:37 CEST] <Johnjay> whenever I do a pacman -S it gives me a i686 and a x86_64 and a msys package
[01:44:44 CEST] <JEEB> yes
[01:44:49 CEST] <Johnjay> but when I installed tar it installed it for all 3 subsystems
[01:45:12 CEST] <Johnjay> and emacs ran in a gui window for i686 but command line for msys lol
[01:45:26 CEST] <JEEB> yea they keep some stuff weirdly separated
[01:46:02 CEST] <Johnjay> it says i have yasm in stalled already
[01:46:06 CEST] <Johnjay> but i'm installing nasm just to be safe
[01:46:10 CEST] <Johnjay> now what
[01:46:12 CEST] <Johnjay> just make?
[01:46:27 CEST] <JEEB> anyways, if you do gcc --version you should see whichever target your current "default" GCC is doing
[01:46:37 CEST] <JEEB> if it's msys or mingw-w64
[01:46:56 CEST] <Johnjay> gcc.exe (Rev1, Built by MSYS2 project) 7.2.0
[01:47:05 CEST] <JEEB> later I would guess
[01:47:12 CEST] <JEEB> in the version output
[01:47:23 CEST] <Johnjay> that's it. the rest is a coypright
[01:47:32 CEST] <JEEB> bleh
[01:47:34 CEST] <Johnjay> i'm in the 64 bit subsystem though
[01:47:43 CEST] <Johnjay> it says it wants to install in /usr/local
[01:47:46 CEST] <Johnjay> so i'm gonna try make install
[01:47:54 CEST] <JEEB> ah
[01:48:00 CEST] <JEEB> gcc -dumpmachine
[01:48:14 CEST] <Johnjay> the configure script dumped a long list of hwaccels and supported decoders and whatnot
[01:48:18 CEST] <JEEB> yes
[01:48:25 CEST] <JEEB> it will dump all the things it could find/enable
[01:48:36 CEST] <Johnjay> resample_lavr_opts is deprecated <--- first warning
[01:48:45 CEST] <JEEB> warnings like that are usual in FFmpeg
[01:48:53 CEST] <Johnjay> this is going much more smoothly than on my raspberry pi running raspbian
[01:48:53 CEST] <JEEB> when we deprecate stuff we can't yet remove it
[01:49:09 CEST] <JEEB> basically it's warning us that we have deprecated some functionality
[01:49:21 CEST] <Johnjay> deprecate usually means to me the compiler saying you can't do X because X is deprecated
[01:49:34 CEST] <JEEB> deprecated means that "this will be removed in the future"
[01:49:45 CEST] <JEEB> in FFmpeg that's usually in two versions' time
[01:49:46 CEST] <Johnjay> er, so it's something you yourself mark in the code?
[01:49:48 CEST] <JEEB> yes
[01:49:54 CEST] <Johnjay> hmm ok didn't know you could do that
[01:49:56 CEST] <JEEB> then after a release has gone or two
[01:50:10 CEST] <Johnjay> so you are a regular developer?
[01:50:15 CEST] <JEEB> you cut it off and if someone didn't notice the warning when building their own stuff they will get a fat error :P
[01:50:37 CEST] <JEEB> but as I said, there can be very long distances between deprecation and removal
[01:50:57 CEST] <JEEB> I think we recently removed some code that was deprecated... quite a few years ago
[01:51:14 CEST] <Johnjay> it's compiling libavformat/* at the moment
[01:51:15 CEST] <JEEB> I'm just a random developer in some components within FFmpeg
[01:51:31 CEST] <Johnjay> unknown conversion type character 's' as in '%s' in something
[01:51:38 CEST] <Johnjay> heh fair enough
[01:51:50 CEST] <Johnjay> i'm just a random user who uses ffmpeg to encode youtube vids for my workouts
[01:52:06 CEST] <Johnjay> i've managed to get enough of this blasted windows scripting to work for me
[01:52:08 CEST] <JEEB> everything from "stuff related to work" to "oi, the blu-ray subtitles have wrong colors"
[01:52:20 CEST] <Johnjay> to the point i can just download the youtube video and have ffmpeg automatically convert it when it finishes downloading
[01:52:30 CEST] <Johnjay> ah ok
[01:55:14 CEST] <JEEB> but yea, if you want to get the real feeling of how the stuff you're doing should go, you should be using the full prefix :) that way it's the exact same thing in cygwin, standard msys2 and linux etc. and then you just switch from mingw-w64 to some ARM toolchain and you'll be able to build for your rpi on a PC :P
[01:55:22 CEST] <johnjay_> now it's on libavcodec
[01:55:41 CEST] <JEEB> also you shouldn't generally do make install if you just want the ffmpeg.exe, since that gets made just fine
[01:56:03 CEST] <johnjay_> ah i think i disc'd and missed what you said before
[01:56:13 CEST] <johnjay_> what is the full prefix and how does it make cross compiling easier?
[01:56:22 CEST] <JEEB> it just gets you used to the idea :P
[01:56:35 CEST] <johnjay_> cross compiling for my rpi from msys2 would be nice. running a linux virtual machine can be costly
[01:56:36 CEST] <JEEB> and if you want the headers/libraries you generally then want to use your own prefix so you know where you have your stuff
[01:56:58 CEST] <JEEB> dunno if msys2 has it packaged. if VM is costly then maybe the windows subsystem for linux thing?
[01:57:10 CEST] <johnjay_> what's wrong with LIBRARY_PATH=/mingw64/lib and INCLUDE_PATH=/mingw64/include?
[01:57:12 CEST] <JEEB> anyways, basics are the same for all architectures
[01:57:31 CEST] <JEEB> Johnjay: that's where the package management puts stufF?
[01:57:35 CEST] <johnjay_> I can check for any package with pacman -S if you give me the name
[01:57:58 CEST] <JEEB> I usually put my development stuff under /home/jeeb/ffmpeg_test_root etc
[01:58:16 CEST] <johnjay_> the tutorial i read suggested passing those parameters to gcc
[01:58:22 CEST] <JEEB> lol
[01:58:29 CEST] <JEEB> why would you need to do that
[01:58:35 CEST] <johnjay_> idk lol
[01:58:37 CEST] <JEEB> the compiler should know its sysroot
[01:58:51 CEST] <JEEB> and anything extra should come from pkg-config because it exists
[01:58:51 CEST] <JEEB> lol
[01:59:00 CEST] <johnjay_> but i guess if i wanted to cross compile for my rpi i'd have to use different dirs for those
[01:59:19 CEST] <JEEB> yea, I have /home/jeeb/ownapps/armv7_prefix for example for arm stuff I do
[01:59:37 CEST] <JEEB> symbolically linked to the latest directory I made for some build for android or whatever
[01:59:44 CEST] <johnjay_> so like there's a armv7_prefix/bin, armv7_prefix/lib, etc for cross compiling?
[02:00:05 CEST] <JEEB> things get installed like that, but of course you can't run those libraries or binaries you build on the PC
[02:00:31 CEST] <johnjay_> armv7_prefix is a symbolic link?
[02:00:38 CEST] <JEEB> in my case yes
[02:00:53 CEST] <JEEB> the base premise is that you just decide outside of the system's stuff where you want to put your stuff
[02:01:06 CEST] <JEEB> it's like a case of using either my documents or a directory on some disk or whatever
[02:01:09 CEST] <JEEB> :P
[02:01:33 CEST] <JEEB> what you don't want to do is put stuff into the same place with x86(_64) stuff or where the package management handles things
[02:01:34 CEST] <johnjay_> heh well as long as it works i guess
[02:02:11 CEST] <JEEB> but yea, for android I use "--prefix=/home/jeeb/ownapps/armv7_prefix --arch=armv7 --cpu=armv7-a --enable-cross-compile --target-os=android --cross-prefix=arm-linux-androideabi-"
[02:02:28 CEST] <JEEB> those are the basic parameters for cross compilation :)
[02:02:36 CEST] <JEEB> (for FFmpeg)
[02:02:38 CEST] <johnjay_> and what does armv7_prefix point to for example?
[02:02:52 CEST] <JEEB> it's just a directory that I use to build all my stuff to
[02:02:59 CEST] <JEEB> so for all the things I need I set the prefix
[02:03:06 CEST] <JEEB> when building
[02:03:11 CEST] <JEEB> FFmpeg being just one thing in the chain
[02:03:26 CEST] <johnjay_> but it's a command to build ffmpeg for android right
[02:05:18 CEST] <JEEB> yes, and by switching arch/cpu to x86_64 and target-os to mingw64 and cross-prefix to say x86_64-w64-mingw32- you are suddenly cross compiling for windows
[02:06:05 CEST] <JEEB> oh, cpu isn't needed I think
[02:06:21 CEST] <JEEB> "--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --enable-cross-compile"
[02:06:26 CEST] <JEEB> this one is for 64bit windows
[02:06:38 CEST] <johnjay_> i guess i don't see what --cross-prefix does then
[02:06:40 CEST] <JEEB> see how the options are the same and some values just get changed
[02:06:46 CEST] <johnjay_> i thought it would be the directory you install to on the target
[02:06:54 CEST] <JEEB> cross-prefix is not prefix
[02:07:11 CEST] <JEEB> prefix is common *nix build language for "where do we install things"
[02:07:20 CEST] <JEEB> cross-prefix is the prefix for the build tools
[02:07:29 CEST] <JEEB> see how it ends with a dash
[02:07:35 CEST] <johnjay_> right
[02:07:40 CEST] <JEEB> after that you can think of gcc or ld
[02:08:01 CEST] <johnjay_> oh meaning the particular execuable that does the work
[02:08:13 CEST] <johnjay_> so a x86_64-w64-mingw32-gcc, as opposed to android-eabi-gcc
[02:08:24 CEST] <JEEB> yes, "you will find the relevant tools with this prefix" kind of thing
[02:09:09 CEST] <johnjay_> so this is taking place against a background of "here are my tools to cross compile for android, and here are the tools for armv8, and here are..."
[02:09:20 CEST] <johnjay_> which on linux i suppose is a different package for each one?
[02:09:26 CEST] <JEEB> on msys2 as well
[02:09:34 CEST] <JEEB> I mean, i686 mingw-w64 is one
[02:09:38 CEST] <JEEB> x86_64 mingw-w64 is one
[02:09:43 CEST] <JEEB> msys targeting one is one
[02:10:05 CEST] <johnjay_> but gcc itself doesn't do all that
[02:10:14 CEST] <johnjay_> i'm guessing each one is a different add on or something for gcc to do it
[02:10:33 CEST] <johnjay_> by the way ffmpeg works. i'm amazed that somethign compiled successfully
[02:10:47 CEST] <JEEB> no, as I said when you run one of the mingw shortcuts it will actually make one of those cross prefixes the one "without the prefix" :P
[02:10:56 CEST] <JEEB> it will hide the fact it's doing cross compilation from you
[02:10:58 CEST] <JEEB> :)
[02:11:02 CEST] <johnjay_> all I needed was to pacman -S mingw-w64-x86_64-pkg-config
[02:11:15 CEST] <JEEB> the pkg-config thing is just a warning
[02:11:34 CEST] <JEEB> although pkg-config is good and not enough people use it properly
[02:11:48 CEST] <johnjay_> oh ok. it said WARNING: pkg-config not found, library detection may fail.
[02:11:52 CEST] <johnjay_> i checked ffmpeg -filters and it seems to be updated
[02:12:33 CEST] <JEEB> yea, it will warn if pkg-config (with your possible cross-prefix) is not found
[02:12:37 CEST] <JEEB> because pkg-config is good
[02:12:44 CEST] <johnjay_> yeah i guess that makes sense
[02:12:52 CEST] <JEEB> but as you see, you installed the x86_64-w64-mingw32 one ;)
[02:12:57 CEST] <JEEB> msys2 is just hiding it from you
[02:13:08 CEST] <johnjay_> if i'm on win32 then then mingw-w64-i686 part is targeting 32 but the x86_64 part is targeting x86_64
[02:13:33 CEST] <JEEB> if you go to the msys2 shell I wouldn't be surprised if you could access x86_64-w64-mingw32-gcc :)
[02:13:54 CEST] <JEEB> and that would be the same as the gcc you are running with the 64bit mingw shell
[02:14:16 CEST] <JEEB> unless msys2 did something even more funky
[02:14:24 CEST] <johnjay_> in msys2 it says I can only access x86_64-pc-msys-gcc.exe
[02:14:39 CEST] <johnjay_> gcc gives not found error
[02:14:56 CEST] <JEEB> so if you do x86_64-w64-mingw32-<tab><tab> there's nothing?
[02:15:03 CEST] <johnjay_> although in the 64 window gcc -dumpmachine says x86_64-w64-mingw32
[02:15:14 CEST] <johnjay_> I did x <tab> <tab> and looked through the list
[02:15:21 CEST] <JEEB> ok
[02:15:32 CEST] <johnjay_> in the 64 bit window I have access to x86_64-w64-mingw32-gcc.exe
[02:15:33 CEST] <JEEB> I guess they actually separate the things then, I never really looked too much into it
[02:15:35 CEST] <johnjay_> but not in the msys window
[02:15:51 CEST] <JEEB> but yea, x86_64-w64-mingw32-gcc is what your "gcc" actually is :)
[02:16:10 CEST] <JEEB> msys2 is just trying to not make you think that you're actually cross-compiling
[02:16:16 CEST] <JEEB> which is a good thing and a bad thing
[02:16:35 CEST] <JEEB> because then when people get to cross-compilation they're completely out there about cross-prefixes and all that stuf
[02:16:38 CEST] <JEEB> *stuff
[02:16:42 CEST] <johnjay_> what's funny is if I type pacman -S -s gcc it says I have msys/gcc installed
[02:16:48 CEST] <johnjay_> along with the i686 and x86_64 toolchains
[02:16:57 CEST] <JEEB> yea, the directories are just separated I think
[02:16:59 CEST] <johnjay_> but in the msys2 window gcc <tab><tab> gives nothing
[02:17:11 CEST] <JEEB> and yes, I wouldn't be surprised if the actual msys2 gcc is hidden
[02:17:18 CEST] <JEEB> behind x86_64-pc-msys-gcc.exe
[02:17:28 CEST] <JEEB> because most "normal people" do not want to build for msys
[02:17:33 CEST] <tdr> yeah it wont put your cross compiler as part of normal path or it would cause havoc
[02:17:36 CEST] <johnjay_> right i guess that must be it
[02:18:09 CEST] <JEEB> tdr: I have multiple cross compilers in my path and I'm fine?
[02:18:34 CEST] <tdr> JEEB, i can do it to but "gcc" doesn't ever call a cross-arch one first
[02:18:41 CEST] <JEEB> yes
[02:18:51 CEST] <JEEB> well, that would be incorrect basically :P
[02:18:58 CEST] <JEEB> "gcc" should always be your native one
[02:19:08 CEST] <johnjay_> well. i'm cross compiling anyway if I start mingw64.exe vs mingw32.exe
[02:19:16 CEST] <johnjay_> but you're sa ying it renames it to gcc to fool me?
[02:19:36 CEST] <JEEB> in this case it does make your life "easier" since you can just do "configure"
[02:19:42 CEST] <JEEB> instead of setting cross-prefix
[02:20:16 CEST] <JEEB> anyways, I need to sleep for four hours now before I get to work o/
[02:21:06 CEST] <johnjay_> ok thanks for the help
[02:21:15 CEST] <johnjay_> i'm always happy when i can at least compile the code
[02:21:22 CEST] <johnjay_> because then it's possible to actually do something. :D
[02:22:11 CEST] <johnjay_> by the way there's a guide to doing ccompile for windows from linux on zeronoe's site
[02:22:21 CEST] <johnjay_> but the link to the script gives an error message lol
[02:22:25 CEST] <johnjay_> https://trac.ffmpeg.org/wiki/CompilationGuide/CrossCompilingForWindows
[02:39:00 CEST] <thebombzen> how do I scale to 10-bit 4:2:0 with scale_npp? I tried p010le, p010, yuv420p10le, yuv420p10 and none of them worked
[02:56:38 CEST] <johnjay_> is scale_npp a filter?
[02:56:51 CEST] <johnjay_> it doesn't appear on my snapshot of ffmpeg I just compiled an hour ago
[02:59:11 CEST] <furq> !filter scale_npp
[02:59:12 CEST] <nfobot> furq: http://ffmpeg.org/ffmpeg-filters.html#scale_005fnpp
[03:02:05 CEST] <johnjay> libnpp huh
[03:02:14 CEST] <johnjay> i have an nvidia card but maybe it wasn't selected when i compiled?
[03:03:54 CEST] <thebombzen> when I say "none of them worked" I mean it recognized them all but wouldn't scale to them
[03:04:00 CEST] <thebombzen> it also wouldn't scale to yuv444p16 either
[03:04:46 CEST] <heth> hi. where can I report this? https://pastebin.com/raw/ZFMSs4Gs
[03:05:23 CEST] <johnjay> thebombzen: since i'm stupid can you pastebin what your command is?
[03:07:07 CEST] <thebombzen> johnjay: ffmpeg -f lavfi -i yuvtestsrc -vf hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos:format=p010le -c:v h264_nvenc -f null -
[03:07:49 CEST] <thebombzen> http://sprunge.us/JdWf
[03:08:16 CEST] <thebombzen> the command works as expected if you replace p010le with nv12 (or yuv420p)
[03:10:52 CEST] <johnjay> ah ok the documentation doesn't say what the format options are you said such as p0101e
[03:11:12 CEST] <johnjay> and anyway i'm not sure why my immediate build of ffmpeg doesn't have that filter
[03:23:07 CEST] <johnjay> does git use .obj files instead of .diff files?
[03:23:25 CEST] <johnjay> this email is submitting a patch and has .obj as the ext
[03:29:48 CEST] <johnjay> lol what is this, a patch for a starfield?
[03:29:50 CEST] <johnjay> http://ffmpeg.org/pipermail/ffmpeg-devel/2017-September/216565.html
[03:34:00 CEST] <broman> Hi everybody! I have some .mov files want to stream to nginx rtmp. I have already tried to stream a single .mov by FFMPEG command in terminal and it works, nginx can display the thing i streaming in live. this is the command i am using: ffmpeg -re -i file1.mov -vcodec libx264 -f flv rtmp://localhost/livepkgr/livestream ||| Now i want to stream multiple files, I tried to use above command one by one, but it seems Flash media server stop the streaming when file1 i
[03:34:00 CEST] <broman> s finished, then start the stream with file2. It makes the stream player stopped when file1 is finish, and have to refresh the page in order to continue on file2. I wonder is that possible to let FFMPEG constantly deliver the stream by multiple files source without stopped when a file finish? or still there something i can use for coding using FFMPEG to achieve what I want to do?
[03:35:43 CEST] <johnjay> i'm envious you have nginx and rtmp working at all
[03:35:47 CEST] <johnjay> i couldn't get that to work on windoze
[03:36:59 CEST] <broman> :)
[03:37:05 CEST] <broman> look for arut nginx rtmp
[03:37:24 CEST] <johnjay> are you on linux?
[03:37:36 CEST] <broman> yes
[03:37:46 CEST] <broman> you can always set a virtual machine for it :)
[03:49:11 CEST] <broman> nobody?
[03:51:42 CEST] <furq> there's no particularly good solution if you want a constant playlist or something
[03:51:52 CEST] <furq> if you just want to stream four or five files in a row then use the concat filter
[03:52:16 CEST] <thebombzen> johnjay: you need to compile ffmpeg with --enable-libnpp
[03:52:23 CEST] <thebombzen> using --enable-cuda and --enable-cuda-sdk are not enough
[03:54:33 CEST] <broman> actually, this video files keep increasing
[04:07:26 CEST] <johnjay> thebombzen: ah that makes sense
[04:08:39 CEST] <johnjay> hmm good thing ffmpeg tells you the configure line it was used with
[04:08:47 CEST] <johnjay> I didn't tell it anything... lol
[04:09:35 CEST] <johnjay> the ffmpeg binary i have from Zeranoe was with --enable-cuda
[04:09:38 CEST] <johnjay> but not --enable-libnpp
[04:10:22 CEST] <johnjay> also there's a line of several items starting with libavutil, libavcodec,libavformat
[04:10:36 CEST] <johnjay> but for some reason my windows build has libpostproc there but the one in mingw build does not
[04:11:41 CEST] <johnjay> configure --help doesn't show a --enable-postproc option though
[04:11:46 CEST] <thebombzen> yes it does
[04:12:00 CEST] <johnjay> oh
[04:12:03 CEST] <thebombzen> it's probably --enable-libpostproc though
[04:12:04 CEST] <johnjay> it shows --disable-postproc
[04:12:07 CEST] <johnjay> that's why i didn't see it lol
[04:12:07 CEST] <thebombzen> ah, there it is
[04:12:24 CEST] <thebombzen> for future reference, you can use: ./configure --help | less
[04:12:40 CEST] <thebombzen> and then you can scroll through it with up/down/pageup/pagedown/mousewheel and search by typing /
[04:13:22 CEST] <johnjay> that works on msys
[04:13:31 CEST] <johnjay> i'm starting to like this msys2 thing
[04:13:37 CEST] <johnjay> i can do linuxy stuff and i don't have to run a VM
[04:13:42 CEST] <johnjay> and best of all... it actually works and compiles things
[04:13:47 CEST] <johnjay> which is still mind blowing to me
[04:14:50 CEST] <johnjay> almost as much as the bread i'm baking in my slow cooker right now
[04:16:32 CEST] <memeka> hi, how can i change codec order? e.g. h264 is used, even if h264_vdpau is available; can i set h264_vdpau to default (w/o using -vcodec) ?
[04:38:43 CEST] <thebombzen> memeka: it depends on why you'd want to do that, but no, you can't set default options for FFmpeg's CLI like that
[04:39:07 CEST] <memeka> thebombzen: can i do it in code? I can recompile ffmpeg
[04:39:10 CEST] <thebombzen> if you're trying to set it for ffplay, then I recommend getting a true media player like mpv
[04:39:24 CEST] <thebombzen> and yea, you could modify the code to do it
[04:39:38 CEST] <memeka> thebombzen: any idea from where?
[04:39:39 CEST] <thebombzen> change the order of the codecs in libavcodec/allcodecs.c or something
[04:39:50 CEST] <thebombzen> I believe that's what it's called. higher ones have higher priority
[04:40:10 CEST] <thebombzen> if you put h264_vdpau above h264, it'll use that over the internal. I don't recommend this though
[04:40:55 CEST] <thebombzen> for H.264, software decoding is fast enough, and H.264 hardware decoding will only support 4:2:0 8-bit input
[04:41:43 CEST] <memeka> thebombzen: i'm thinking actually about kodi, i'm not sure there's a way to specify codec, issit?
[04:42:24 CEST] <thebombzen> I'm not sure what Kodi is
[04:42:36 CEST] <memeka> kodi media player
[04:42:56 CEST] <memeka> thebombzen: how about mpv? is there a way to do it all the time, or do i need to use -vd ?
[04:43:17 CEST] <thebombzen> if you're using an FFmpeg-based media player, it's the players' responsibility to choose the hardware decoder. not FFmpeg's. as for mpv, yes you can
[04:43:52 CEST] <thebombzen> launch mpv with --hwdec=vdpau --hwdec-codecs=h264. You can add these options to mpv.conf (see the mpv docs) to have it do that by default
[04:44:07 CEST] <thebombzen> I suggest joining #mpv and asking there. and check out the docs at https://mpv.io/
[04:45:23 CEST] <memeka> thanks thebombzen
[05:11:16 CEST] <thebombzen> either way, where does libnpp's scaler document its supported pixel types?
[05:26:51 CEST] <johnjay> is ffplay intended to be limited in functionality?
[05:27:00 CEST] <johnjay> you compare it to a "true media player"
[05:28:13 CEST] <furq> yes it is
[05:29:13 CEST] <furq> it says right on the manpage
[05:29:18 CEST] <furq> FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a testbed for the various FFmpeg APIs.
[05:33:40 CEST] <johnjay> ah ok. haven't used it before on windows
[09:29:24 CEST] <anandjeyahar> Hi, I am trying to use -filter_complex ainterleave filter to interleave two audio files.
[09:29:59 CEST] <anandjeyahar> however, by default it seems to pick a small set of frames. Can I specify it to interleave in say (10 second slices?) how to configure it?
[09:30:33 CEST] <anandjeyahar> The docs say nothing about an option. http://www.ffmpeg.org/ffmpeg-filters.html#interleave_002c-ainterleave
[09:57:46 CEST] <durandal_1707> anandjeyahar: use astnsamples for both 2 inputs?
[10:00:27 CEST] <anandjeyahar> i am using 'ffmpeg -i Mansi.mp3 -i Prathamesh.mp3 -filter_complex "[0:0:a][1:a] ainterleave " mansi_prathamesh.mp3
[10:00:45 CEST] <anandjeyahar> will try: ffmpeg -i Mansi.mp3 -i Prathamesh.mp3 -filter_complex "[0:0:a][1:a] ainterleave astnsamples 100000" mansi_prathamesh.mp
[10:46:18 CEST] <Guest14508> I am trying to merge 2 videos of 5 seconds and apply watermark with one command. It outputs an 10 second video but only plays the first video without watermark. Anybody knows whats wrong with this command? https://pastebin.com/fCaL172y
[11:05:27 CEST] <johnjay> it plays the first video with a watermark and second without?
[11:20:03 CEST] <Guest77023> hey guys. I'm receiving RTMP stream by ffmpeg, is there any option to bufferize few seconds of stream before muxing/decoding?
[11:40:54 CEST] <styler2go> Does ffmpeg support multi-core for vp9? I use -threads 16 but it only runs on core 1
[11:42:32 CEST] <JEEB> the encoder depends on the version, is up to the version of libvpx used
[11:42:44 CEST] <JEEB> the decoder if you are utilizing the internal one is threaded
[11:43:06 CEST] <styler2go> The vp9 encoder is reeeeally slow
[11:43:58 CEST] <JEEB> yes
[11:44:20 CEST] <JEEB> make sure you're using the very latest libvpx and it should have support for multithreading in theory
[11:44:27 CEST] <JEEB> libavcodec in FFmpeg supports it
[11:44:40 CEST] <JEEB> let's just say that libvpx got no love :P
[11:44:40 CEST] <styler2go> yes, on my pc it works
[11:44:53 CEST] <styler2go> on the server it ried it was avconv so maybe that's just being a retard
[11:44:58 CEST] <JEEB> it's just old
[11:45:02 CEST] <JEEB> most likely
[11:45:21 CEST] <JEEB> build your own latest libvpx and FFmpeg, or get a newer binary
[11:46:59 CEST] <styler2go> Why is VP9 so slow? Is it just how it works for vp9?
[11:47:58 CEST] <JEEB> there are parameters you can tweak but yes - it is slower than libvpx with vp8 or x264
[11:48:22 CEST] <JEEB> but as I said, newer libvpx *is* faster than a very old libvpx
[11:48:28 CEST] <JEEB> (and has threading)
[11:48:46 CEST] <JEEB> but it still will be slower than libvpx with vp8 or x264
[11:49:01 CEST] <JEEB> I mean, youtube doesn't care about your use case :D
[11:49:07 CEST] <JEEB> and what controls libvpx?
[11:49:09 CEST] <JEEB> GOOG
[11:50:34 CEST] <JEEB> but do still understand that with any reasonable resulting settings an encoder for a more complex (for encoding) format will be somewhat slower than older generations. but still, things can be optimized with time. in both psychovisual parts and speed.
[11:54:07 CEST] <styler2go> Do i need to build ffmpeg with additional param for vp9?
[11:56:54 CEST] <styler2go> Ok, found it
[12:01:36 CEST] <LA> any idea how to make bufferization when receiving live stream?
[12:02:33 CEST] <LA> I need some delay buffer for N seconds before muxing/decoding
[12:19:07 CEST] <JEEB> styler2go: for decoding it's internal, for encoding you need a new enough libvpx installed (most likely the one in your repo is old) and --enable-libvpx
[13:07:47 CEST] <styler2go> Yay now i get 8fps
[13:08:12 CEST] <styler2go> https://p.styler2go.de/6264936 running on 16 threads haha
[13:22:20 CEST] Action: CoreX sends a pray to styler2go
[13:37:55 CEST] <wouterstreamit> I am new to ffmpeg and trying to select a specific (hardware) AVCodec for a certain codec ID, but avcodec_find_decoder always gives me the software version of the decoder - is there any way to 'hint' ffmpeg to use a hardware decoder if it is available?
[13:43:06 CEST] <JEEB> wouterstreamit: if it's a "proper hwaccel" then it needs some additional work
[13:43:36 CEST] <JEEB> otherwise, if it's like mediacodec_xxx then you have just get the exact decoder by its name rather than format
[13:44:16 CEST] <JEEB> take a look at doc/examples/hw_decode.c
[13:44:21 CEST] <JEEB> that utilizes the proper hwaccels
[14:00:41 CEST] <wouterstreamit> JEEB: thank you, I think I can just use find_decoder_by_name.
[14:00:50 CEST] <JEEB> yea
[14:02:49 CEST] <wouterstreamit> Is it just me or is this kind of a flaw in ffmpeg? For instance I would like to get a list of compatible decoders for a given codec ID that are currently available
[14:04:24 CEST] <JEEB> not 100% sure if there isn't a way to loop through AVCodecs for a specific codec id
[15:06:39 CEST] <Caterpillar> Hi there. I want to convert a h264 mkv file into a DNxHD mp4 file. I tried ffmpeg -i Sample_preview.mkv -c:v dnxhd output_file.mp4 but I got message <<Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height>> . I tought I could use ffmpeg without having to specify such parameters, because I do
[15:06:41 CEST] <Caterpillar> not know them, and I am afraid of making errors. What could I do?
[15:09:29 CEST] <DHE> JEEB: av_codec_next(AVCodec *prev) is available, but would require hunting for yourself to find what you want...
[15:09:47 CEST] <DHE> doable, but avcodec_find_* just does the work for you
[16:35:39 CEST] <Bear10> Has anyone experienced an issue with using udp to stream to facebook and getting double audio on facebook?
[17:15:56 CEST] <Caterpillar> I have to re encode a video with such specs https://paste.fedoraproject.org/paste/3OpoUNAPdzrk1H0XqDSoEQ into dnxhd codec. I tried to follow https://video.stackexchange.com/questions/15780/converting-files-to-avid-friendly-dnxhd-mxf but I always get ffmpeg errors related to wrong bitrate format
[17:16:17 CEST] <Caterpillar> for example I tried ffmpeg -i sample_preview.mkv -vcodec dnxhd -f rawvideo -b:v 185M -flags +ildct -y output_video
[17:51:46 CEST] <alexpigment> Caterpillar: works over here
[17:52:04 CEST] <alexpigment> what version of ffmpeg are you using, and what are the errors specifically?
[17:57:06 CEST] <Caterpillar> Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[17:57:07 CEST] <Caterpillar> Conversion failed!
[17:57:13 CEST] <Caterpillar> ffmpeg-3.3.4-1.fc26.x86_64
[17:57:31 CEST] <alexpigment> ok, so one of the things I'm seeing is that you're trying to convert from 24fps to interlaced
[17:57:35 CEST] <alexpigment> lemme see what happens when i try that
[17:59:19 CEST] <alexpigment> nope, that works as well
[17:59:38 CEST] <alexpigment> try removing -flags +ildct
[17:59:46 CEST] <alexpigment> then add -an somewhere
[18:00:15 CEST] <alexpigment> although, i am curious - are you trying to preserve the audio channels?
[18:01:04 CEST] <Caterpillar> alexpigment: yes, I would like to preserve everything as much as possible and only convert to a protools compatible codec
[18:01:32 CEST] <alexpigment> ah, well your command line up there is basically throwing away everything but the video stream
[18:02:05 CEST] <alexpigment> when you're converting, can you tell that stream 0:0 is the video stream?
[18:02:12 CEST] <alexpigment> or is it possibly the audio or subtitles?
[18:02:39 CEST] <Caterpillar> ???
[18:03:32 CEST] <relaxed> Caterpillar: pastebin.com your command and console output
[18:05:06 CEST] <Caterpillar> relaxed: https://pastebin.com/2AcW189G thank you
[18:05:50 CEST] <alexpigment> resoltuion is 1916x1036; interesting
[18:06:22 CEST] <alexpigment> before you get too far into this, are you sure that the problem isn't just that Protools doesn't support the MKV container?
[18:06:29 CEST] <alexpigment> DNXHD is way overkill for this
[18:06:49 CEST] <alexpigment> try ffmpeg -i [input] -c copy output.mov
[18:07:35 CEST] <alexpigment> now i'm not saying it'll be optimized for ProTools, but you're taking a 5mbps video and turning it into 185mbps
[18:07:46 CEST] <alexpigment> that just seems like a weird idea
[18:07:53 CEST] <relaxed> Caterpillar: [dnxhd @ 0x55b621e61ae0] video parameters incompatible with DNxHD. Valid DNxHD profiles
[18:08:39 CEST] <alexpigment> relaxed: yep, it's the resolution
[18:08:43 CEST] <Caterpillar> alexpigment: protools does not support mkv container so I tried to give to it mp4 and mov files that are the kind of h264 codec, but had no success. So I am trying DNxHD
[18:09:18 CEST] <Caterpillar> mpeg-4 codec should work, but DNxHD should be native for protools, so it should be better
[18:09:56 CEST] <alexpigment> Caterpillar: true, although there is a point of diminishing returns
[18:10:13 CEST] <alexpigment> you said you had no success with MP4 and MOV - do you think it's the audio format by chance?
[18:10:46 CEST] <alexpigment> you could quickly try -i [input] -c:v copy -an output.mov
[18:11:01 CEST] <alexpigment> if that imports and works ok, then you need to change the audio format only
[18:11:10 CEST] <alexpigment> and that'll be your most efficient workflow
[18:11:31 CEST] <alexpigment> and of course, you'll save *a lot* of time
[18:11:44 CEST] <Caterpillar> alexpigment: interesting, but unfortunately to test Protools I have to go to send the videofile to the studio that uses protools , or I have to get there
[18:11:53 CEST] <Caterpillar> anyway I try your command
[18:11:56 CEST] <alexpigment> ok, well you need to change your resolution then
[18:12:46 CEST] <FishPencil> For decoding does FFmpeg use frame slicing like it does for filtering, or multi frame? I'm curious how the threading works
[18:12:57 CEST] <Caterpillar> [18:11] <alexpigment> ok, well you need to change your resolution then
[18:12:58 CEST] <Caterpillar> ??
[18:13:11 CEST] <alexpigment> sorry, was just checking to make sure MXF supported ac-3
[18:14:10 CEST] <alexpigment> ffmpeg -i samplevideo.mkv -c:v dnxhd -pix_fmt yuv422p -b:v 185M -c:a copy outputvideo.mxf
[18:14:27 CEST] <alexpigment> that's going to copy only the first audio stream I believe, but hopefully that's not a concern
[18:14:46 CEST] <Caterpillar> alexpigment: just a sec, I was trying to enter your command ffmpeg -i sample_preview.mkv --c:v copy -an output.mov but I got message Unrecognized option '-c:v'.
[18:14:55 CEST] <Caterpillar> ah, --
[18:14:58 CEST] <alexpigment> you put --c:v
[18:15:11 CEST] <alexpigment> er
[18:15:21 CEST] <alexpigment> haha, i forgot to actually put in the most important part of the command above
[18:15:32 CEST] <Caterpillar> uh?
[18:15:33 CEST] <alexpigment> ffmpeg -i samplevideo.mkv -c:v dnxhd -pix_fmt yuv422p -s 1920x1080 -b:v 185M -c:a copy outputvideo.mxf
[18:15:36 CEST] <alexpigment> try that
[18:16:13 CEST] <alexpigment> or "sample_preview.mkv" in your case
[18:16:22 CEST] <Caterpillar> [mxf @ 0x55dd3103a040] track 1: could not find essence container ul, codec not currently supported in container
[18:16:24 CEST] <Caterpillar> Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
[18:16:25 CEST] <Caterpillar> Error initializing output stream 0:0 --
[18:16:27 CEST] <Caterpillar> Conversion failed!
[18:17:23 CEST] <alexpigment> hmmm
[18:18:27 CEST] <alexpigment> i guess even though the MXF container supports AC-3, ffmpeg doesn't like that
[18:19:23 CEST] <relaxed> use -c:a pcm_s16le for the audio
[18:19:26 CEST] <alexpigment> 1 second, checking your original video pastebin for 16 or 24
[18:19:59 CEST] <alexpigment> yeah, original stream is 16bit
[18:20:37 CEST] <alexpigment> relaxed: I didn't realize the mxf muxer was so limited in ffmpeg until doing some tests over here
[18:20:54 CEST] <alexpigment> are you aware of anyone working on addressing that?
[18:22:31 CEST] <relaxed> nope
[18:22:39 CEST] <alexpigment> hmmm
[18:22:59 CEST] <alexpigment> well i checked earlier and the wiki says MXF supports "virtually anything"
[18:23:14 CEST] <alexpigment> ac3 would seem to at least be supported
[18:23:16 CEST] <alexpigment> oh well
[18:23:38 CEST] <relaxed> pcm_s16le is lossless, so no harm done
[18:23:42 CEST] <alexpigment> right
[18:23:53 CEST] <alexpigment> it just took me a few tries to get something that worked
[18:23:57 CEST] <alexpigment> big endian also failed
[18:24:07 CEST] <alexpigment> although 16le and 24le did work
[18:25:13 CEST] <alexpigment> at any rate, Caterpillar has now got a nice little 1GB file that should work :)
[18:25:30 CEST] <Caterpillar> ?
[18:25:49 CEST] <alexpigment> Caterpillar: your 38 second file is probably 1GB or so, right?
[18:26:01 CEST] <alexpigment> the MXF version
[18:26:18 CEST] <Caterpillar> alexpigment: 0 bytes
[18:26:27 CEST] <alexpigment> ffmpeg -i samplevideo.mkv -c:v dnxhd -pix_fmt yuv422p -s 1920x1080 -b:v 185M -c:a pcm_s16le outputvideo.mxf
[18:27:01 CEST] <relaxed> protools can't use h264/ac3 ?
[18:27:16 CEST] <alexpigment> relaxed: i asked that earlier. i was told 'no'
[18:27:35 CEST] <relaxed> it has to support h264
[18:27:47 CEST] <alexpigment> yeah, i agree
[18:27:55 CEST] <alexpigment> (read above for this being covered earlier)
[18:29:42 CEST] <relaxed> this says yes, http://avid.force.com/pkb/articles/en_US/Compatibility/Avid-Qualified-video-CODECS-for-Pro-Tools-11
[18:30:13 CEST] <cryptodechange> for low crf encodes, should I not worry about psy-trellis? I've set live action/pixar films to aq=3:0.8, psy-rd=1,0 and deblock=-3,-3
[18:30:37 CEST] <cryptodechange> These are for raw-bds
[18:30:58 CEST] <alexpigment> basically he said he can't locally test, so he's just going by what he knows should work. i'd guess it's just the MKV container, but perhaps they don't like AC-3
[18:31:01 CEST] <cryptodechange> Regarding deblocking, I noticed it didn't work well for Ghost in the shell, so i re-encoded with -2,-2
[18:31:04 CEST] <relaxed> Caterpillar: also try, ffmpeg -i sample_preview.mkv -map 0:v -map 0:a:0 -c:v copy -c:a pcm_s16le output.mov
[18:32:57 CEST] <relaxed> cryptodechange: have you tried using just -tune animation and -crf ?
[18:36:03 CEST] <Caterpillar> [18:26] <alexpigment> ffmpeg -i samplevideo.mkv -c:v dnxhd -pix_fmt yuv422p -s 1920x1080 -b:v 185M -c:a pcm_s16le outputvideo.mxf I just putted the mxf file in the file list that tomorrow will be tested with protools. If it will work, I hope that I can use the same setting with the other video files I have to reconvert (they are a loooot)
[18:37:18 CEST] <alexpigment> Caterpillar: cool. again, though, I think it's better to not re-encode if you have the ability to do a test
[18:37:48 CEST] <alexpigment> first try ffmpeg -i sample_preview.mkv -c copy output.mov
[18:38:10 CEST] <alexpigment> next try ffmpeg -i sample_preview.mkv -c:v copy -c:a copy output1.mov
[18:38:33 CEST] <alexpigment> then try ffmpeg -i sample_preview.mkv -c:v copy -c:a pcm_s16le output2.mov
[18:38:49 CEST] <alexpigment> if you figure out which of those 3 works, use that instead
[18:39:07 CEST] <cryptodechange> relaxed: live action Ghost in the shell
[18:39:31 CEST] <Caterpillar> alexpigment: in case I have to re encode, is it possible to use OpenCL ?
[18:39:32 CEST] <alexpigment> cryptodechange -tune film
[18:40:05 CEST] <alexpigment> Caterpillar: not to my knowledge. dnxhd doesn't have a hardware implementation to my knowledge
[18:40:20 CEST] <Caterpillar> alexpigment: what about mpeg-4?
[18:41:08 CEST] <alexpigment> Caterpillar: yes, but the results are much better doing H.264 on the CPU. you'd really only want to do hardware if time is a huge factor, or if you're trying to live stream something while you're already using a lot of system resources
[18:41:45 CEST] <Caterpillar> alexpigment: I did not know that GPU resulted in lower quality
[18:42:20 CEST] <alexpigment> yep, GPU encoding trades quality for speed
[18:42:28 CEST] <Caterpillar> :-OO
[18:42:39 CEST] <alexpigment> also, that isn't done through openCL, it's done by the specific encoder chips on modern GPUs
[18:42:42 CEST] <alexpigment> Nvidia has NVENC
[18:42:47 CEST] <alexpigment> Intel has Quick Sync
[18:42:50 CEST] <alexpigment> AMD has VCE
[18:42:51 CEST] <Caterpillar> Radeon RX480 here
[18:43:01 CEST] <alexpigment> well, unfortunately, FFMPEG doesn't support AMD VCE yet
[18:43:34 CEST] <alexpigment> but yes, openCL is useless in this case anyway. someone would have to write a whole encoder that uses compute/cuda cores
[18:43:51 CEST] <alexpigment> and it would almost certainly be slower on most systems
[19:10:38 CEST] <BytesBacon> Has anyone tried ffmpeg on the cloud servers? Have access to a service with 13 CPUs and wondering if ffmpeg would benefit from it if at all.
[19:10:49 CEST] <furq> isn't there some rudimentary vce support through vaapi now
[19:11:12 CEST] <furq> BytesBacon: probably? it depends on the service, cpus, contention etc etc
[19:11:18 CEST] <furq> try it and find out
[19:11:54 CEST] <alexpigment> furq: not sure re: VCE through VAAPI
[19:12:13 CEST] <alexpigment> for my purposes on Windows though, I'm still waiting to see anything with VCE in FFMPEG
[19:12:23 CEST] <furq> yeah i'm p sure there's nothing on windows yet
[19:12:28 CEST] <alexpigment> there's a time and a place for VCE, certainly
[19:12:38 CEST] <alexpigment> it was slated for H2 2017 the last time I checked
[19:12:56 CEST] <alexpigment> i don't know how realistic that estimate is anymore
[19:12:58 CEST] <BytesBacon> B/c I see x264 doesn't seem to work with dual CPU like I would have thought. Wondering if the cloud works, then maybe if I setup esxi on a dual CPU setup and then use ffmpeg in a VM on the hardware that way to fix the issue and allow all 24 cores to run.
[19:13:51 CEST] <jkqxz> VCE through VAAPI works - AMD has done a bit of work on it recently so stuff fits together more sensibly (you don't need the crazy environment variable any more), but you're still stuck with H.264 only and no extradata.
[19:14:22 CEST] <furq> BytesBacon: x264 with split memory pools doesn't work well iirc
[19:15:09 CEST] <furq> if you need to encode multiple streams then you'd probably get better performance by running two processes at once with affinity bound
[19:15:21 CEST] <JEEB> oppan numactl
[19:39:12 CEST] <DHE> yeah, use memory affinity as much as possible. I'm using control groups and launch with cgexec (centos has cgroup management tools I use extensively)
[19:39:34 CEST] <DHE> (control groups might be a little bit overkill for affinity, but I use them for other things as well)
[19:40:14 CEST] <BtbN> I don't think any of those various cloud services gives you VMs that span multiple NUMA nodes
[19:41:00 CEST] <DHE> unless you rent bare metal. some will do that. there's an openstack project for it for example
[20:00:38 CEST] <BytesBacon> Okay thanks guy, it's done spinning up, so I'm going to test it. Would love to speed up this encodes, too bad GPU encoding with x264 isn't as good of quality.
[20:04:06 CEST] <YokoBR> hi folks
[20:06:05 CEST] <YokoBR> I'm trying to stream for both facebook and youtube rtmp, but it keeps dropping. Is there any way to improve this? -> https://gist.github.com/jersobh/02764c265e90743127ad21e5f1b15d41
[20:31:29 CEST] <DHE> BytesBacon: it's not just visual quality. the actual GPU processing isn't necessarily any faster than having a CPU do it.
[20:31:51 CEST] <DHE> tested with a core i7 (older generations) as the CPU
[20:32:47 CEST] <alexpigment> DHE: in this case, GPU is going to be faster than an older core i7
[20:32:55 CEST] <alexpigment> well, it should be anyway
[20:33:12 CEST] <alexpigment> NVENC is very fast and the quality tradeoff isn't too bad imho
[20:33:29 CEST] <DHE> NVENC != x264
[20:33:39 CEST] <DHE> x264 with GPU means opencl offload of lookahead
[20:33:43 CEST] <alexpigment> did Yoko literally mean gpu x264?
[20:33:46 CEST] <alexpigment> oh
[20:33:53 CEST] <alexpigment> I didn't know that was even possible
[20:34:00 CEST] <JEEB> yea it's a PoC by MultiCoreWare
[20:34:08 CEST] <JEEB> which does work, yes. but it most likely is not useful
[20:34:17 CEST] <JEEB> at least according to the numbers I've seen
[20:34:20 CEST] <DHE> but that's all it is. I've seen improvement gains from +20% to -20% on various test loads on this system
[20:34:24 CEST] <JEEB> also it operates on a lower resolution IIRC
[20:34:26 CEST] <BytesBacon> Yea I'm after x264 encodes right now. I would go with x265 but the hardware support for play back is limited. I am keeping an eye out for VC1 for the future tho.
[20:34:43 CEST] <alexpigment> VC1 is kinda dead from what I've observed
[20:34:44 CEST] <DHE> vc1 == what vp10 would have been?
[20:34:48 CEST] <JEEB> no
[20:34:58 CEST] <alexpigment> is there a resurgence in VC1?
[20:34:58 CEST] <JEEB> VC1 is what was standardized out of WMV3
[20:35:03 CEST] <JEEB> alexpigment: no
[20:35:18 CEST] <alexpigment> right, but it was an early Blu-ray format that basically all major studios dropped before hardware support was even really ubiquitous
[20:35:32 CEST] <YokoBR> is it possible to stream both facebook and youtube simultaneously without dropping frames?
[20:35:37 CEST] <alexpigment> do phones/tablets even have VC1 support?>
[20:35:53 CEST] <JEEB> most likely if the SoC's ASIC was ever used for blu-ray
[20:36:02 CEST] <JEEB> since it is still one of the mandated formats IIRC
[20:36:15 CEST] <YokoBR> I mean, I'm trying it only for youtube right now and it says that the viewers will have buffering problems
[20:36:37 CEST] <JEEB> that just means that according to some metric it doesn't like something in the stream
[20:36:40 CEST] <BytesBacon> Sorry meant to say AV1, so many encoder names.
[20:36:40 CEST] <alexpigment> yeah, Blu-ray definitely has to have it, but again, because all major studios stopped using it almost immediately, it never caught on outside of Blu-ray and Windows from what I could tell
[20:36:40 CEST] <JEEB> not that your encoding is bad
[20:37:06 CEST] <JEEB> alexpigment: yea only X360 and blu-ray pretty much. even on windows you generally had vanilla wmv3 instead of vc-1
[20:37:10 CEST] <alexpigment> BytesBacon: ahhh, AV1 - that's a bit different :0
[20:37:45 CEST] <alexpigment> JEEB: well, the Windows encoders give you a choice. I recall though that interlaced VC-1 is poorly supported in a lot of cases too, but it was used on early Blu-rays for some reason
[20:37:52 CEST] <BytesBacon> Yea sorry, meant to say that one, as it's the next thing Google's working on. Seems very interesting, but the rendering time is currently insane.
[20:38:41 CEST] <JEEB> YokoBR: and if you either use the API to push same transcoded stuff into two avformatcontexts, or use the tee muxer which lets you have two hacked-up avformatcontexts
[20:39:03 CEST] <JEEB> you should be able to push the exact same transcoded stream into two RTMP ingests
[20:39:07 CEST] <JEEB> (or something else)
[20:48:25 CEST] <Guest67150> Hello everyone
[20:48:29 CEST] <YokoBR> JEEB: I've tryied -f tee -map 0 [f=flv:onfail=ignore]rtmp://live-api-a.facebook.com:80/rtmp/'+config_facebook+'|[f=flv:onfail=ignore]rtmp://a.rtmp.youtube.com/live2/'+config_youtube, but only youtube works. But if I try just '-f', 'flv','rtmp://live-api-a.facebook.com:80/rtmp/'+config_facebook, it works flawlessly on facebook
[20:48:50 CEST] <JEEB> rip
[20:48:59 CEST] <Guest67150> I would like to convert a folder containing 25 .mkv files with DTS audio codec to .mkv with AC3, would you like to help me? I don't have any experience with ffmpeg :(
[20:49:46 CEST] <Guest67150> My TV is fine with .mkv but can not handle DTS audio
[20:49:56 CEST] <alexpigment> Guest67150: what OS are you using?
[20:49:56 CEST] <YokoBR> Guest67150: ffmpeg -i myvideofile.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -b:a 640k myvideofilewithAC3.mkv
[20:50:06 CEST] <Guest67150> Windows 10 x64
[20:50:08 CEST] <JEEB> YokoBR: just let me note that this isn't a problem with the API, but probably with the tee thing
[20:50:12 CEST] <JEEB> (´4@)
[20:50:44 CEST] <alexpigment> Guest67150: I can make a batch script for you that will allow you to drag the 25 files at once onto the .bat file and it will convert them all in sequence
[20:50:45 CEST] <YokoBR> alexpigment told me about this tee muxer yesterday
[20:50:55 CEST] <alexpigment> YokoBR: no, that wasn't me
[20:50:59 CEST] <YokoBR> oops
[20:51:10 CEST] <YokoBR> someone told me about this tee mux yesterday
[20:51:24 CEST] <JEEB> which in theory would let you do this thing
[20:51:33 CEST] <Guest67150> Ah almost forgot: There are 3 soundtracks. These should either be converted or the remaining 2 should be deleted
[20:51:35 CEST] <JEEB> unfortunately I have no idea how to use it nor to check if you are using it correctly
[20:51:42 CEST] <alexpigment> YokoBR: I only helped you find your original problem, which is that you were converting in one part of your code, and then passing along the original codes in the second part of your code (which was causing the failure)
[20:52:08 CEST] <Guest67150> thank you alexpigment & YokoBR
[20:53:42 CEST] <YokoBR> yep, now it works.. I just don't know how to stream to both
[20:54:22 CEST] <alexpigment> Guest67150: https://pastebin.com/1wQ6Ez8s
[20:54:33 CEST] <alexpigment> save that as a .bat file and put it in the same folder as ffmpeg.exe
[20:54:51 CEST] <alexpigment> then highlight all the 25 video files and simply drag them on top of the .bat file at once
[20:55:05 CEST] <Guest67150> Thank you so much
[20:55:21 CEST] <alexpigment> np
[20:55:39 CEST] <Guest67150> will it convert all tracks?
[20:55:46 CEST] <alexpigment> nope, should just be the first one
[20:55:51 CEST] <alexpigment> do you need the other tracks?
[20:56:58 CEST] <Guest67150> No, but I'm not sure what my TV does if there's another DTS track in it
[20:57:09 CEST] <Guest67150> I just need the first track (german)
[20:57:16 CEST] <alexpigment> well the code I gave you will only have the first track
[20:58:13 CEST] <Guest67150> Ok sounds good :) I will try it
[20:58:45 CEST] <YokoBR> which is faster to encode, libmp3lame or aac?
[20:59:31 CEST] <alexpigment> YokoBR: not sure, but you can just make a 10 hour silent audio track and see which one finishes first
[21:00:00 CEST] <YokoBR> https://www.youtube.com/watch?v=09kk57kJTlY
[21:00:04 CEST] <YokoBR> This is my live stream
[21:00:26 CEST] <YokoBR> now I'm using aac, but it's a little bit cracky I guess
[21:02:04 CEST] <alexpigment> aac is faster, but only by a very small amount
[21:02:07 CEST] <alexpigment> according to my tests
[21:02:17 CEST] <alexpigment> 195x for MP3, 205x for AAC
[21:02:26 CEST] <alexpigment> this could change depending on your CPU cores and clock speed
[21:03:41 CEST] <Guest67150> @alexpigment saved the .bat in the same folder as ffmpeg.exe - drag and drop the .mkv's. A small command line windows appears and disappears
[21:03:59 CEST] <Guest67150> and there is no new mkv
[21:04:17 CEST] <alexpigment> Guest67150: add the word PAUSE to a new line at the end of the .bat
[21:04:19 CEST] <alexpigment> what's the error?
[21:04:39 CEST] <alexpigment> (context, pause will make the window stay up rather than leaving the screen)
[21:05:27 CEST] <Guest67150> The command "ffmpeg. exe" is either misspelled or the command could not be found <-- translated by me
[21:05:49 CEST] <Guest67150> and yes I am sure the bat is in the same folder as the ffmpeg.exe
[21:05:58 CEST] <alexpigment> it should work, but try adding the full file path before ffmpeg.exe
[21:06:02 CEST] <alexpigment> and put that file path in quotes
[21:06:07 CEST] <Guest67150> OK
[21:06:13 CEST] <alexpigment> e.g. "C:\MyFolder\ffmpeg.exe"
[21:06:52 CEST] <alexpigment> I could have also added "%~dp0ffmpeg.exe" I guess, but that usually shouldn't be necessary
[21:07:56 CEST] <Guest67150> OK this works :)
[21:08:02 CEST] <Guest67150> [ac3 @ 0000000002ab2260] [Eval @ 00000000005fe3e0] Invalid chars 'bps' at the end of expression '224kbps' [ac3 @ 0000000002ab2260] Unable to parse option value "224kbps" [ac3 @ 0000000002ab2260] Error setting option b to value 224kbps.
[21:08:16 CEST] <Guest67150> I think I should have not change your settings :D mea culpa
[21:08:28 CEST] <alexpigment> ah yeah
[21:08:45 CEST] <alexpigment> i did 448 because that's pretty high without being so high that I worry about TV support
[21:08:58 CEST] <alexpigment> 384kbps is what most broadcast TV uses
[21:09:07 CEST] <alexpigment> 448kbps is what DVD occasionally used
[21:09:22 CEST] <alexpigment> 640kbps is more rarely used, but it would be hard to hear the difference imho
[21:09:22 CEST] <Guest67150> 384 is the source DTS
[21:09:32 CEST] <Guest67150> Can I use that?`
[21:09:38 CEST] <alexpigment> yeah you can use that if you'd like
[21:11:06 CEST] <Guest67150> OK something is wrong: Invalid chars 'bps' at the end of expression '384kbps'
[21:11:26 CEST] <Guest67150> Excuse me for being so tiring.
[21:16:48 CEST] <YokoBR> so nobody knows how to do that tee mux thing?
[21:18:18 CEST] <Guest67150> Nope :( Do you know whats wrong with the command "ac3 -b:a 384kbps"?
[21:18:40 CEST] <saml_> is this web scale
[21:20:19 CEST] <saml_> let's build ffmpeg. is it sane to statically link ffmpeg?
[21:20:24 CEST] <saml_> with all codecs and stuff
[21:27:37 CEST] <alexpigment> Guest67150: set it to 384000
[21:28:18 CEST] <BtbN> The error is quite clear about what's wrong. The "bps" is just wrong there.
[21:28:34 CEST] <Guest67150> Hi there :) had a similar idea a moment ago: works with 384k instead of 384kbps
[21:28:51 CEST] <alexpigment> you can use either 384000 or 384k - my apologies if my command line had kbps
[21:29:00 CEST] <Guest67150> Just converted the first file :) I will try it now. Wish me luck
[21:30:56 CEST] <Guest67150> alexpigment you are my hero! Thank you so much
[21:31:01 CEST] <Guest67150> works perfect!
[21:31:12 CEST] <alexpigment> np. hopefully that batch file makes the process go by quicker
[21:31:28 CEST] <alexpigment> you can do all of them at once without having to babysit each one
[21:32:06 CEST] <Guest67150> You saved me a lot of boring evenings
[21:32:31 CEST] <alexpigment> :)
[21:37:52 CEST] <Guest67150> Good night and thanks again e
[21:58:55 CEST] <vans163> what are error concealment methods in a decoder?
[21:59:11 CEST] <vans163> i see things like FRAME_COPY, SLICE_COPY, FRAME_COPY_CROSS_IDR, etc..
[22:57:46 CEST] <jaggz-t> Why's ffmpeg output 4x frames for every frame of video if I just do ffmpeg foo.mp4 images/%05.jpg ?
[22:58:38 CEST] <jaggz-t> fps of the video is 29.97. it's 08:05.04 long. That comes out to 14536 frames.
[22:59:29 CEST] <jaggz-t> I get about 58202 frames
[22:59:49 CEST] <jaggz-t> I say "about" cuz I did md5 sums on the outputs and found each frame is repeated 4 times
[23:00:09 CEST] <jaggz-t> (and then removed those).. but I'd like to make my initial ffmpeg conversion handle the output frames properly
[23:01:42 CEST] <akkad> other than deshake, are there another filters folks typically use on high action gopro video to make it more watchable?
[23:13:24 CEST] <alexpigment> jaggz: are you setting the frame rate before or after -i ?
[23:13:40 CEST] <jaggz> alexpigment, I did not set it
[23:14:21 CEST] <jaggz> how can I just leave it at the original framerate (to get every frame)?
[23:14:23 CEST] <alexpigment> it sounds like it's just using a default value then. the average person probably isn't going to want 1 image per frame for, say, a time lapse video
[23:14:38 CEST] <alexpigment> well, there's no "original framerate" for images
[23:14:53 CEST] <alexpigment> you have to define them because you're introducing time to something that never had time
[23:15:06 CEST] <jaggz> ah, yes, I missed in the output it's saying 120 fps.
[23:15:16 CEST] <alexpigment> oh wait
[23:15:16 CEST] <alexpigment> nm
[23:15:22 CEST] <jaggz> is there no option "keep input fps"?
[23:15:33 CEST] <alexpigment> i was thinking this was the other way around
[23:15:39 CEST] <jaggz> :)
[23:15:55 CEST] <alexpigment> ok so you have a 120fps video that you're getting images from?
[23:15:57 CEST] <alexpigment> or the other way around?
[23:16:03 CEST] <jaggz> yes
[23:16:10 CEST] <jaggz> video -> images
[23:16:20 CEST] <alexpigment> and in the video which is at 120fps, each frame is unique?
[23:16:30 CEST] <alexpigment> or does the image change every 4th frame?
[23:17:34 CEST] <jaggz> the video is 29.97
[23:17:50 CEST] <jaggz> (with some meta data "com.android.capture.fps: 30.000000")
[23:18:07 CEST] <alexpigment> ok, so i'm not understanding where the 120fps is coming into play
[23:18:09 CEST] <jaggz> each frame should be unique, at 29.97. Unless my cellphone is stupid :)
[23:18:28 CEST] <jaggz> alexpigment, I noticed in the output of ffmpeg, it showed the Output (images) were using 120 fps
[23:18:33 CEST] <jaggz> ffmpeg came up with that 120 somehow
[23:18:37 CEST] <alexpigment> well, try just setting the -r to 30, then
[23:18:44 CEST] <alexpigment> (after the input)
[23:18:57 CEST] <alexpigment> foo.mp4 -r 30 images/%05.jpg
[23:19:02 CEST] <jaggz> Duration: 00:08:05.04, start: 0.000000, bitrate: 12100 kb/s
[23:19:02 CEST] <jaggz> Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/bt470bg/smpte170m), 1280x720, 11997 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 120 tbr, 90k tbn, 180k tbc (default)
[23:19:11 CEST] <jaggz> That's the input's info
[23:19:20 CEST] <alexpigment> ah, the tbr is 120
[23:19:31 CEST] <alexpigment> well, either way, try setting the rate as I suggested
[23:19:32 CEST] <dystopia> dont use -r 30 if it really is 29.974
[23:19:39 CEST] <alexpigment> true
[23:19:49 CEST] <alexpigment> -r 30000/1001
[23:20:08 CEST] <jaggz> From ffmpeg mailing list: "tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate, except sometimes it is twice what one would expect because of field rate versus frame rate."
[23:20:12 CEST] <jaggz> https://superuser.com/questions/410765/what-does-the-video-output-stream-details-from-ffmpeg-mean
[23:20:39 CEST] <jaggz> that's weird.. if you have a video of a known fps, why's ffmpeg take a guess at what the user *really* wants? :)
[23:20:42 CEST] <alexpigment> jaggz: well, even if the field rate were a factor (which it's not if it's actually taken by a cell phone), it wouldn't be 120
[23:21:11 CEST] <alexpigment> in the case of a field rate, you have an *effective* FPS of 2x the actual FPS
[23:21:31 CEST] <alexpigment> in other words, the motion fludity of 29.97i is the exact same as 59.94p
[23:23:30 CEST] <jaggz> I'd have to look into how it calculates it.. but okay, so I just have to specify I guess
[23:23:40 CEST] <alexpigment> i believe so
[23:23:41 CEST] <jaggz> weird to not have an option to just use the input's rate
[23:23:53 CEST] <alexpigment> jaggz: that's how it usually works tbh
[23:23:54 CEST] <jaggz> I wonder what the android metadata is saying 30, if the mp4 is 29.97
[23:24:01 CEST] <alexpigment> i'm not sure
[23:24:07 CEST] <jaggz> exactly, we need a "tbh" option :)
[23:24:26 CEST] <alexpigment> if you end up with the occasional duplicate frame, it may be worth trying the integer version rather than the decimal
[23:24:38 CEST] <alexpigment> or vice versa
[23:24:48 CEST] <jaggz> I'll try 30000/1001
[23:24:53 CEST] <alexpigment> probably the safest way
[23:25:56 CEST] <jaggz> thanks :)
[23:26:02 CEST] <alexpigment> np
[23:27:40 CEST] <jaggz> how's life?
[23:27:47 CEST] <jaggz> :)
[00:00:00 CEST] --- Thu Oct 5 2017
More information about the Ffmpeg-devel-irc
mailing list