[Ffmpeg-devel-irc] ffmpeg.log.20190706
burek
burek021 at gmail.com
Sun Jul 7 03:05:01 EEST 2019
[00:08:32 CEST] <Hello71> >Windows is stupidly slow
[00:08:34 CEST] <Hello71> I concur
[01:20:55 CEST] <ncouloute> ffmpeg is encoding the wrong frame of video. Even when I use a frameserver like avisynth. It is giving me the frame of video from the previous scene. Anyway around this or to figure out whats going on? Using +flags2 showall + encoding to TS will work but then that file will be vfr. Trying to convert that file to cfr causes the same issue. So I'm stuck.
[02:02:37 CEST] <ncouloute> Interestingly enough if I seek to where the scene begins. It shows the proper frame. It appears like it gets confused when the scene changes.
[04:46:29 CEST] <Saccarab> which videocodec should I use to convert mp4 to avi format so my output works in windows media player
[05:16:02 CEST] <kepstin> ncouloute: not sure what you mean by "wrong frame" - what command are you running?
[05:16:39 CEST] <kepstin> ncouloute: note that if you're converting to cfr by using "-vf fps=XX" or "-r XX" output option, then it will drop or duplicate frames to maintain timing.
[05:19:57 CEST] <ncouloute> So I looked at the original side by side with the converted file and I got a frame of the previous scene instead of what the current frame is suppose to be. I do use fps filter and -r but issue happens regardless.
[05:21:35 CEST] <ncouloute> This is the only command that works but it makes a vfr file that I can't get to cfr without the frame order beeing messed up:
[05:21:37 CEST] <ncouloute> ffmpeg.exe -flags2 showall -copyts -copytb 1 -i "input" -c:v h264 -vsync passthrough -bsf:v h264_mp4toannexb -f mpegts -y "output"
[05:23:05 CEST] <ncouloute> but yeah I have to use one of those commands in order to get it to cfr ? -r or -fps
[05:27:57 CEST] <ncouloute> I even tried to feed it to x264.exe doesnt matter which encoder I use... So I think its a decoder issue.. So I went with the avisynth route.. but even that is showing the wrong frames once I tried to encode it. just playing the avisynth file is okay. hwaccel cuvid works but I dont want to use a gpu decoder.
[05:40:47 CEST] <ncouloute> The video file is in sync but it is showing the wrong frames.. thats the strange part. I get a few "reference picture missing during reorder missing reference picturem default is x" errors. So I'm thinking it is recovering to the last scenes reference frame. Although that doesnt explain why avisynth version also doesnt work...
[05:56:33 CEST] <ncouloute> Any ideas? I'm thinking I'm going to have to try and make sense of the debug_ts output.
[06:26:12 CEST] <ncouloute> welp im going to pick this back up tomorrow. I feel like I'm getting somewheer though digging into the debug_ts
[08:11:07 CEST] <lavaflow_> does FFmpeg have anything for beat detection? maybe an audio filter that could be made to output instantanous beat frequency?
[09:00:13 CEST] <jajaja> is there a way to change order of subtitles in video file?
[09:20:06 CEST] <clarkk> I'm trying to concat 3 mp4 files using ffmpeg. When I watch the final video, the first one is fine, but the second one is a black screen with audio, when I use -c copy, and stuttery and badly out of sync when I don't use -c copy. Could someone suggest what I can do to workaround this? Thanks
[09:23:19 CEST] <clarkk> the separate videos play fine in vlc
[09:33:55 CEST] <clarkk> don't worry - I used kdenlive instead
[11:36:18 CEST] <ossifrage> Anyone know what are the magic things that are needed to get --enable-ffmpeg to build ffmpeg? On my target I'm only using ffmpeg for (de)muxing, so I've turned most stuff off.
[11:36:51 CEST] <ossifrage> I tried turning --enable-ffmpeg on, but it seems to have some other hidden option deps
[11:41:28 CEST] <c_14> ossifrage: avformat, avcodec, avfilter, swscale, swresample should be it iirc
[16:31:00 CEST] <ossifrage> c_14, I'm building avcodec, avformat and avutil, but none of the encoder/decoders are enabled, just a collection of muxers and demuxers
[16:32:56 CEST] <ossifrage> I took quite a few trys to get things to build with this minimal config, but I made the mistake of not including ffmpeg
[16:47:58 CEST] <kepstin> configure script just says it needs avcodec, avfilter, avformat (and the recursive deps of those, which is basically just avutil).
[16:49:16 CEST] <kepstin> (you should be ok to disable all the filters in avfilter, I think the configure script wil re-enable the required ones)
[17:41:55 CEST] <linext> is it possible to allow errors in recording a network video stream?
[17:43:39 CEST] <linext> sometimes if i walk in from of the antenna of my hdhomerun, the video stream gets interrupted
[17:43:51 CEST] <linext> ffmpeg stops recording
[17:46:14 CEST] <linext> i'd rather it wait until there's a usable block of video and append to the file
[17:51:25 CEST] <tdr> linext, may need to loop it to restart if it dies when it fails
[17:52:27 CEST] <linext> tdr, how about this? -err_detect ignore_err
[17:53:56 CEST] <linext> if i wrote a program to restart ffmpeg, can ffmpeg append video to an existing file?
[17:54:19 CEST] <tdr> what type of output file
[17:55:02 CEST] <linext> mkv from an atsc stream, mpg2 video and ac3 audio
[17:59:33 CEST] <tdr> i dont see an "append" .. you could incriment a variable when it restarts file1.mkv file2.mkv ... then concat them when its over
[18:01:34 CEST] <linext> tdr is there a way to prevent ffmpeg from closing even if it encounters a stream error?
[18:03:02 CEST] <tdr> not familiar with how to do that
[18:09:59 CEST] <Thomas_J> Is guile required to build Nettle?
[18:16:23 CEST] <JEEB> sounds like you're building something once again provided by your distro?
[18:16:34 CEST] <JEEB> since at least most people install it from package management
[18:18:43 CEST] <Thomas_J> I'm trying to build ffmpeg from scratch. I want to include libtls for rtmps. To build libtls, I need hogweed present which is included in Nattle which needs libgmp. Without it, Nattle will build but it will not include Hogweed. I noticed while building Nattle that it said that guile is not present. Is Guile actually used in building Nattle?.
[18:19:15 CEST] <Thomas_J> The package available in the raspbian repository is incomplete.
[18:20:24 CEST] <Thomas_J> I wish so much that I could just use apt install and end up with a package I can use.
[18:24:37 CEST] <Thomas_J> Bottom line is that Libhogweed is already installed with a couple of versions but when I try to compile libtls it can't find it.
[18:25:27 CEST] <another> so you're building all dependencies as well? any particular reason?
[18:26:06 CEST] <tdr> Thomas_J, so you're building on/for a pi? which model
[18:29:13 CEST] <Thomas_J> The Raspberry Pi3 B+. This is my working model but if it proves to need more CPU, I will move it to a Rock Pi4 B.
[18:30:23 CEST] <Thomas_J> The Rock PI 4 B looks like it will make an excelent engine for a DVR.
[18:30:44 CEST] <tdr> hrm, i just checked nettle-3.5.1 and it didnt seem to check for guile
[18:31:00 CEST] <tdr> oh you said nattle, let me look fo rthat
[18:31:46 CEST] <tdr> oh it is nettle not nattle
[18:32:22 CEST] <Thomas_J> Sorry, I used to date a girl called Nattle.
[18:32:23 CEST] <tdr> Thomas_J, cant imagine you'd need to compile things like tls
[18:33:57 CEST] <tdr> you prob have a net-libs/gnutls package
[18:34:14 CEST] <tdr> and a dev package of it if you needed to build against it
[18:35:53 CEST] <Thomas_J> Bare minimum, I need an ssl/tls engine for rtmps. The raspbian build includes openSSL but it's prebuilt ffmpeg package doesn't have any ssl/tls library in it.
[18:36:56 CEST] <Thomas_J> As long as I have to build ffmpeg myself, I want to use libtls.
[18:38:42 CEST] <tdr> nettle-dev should be in your repos somewhere too
[18:46:26 CEST] <Thomas_J> nettle-dev is already the newest version (3.3-1). Complie for libtls shows Libhogweed (nettle's companion library) 3.4.1 was not found
[18:47:17 CEST] <Thomas_J> Could this be a version error
[18:48:01 CEST] <tdr> ok that sounds like it is expecting a "testing" version of nettle
[18:48:41 CEST] <tdr> its weird tho, 3.4.1 is the oldest version available for me, with 3.5.1 on testing
[18:49:08 CEST] <tdr> so maybe a very new source code you are attempting to build and a dated OS platform
[18:51:30 CEST] <ossifrage> kepstin, yeah, it looks like the configure script doesn't quite get the deps right
[18:52:02 CEST] <Thomas_J> Debian is always at least a year behind in their repositories.
[18:52:15 CEST] <tdr> Thomas_J, not all branches etc.
[18:52:31 CEST] <tdr> you almost make me want to pull my pi out and flash it and see... but i wont
[18:53:15 CEST] <Thomas_J> I just did a update and I still get 3.3.1 as the latest.
[18:53:58 CEST] <Thomas_J> That's why I am always going to the source website to get the latest stable.
[18:54:00 CEST] <tdr> you have an old version of it then
[19:06:33 CEST] <Thomas_J> I just tried removing the apt installed version of Nettle and running the build over again. The pat version installed the .so files in /usr/bin. My compilation places the ".so"s in /usr/local/bin.
[19:06:58 CEST] <Thomas_J> But it doesn't build libhogweed.
[19:08:49 CEST] <Thomas_J> Which gets me back to why is it not finding libgmp?
[19:09:32 CEST] <Thomas_J> the Config says that it is to use mini-gmp
[19:09:40 CEST] <idlus> Hi, I just noticed the optional @id part of filter descriptions, what is it used for?
[19:10:01 CEST] <DHE> .so files normally go in */lib[64] not in the same directory as the main executable
[19:11:53 CEST] <Thomas_J> The Raspbian build doesn't use a seperate lib64 directory as a normal build there is only /lib subdirectoried as if it was a 32 bit build.
[19:13:25 CEST] <Thomas_J> Have to think about this.
[19:16:54 CEST] <Thomas_J> The Arm7 is a 64 bit processor. I just assume that the Raspbian fork off of Debian stretch is also a 64 bit OS> Could I be trying to compile against a 32 bit version of Debian?
[19:36:26 CEST] <Thomas_J> Ouch! I just found out that my assumptions are incorrect. Raspbian is a port of Debian32, not 64. I have to go back to ground zero to figure out what needs to be adjusted.
[19:37:52 CEST] <Thomas_J> That's probably why all the packages in their repository are not up to date.
[19:38:19 CEST] <furq> yeah armv7 isn't 64-bit
[19:39:23 CEST] <furq> but also the bcm2837 is armv8
[19:41:12 CEST] <Thomas_J> Arm7 is supposed to be a 64 bit processor. there is a long thread in the Raspburry Pi forums about why Raspbian is still 32 bit when their processors are the 64 bit Arm.
[19:42:39 CEST] <furq> well it isn't 64-bit
[19:42:51 CEST] <furq> armv8 is 64-bit and the pi 3 has an armv8 cpu
[19:43:32 CEST] <furq> you probably want to install a proper aarch64 distro on there
[19:46:31 CEST] <furq> it'll probably be quicker in general but also aarch64 distro packages will probably be compiled with the accelerated aes/sha stuff
[19:58:10 CEST] <Thomas_J> I stabd corrected. Arm7 is 32 bit. When I got into using rPIs, The docs and conversations were still floating around talking about the Broadcom Arm7 processor, yet my first pi was a 64 bit processor. So, I guess that explains my confusion and while looking for proper packages, the 64 bit ones support the Arm8.
[20:01:16 CEST] <JEEB> Thomas_J: I think officially even rpi4 is still pretty much 32bit because they had issues with some of the hw decoding stuff?
[20:01:25 CEST] <JEEB> so while the CPU is capable of aarch64, it's all armv7
[20:01:55 CEST] <JEEB> rpi3 was also aarch64 capable but that was also "fun" to set up
[20:05:23 CEST] <Thomas_J> The nice thing about the PIs is that they run Linux OSs which make it fast to prototype with. The Rock Pi4 B (not Raspburry) can be ordered with as much as 4GB memory and can run a 2TB SSD drive directly.
[20:05:47 CEST] <JEEB> welcome to why almost everything uses ARM SoCs nowadays
[20:05:56 CEST] <JEEB> they all more or less come with linux kernel sources
[20:06:07 CEST] <JEEB> albeit not all of them can be booted with a vanilla kernel
[20:06:24 CEST] <idlus> I found in the doc that @id can be used with zmq, is it the only instance where it is useful?
[20:06:39 CEST] <JEEB> @id ?
[20:06:57 CEST] <idlus> in a filter description
[20:07:03 CEST] <JEEB> ah, filter description
[20:07:39 CEST] <JEEB> right, by default you get that stuff somewhat generated with a postfix number I think?
[20:07:47 CEST] <JEEB> if you do -v verbose the filter chain generation is logged
[20:08:07 CEST] <JEEB> (in the command line app, otherwise you'll just have to bump up the log level in the API)
[20:08:12 CEST] <Thomas_J> They will never catch up with a full blown state of the art processor such as the i7 9th gen processor but they are now as powerfull as my i7 laptop I still use I purchased 9 years ago.
[20:08:38 CEST] <idlus> JEEB: all right, but I was wondering what it was used for, I only found zmq from the documentation
[20:09:01 CEST] <JEEB> idlus: I guess it could be useful if sharing an instance? I'm really not sure
[20:10:05 CEST] <JEEB> I've used the API for creating filter chains and there you give a name as one of the parameters (avfilter_graph_create_filter)
[20:10:40 CEST] <idlus> ok, so it isnt really relevant from the CLI
[20:11:26 CEST] <JEEB> I don't think two invocations of the same filter lead to the same instance being utilized so I'd *guess* it's just in case you want to see an exact string in the logging
[20:11:40 CEST] <JEEB> or if you want to utilize the same instance or something, if that even is possible?
[20:12:19 CEST] <idlus> I was wondering that, if it could be used for optimisation
[20:12:27 CEST] <idlus> anyway thanks for the insights
[20:12:33 CEST] <JEEB> idlus: right, zmq because you want to pre-know the names of filters
[20:12:37 CEST] <JEEB> or well, the instances
[20:12:47 CEST] <JEEB> and you're sending commands to specific filters
[20:12:53 CEST] <JEEB> or well, instances of them
[20:13:06 CEST] <idlus> yes I figured that use case
[20:13:08 CEST] <JEEB> in most cases indeed it doesn't really matter how it's called :)
[20:13:23 CEST] <JEEB> since you define in complex filter chains the names of input/output things
[20:13:37 CEST] <JEEB> and in normal filter chains they're implicit
[21:37:37 CEST] <Thomas_J> SO, I have a 32 bit OS running on a 64 bit processor which version of nettle should I use, 32 or 64?
[21:38:14 CEST] <tdr> if your userland is 32 bit you need 32 bit (and prob cant even build 64)
[21:38:17 CEST] <DHE> the OS being 32 bit means you must use 32 bit software. always.
[21:40:59 CEST] <JEEB> raspbian should have its own nettle etc development libraries (SOMETHING-dev), and I don't think there's a choice in raspbian (yet)
[21:41:11 CEST] <Thomas_J> That's what I was thinking but Iit is sooo confusing when my attempt to compile the 64 bit version was effectively looking like it was working other than not finding it's dependencies.
[21:43:58 CEST] <Thomas_J> I can't seem to use them with a current compile. libtls is looking for a newer version of hogweed than whT apt installs. ???Where did the epsum-lorum come from???
[21:44:25 CEST] <JEEB> you seem to be way in the woods by now, sorry for my French
[21:44:29 CEST] <JEEB> *pardon my French
[21:44:52 CEST] <JEEB> you might want to start with what you want to achieve and on which system
[21:45:01 CEST] <JEEB> and then the path there can be looked at :P
[21:45:20 CEST] <Thomas_J> Ohhh lol, That was you? there was no <JEEB> in front of it.
[21:47:57 CEST] <Thomas_J> I have a working ffmpeg command now working on my dedicated server al-be-it I haven't tested rtmps on it yet. I am now trying to achieve the came thing in the RPi where it is supposed to be launched in.
[21:49:16 CEST] <JEEB> ok, so if your rpi is running raspbian that will be armv7 and either built on the device or cross-compiled
[21:50:55 CEST] <Thomas_J> I am now going to do a fresh download and try a fresh install of the latest Nettle from the source once again hoping that it can find the apt install pf the gmp lib.
[21:51:42 CEST] <Thomas_J> of not pf
[21:52:14 CEST] <JEEB> uhhh
[21:52:19 CEST] <JEEB> why would you be compiling nettle etc
[21:52:33 CEST] <JEEB> it sounds like you have "found" a way somewhere, and it's going 45 degrees the wrong way
[21:52:37 CEST] <Thomas_J> I have Raspbian(32bit) running on an Arm8(64bit)
[21:52:53 CEST] <JEEB> effectively with raspbian you can 100% forget the fact that the CPU can do 64bit
[21:53:05 CEST] <JEEB> until they put 64bit kernel etc there :P
[21:53:15 CEST] <furq> you can't run anything 64-bit on a 32-bit kernel and libc
[21:53:18 CEST] <furq> it doesn't matter what the cpu can do
[21:53:27 CEST] <Thomas_J> As I said, the version in the Raspbian repos is to old to compile libtls against.
[21:53:48 CEST] <JEEB> ok, and why do you need libtls?
[21:53:54 CEST] <furq> for rtmps
[21:54:03 CEST] <JEEB> uhh, libtls is not that tls
[21:54:09 CEST] <JEEB> I think it's thread-local storage?
[21:54:13 CEST] <JEEB> or some other thing needed for compilers
[21:54:28 CEST] <JEEB> also FFmpeg's RTMP uses openssl and gnutls for TLS, not libtls
[21:54:50 CEST] <furq> https://github.com/FFmpeg/FFmpeg/blob/master/configure#L271
[21:55:20 CEST] <JEEB> right, if you don't want to utilize gnutls or openssl. at this point libtls should be rather minor. it still doesn't explain why the person would want to compile it himself
[21:55:33 CEST] <JEEB> I'm trying to understand the /why/
[21:55:37 CEST] <Thomas_J> Because it is the prefered TLS agent and I don't trust openSSL. Don't ask me why, all tries to do rtmps with openSSL enabled hasn't worked for me.
[21:55:50 CEST] <JEEB> is it the preferred library?
[21:55:55 CEST] <JEEB> I don't think it is
[21:56:05 CEST] <JEEB> we as the FFmpeg project surely make no such assumptions
[21:56:36 CEST] <JEEB> the user can utilize gnutls, openssl or libtls or the library that ARM publishes
[21:56:57 CEST] <JEEB> mbedtls was the last one
[21:57:16 CEST] <JEEB> all of those wrappers in general are supposed to do the same thing
[21:58:33 CEST] <JEEB> they might have bugs but that's the general gist. and since FFmpeg (with GPL components) + openssl cannot be distributed most people utilize either gnutls, schannel (windows), securetransport (macos) or mbedtls (ARM embedded stuff)
[21:59:30 CEST] <furq> the debian ffmpeg builds have gnutls
[21:59:37 CEST] <JEEB> gnutls and openssl were the ones mentioned for async I/O I think when RTMPS was poked
[21:59:37 CEST] <furq> so i assume the raspbian ones do as well
[21:59:59 CEST] <JEEB> (there was a fix for those wrappers applied in like 2017 IIRC)
[22:00:28 CEST] <furq> https://www.johnvansickle.com/ffmpeg/
[22:00:35 CEST] <furq> these also have gnutls in case raspbian doesn't for some reason
[22:01:05 CEST] <JEEB> and yes, the armhf stuff there
[22:01:16 CEST] <furq> although these don't have the pi hwaccel stuff if you need that
[22:04:34 CEST] <Thomas_J> Three days ago when our convrsation was targeted to my trying to compile with librtmp because of not being able to get rtmps working, you mentioned that the later ffmpeg packages worked fine using libtls. I have since seen that the rtmp handler supplied in the ffmpeg package is librtmp. Then that is further confusing in that the ffmpeg docs have explicit instructions using the internal rtmp handler and then a separate entry for the libtls package commands.
[22:05:27 CEST] <JEEB> for the record I have never mentioned libtls because I had even forgotten that's how libressl's thingamajig was named :P
[22:06:01 CEST] <JEEB> I have mostly been mentioning gnutls and openssl in passing because back when looking at the log of changes there was a fix for both of them for the asynchronous I/O fixing RTMPS
[22:11:05 CEST] <Thomas_J> I could be mistaken. After the conversation we had that day I copied our conversation to gedit to save it because of all the good insights you gave. I backed off with what I was doing and used that conversation to formulate a new strategy. I finally throuth the gedit ppage away about 2 hours ago.
[22:14:49 CEST] <Thomas_J> OUCH! gnutls is what I was working toward, yes. I abandoned that because I found that libtls was already in ffmpeg. and I heve been moving forward with the wrong module from there.
[22:15:58 CEST] <Thomas_J> thinking libtls instead of gnutls.
[22:22:37 CEST] <Thomas_J> For the past several weeks I have been chasing rabbits down deep dark holes trying to get a version of ffmpeg that will stream trmps to Facebook. Since I,ve been here in the irc channel, I have found sanity. The ultimate problem will be that there is no help from Facebook. Therir support is only a collection of documents that tell you nothing unless you cross over to their developer's documents. That is another big rabbit hole to jump into.
[22:28:37 CEST] <JEEB> Thomas_J: anyways the stuff that furq linked could be your first quick check :P https://www.johnvansickle.com/ffmpeg/
[22:28:44 CEST] <JEEB> try the armhf binary there for master
[22:28:53 CEST] <JEEB> a) if it runs on your rpi
[22:29:09 CEST] <JEEB> b) check if you can make an RTMP and then RTMPS connection :P
[22:54:15 CEST] <Thomas_J> Okaaaay! I have a stream going to my server with armhf. Now to see if I can get rtmps working.
[23:49:15 CEST] <Lunchbox> is there a way to convert 60fps to 30fps with a blending filter that smooths out motion? i've tried to search for this but i've only found cases where people are trying to increase fps instead
[23:50:20 CEST] <Thomas_J> Just made a test stream @420p to my server on the internet and then played it played to copy that it made back without any frame dropping or appellation. It looks like I may be able to use the Raspberry Pi3 B after all. Next test is to use an IP camera as an rtsp input.
[00:00:00 CEST] --- Sun Jul 7 2019
More information about the Ffmpeg-devel-irc
mailing list