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

burek burek at teamnet.rs
Tue Dec 17 03:05:02 EET 2019


[00:00:17 CET] <kepstin> with good cables and equipment, it would be hard to tell the difference between component and hdmi at sd resolutions.
[00:00:33 CET] <kepstin> but hdmi is only one cable/connector, so it's nicer to use :)
[00:00:35 CET] <johnjay> sorry what?
[00:00:43 CET] <johnjay> isn't that a contradiction?
[00:00:54 CET] <johnjay> oh i see composite
[00:01:05 CET] <johnjay> composite =/= component @_@
[00:01:39 CET] <kepstin> composite sticks all the stuff from the three signals in component together onto one wire - it's a "composite" signal of multiple components
[00:02:12 CET] <johnjay> which means less bandwidth total and more loss?
[00:02:28 CET] <BtbN> both
[00:02:31 CET] <kepstin> yeah, and it can also cause interference between different parts of the signal
[00:02:44 CET] <BtbN> It's better than RF, but still pretty horrible
[00:03:13 CET] <BtbN> Ideally for analog sources you want RGB or YUV Component output
[00:03:24 CET] <johnjay> hmm. i hate to throw away working stuff though. maybe i can just give this dvd player to salvation army
[00:03:36 CET] <BtbN> Does it not have SCART with RGB?
[00:03:58 CET] <kepstin> johnjay: should confirm what region you're in :)
[00:03:59 CET] <johnjay> i'm not sure what scart is but it has the red/green/blue things
[00:04:06 CET] <kepstin> scart is a europe-only thing
[00:04:12 CET] <johnjay> NA here
[00:04:17 CET] <kepstin> (i've only heard of it in uk, actually)
[00:04:30 CET] <johnjay> wiki mentioned it but i didn't understand the description
[00:04:52 CET] <kepstin> yeah, north american equipment has pretty much only ever had composite or YUV component using rca connectors
[00:05:24 CET] <BtbN> S-Video is also a thing over there
[00:05:26 CET] <kepstin> (the component cable ends are normally coloured red, green, and blue but they actually carry a YUV signal, not RGB)
[00:05:30 CET] <BtbN> It's like slightly better composite
[00:05:46 CET] <BtbN> And the most fragile plugs anyone could ever come up with
[00:05:48 CET] <johnjay> kepstin: interesting
[00:05:59 CET] <johnjay> haha indeed!
[00:06:20 CET] <kepstin> johnjay: fun fact, you can switch the red/blue cables or leave one unconnected to mess the colour channels up
[00:06:53 CET] <kepstin> i had a friend who played an entire ps2 game with one of the colour channels disconnected and they didn't even notice, because it was the blue one so skin tones didn't look very wrong
[00:08:42 CET] <johnjay> lol
[00:09:22 CET] <kepstin> (connecting only the green cable - Y channel - gives you a black/white picture)
[00:09:59 CET] <kepstin> that's the cable that has the synchronization signalling on it, you'll get no picture at all unless that cable is connected.
[00:10:13 CET] <BtbN> That varies
[00:10:26 CET] <BtbN> I have a bunch of equipment here that has a 4th Sync-Wire
[00:11:01 CET] <kepstin> well, with 3-connector composite connectors of the type popular in north american consumer electronics, that's the case
[00:11:57 CET] <kepstin> that same friend of mine also has some scart equipment, and has built equipment to split out or combine the sync signals :/
[00:12:11 CET] <kepstin> i mostly just do digital video :)
[00:12:13 CET] <BtbN> Since SCART cables commonly carried both composite and component at the same time, they always used the composite line for sync signaling
[00:13:55 CET] <kepstin> speaking of digital video, does anyone know what the corpus vbr mode (corpus-complexity option) for libvpx-vp9 is supposed to do?
[00:14:13 CET] <kepstin> there's basically no documentation for it, even in libvpx
[00:25:59 CET] <noudle> currently trying to build ffmpeg on arch arm in order to build omxplayer, but im getting "unrecognized command line option '-mfpu=vfp'; did you mean '-mcpu='?" and the same for '-mfloat-abi=hard'
[00:26:12 CET] <noudle> following instructions in the readme from here https://github.com/popcornmix/omxplayer
[00:26:29 CET] <noudle> any ideas what i could do?
[00:27:07 CET] <noudle> this is on the "make ffmpeg" step in the configure step
[00:27:19 CET] <noudle> the error is from the config.log
[00:29:47 CET] <noudle> cant find anything regarding that on google tbh
[00:32:44 CET] <cehoyos> noudle: Do not follow third-party readmes (or ask them for support), just tell configure where it find your toolchain
[00:33:21 CET] <noudle> cehoyos: i get a similar problem when trying to configure the ffmpeg sources directly
[00:34:17 CET] <noudle> then the -mcpu= is missing one arg
[00:55:22 CET] <noudle> cehoyos: gcc: error: missing argument to '-mcpu='
[01:03:47 CET] <cehoyos> noudle: Please provide the configure line you tested including the complete, uncut console output and confirm that you are testing current FFmpeg git head, the only version supported here
[01:04:01 CET] <cehoyos> And the gcc version
[01:11:59 CET] <noudle> cehoyos: http://ix.io/24yu
[01:13:27 CET] <cehoyos> I see: ./configure --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree
[01:14:02 CET] <cehoyos> This shows no error message but both target-os and -arch look unneeded.
[01:14:07 CET] <cehoyos> Why is there "enable-nonfree"?
[01:14:55 CET] <cehoyos> ok, nonfree is required for omx
[01:16:40 CET] <noudle> i can ommit those two and see what happens
[01:17:04 CET] <cehoyos> You could also start with "./configure --enable-gpl"
[01:17:14 CET] <noudle> true
[01:17:21 CET] <noudle> let me just do so
[01:17:35 CET] <cehoyos> Sadly, I have to leave soon, sorry
[01:17:41 CET] <noudle> np
[01:17:44 CET] <noudle> ty anyways
[01:17:45 CET] <noudle> :)
[01:18:00 CET] <cehoyos> but please test now
[01:18:25 CET] <noudle> i get "ERROR: OpenMAX IL headers from raspberrypi/firmware not found" without those two args but with the rest
[01:18:49 CET] <cehoyos> You could also start with "./configure --enable-gpl"
[01:19:14 CET] <noudle> yes thats running atm
[01:19:21 CET] <noudle> sec
[01:20:27 CET] <noudle> that seems to pass
[01:21:06 CET] <cehoyos> I suggest you also test compilation and fate (make SAMPLES=fate-suite fate-rsync && make SAMPLES=fate-suite fate)
[01:21:39 CET] <cehoyos> To resolve the omx header issue, you have to look at the tail of config.log
[01:21:51 CET] <cehoyos> (I never compiled with omx, no idea what you need for it)
[01:22:53 CET] <noudle> it is the only player which can play videos fluently on a pi
[01:23:04 CET] <noudle> because of some hardware acceleration
[01:23:08 CET] <noudle> iirc
[01:23:23 CET] <cehoyos> I suggest you also test compilation and fate (make SAMPLES=fate-suite fate-rsync && make SAMPLES=fate-suite fate) <- this is to check if I am correct that arch is unneded: I always thought it should never be used but it can be useful for some Windows toolchains
[01:23:37 CET] <noudle> hmm will do so
[01:23:38 CET] <noudle> ty
[01:23:52 CET] <cehoyos> I didn't mean I have no idea what omx is, just that I never tested it and never compiled it
[01:25:47 CET] <Arnob> furq: Thks. When running: ffmpeg -y -i 1.wav -loop 1 -i b.jpg -filter_complex "[0:a]showwaves=s=1280x720:mode=line:colors=0xff0000|0x0000ff,colorkey=0x000000:0.01:0.1,format=yuva420p[v];[1:v][v]overlay[outv]" -map "[outv]" -pix_fmt yuv420p -map 0:a -c:v libx264 -c:a copy -shortest output1.mkv , I have this error: [Parsed_showwaves_0 @ 0xea7080] Option 'colors' not found
[01:25:49 CET] <Arnob> [AVFilterGraph @ 0xea6b40] Error initializing filter 'showwaves' with args 's=1280x720:mode=line:colors=0xff0000|0x0000ff'
[01:25:51 CET] <Arnob> Error initializing complex filters.
[01:25:53 CET] <Arnob> Option not found
[01:39:48 CET] <cehoyos> Arnob: The option "colors" of the showwaves filter is four years old...
[01:39:57 CET] <cehoyos> Please test current FFmpeg git head before reporting any issues
[06:20:21 CET] <grosso> for a codec that has the AV_CODEC_CAP_DELAY flag set, I want to know what is the actual delay
[09:59:30 CET] <gamelaster> Hi, is there function in c api, with which I can parse packet manually, instead of avio_alloc_context's customs read funcs?
[09:59:53 CET] <JEEB> more specifics, please?
[10:00:03 CET] <JEEB> parsing has a very specific meaning with lavf/lavc, which is separate from demuxing
[10:01:06 CET] <gamelaster> JEEB ah yeah, true. I have file with MPEGTS, I want to parse it by myself => find MPEGTS (188 size) bytes, and then supply it to avformat mpegts demuxer, which will return me AVPacket
[10:01:40 CET] <gamelaster> I just want to connect MPEGTS packet with AVPacket, to measure performance of ffmpeg and my code
[10:01:59 CET] <JEEB> not sure how simple that would be :P
[10:02:25 CET] <JEEB> I mean, I've only seen/used the custom AVIO APIs if you want to have your own I/O buffer and feeding funcs
[10:04:19 CET] <gamelaster> yeah, me too, but then I can't connect directly the AVPacket with MPEGTS packet. Well, I will try to lurk the ffmpeg docs and funcs if I will find something useful.
[11:25:31 CET] <Arash_dev> hi guys, anyone scipted an animated watermark on videos??
[11:25:44 CET] <Arash_dev> i want script a watermark moving on corners and stop on each corner for a seconds
[11:25:44 CET] <Arash_dev> this movment repeat until video has ended
[11:28:05 CET] <Arash_dev> some thing like this
[11:28:06 CET] <Arash_dev> ffmpeg -i "video.mp4" -i "1B.png" -i "1B.png" -i "1B.png" -i "1B.png" -i "1B.png" -i "1B.png" -filter_complex "
[11:28:06 CET] <Arash_dev> overlay=1:H-h:enable='between(t,0,3)',
[11:28:06 CET] <Arash_dev> overlay=1+(t-3)*200:(H-h):enable='between(t, 3, 7)',
[11:28:06 CET] <Arash_dev> overlay=W-w:H-h:enable='between(t,7, 12)',
[11:28:06 CET] <Arash_dev> overlay=W-w:(H-h)-(t-12)*200:enable='between(t, 12, 16)',
[11:28:07 CET] <Arash_dev> overlay=W-w:1:enable='between(t,16,20)',
[11:28:07 CET] <Arash_dev> overlay=(W+w)-(t-20)*200:1:enable='between(t, 20, 26)'" out.mp4
[11:29:45 CET] <pink_mist> please use a paste site for that many lines
[11:33:56 CET] <Arash_dev> some thing like this : https://justpaste.it/1tp6g
[11:42:03 CET] <sine0> ok im going for a long road trip today and i have a crappy mp3 hardware usb radio. whats going to be the best settings or bitrate for compatability
[11:42:26 CET] <sine0> mp3 128 256 cbr
[12:25:44 CET] <jokoon> sorry to ask again, but is there a way to combine several videos into one ? for example to play 6 videos into 1, in a 2x3 layout?
[12:26:12 CET] <furq> jokoon: https://ffmpeg.org/ffmpeg-filters.html#xstack
[12:26:21 CET] <jokoon> ah thanks
[12:26:33 CET] <furq> sine0: any cbr mp3 should be fine
[12:26:40 CET] <furq> really really old stuff has issues with vbr
[12:26:47 CET] <furq> anything made in the last 10 years should be fine
[12:27:00 CET] <furq> probably just encode some stuff and check it before you leave
[12:27:29 CET] <jokoon> problem is, most of those videos don't have the same size, not to mention ratio
[12:28:28 CET] <jokoon> so I might start to resize those video first
[12:28:35 CET] <furq> xstack supports inconsistent sizes, it'll just add padding
[12:28:44 CET] <furq> you can just resize them earlier in the filterchain if you want to avoid that
[12:29:02 CET] <jokoon> yeah but if the size difference is too large, it won't be good
[12:29:30 CET] <jokoon> in the filterchain?
[12:29:34 CET] <furq> -lavfi "[0:v]scale=1280:720[tmp0];[tmp0][1:v]hstack" or something like that
[12:29:45 CET] <jokoon> will ffmpeg also mix the sound?
[12:30:11 CET] <furq> https://ffmpeg.org/ffmpeg-filters.html#amix
[12:33:10 CET] <jokoon> thanks
[12:44:07 CET] <jokoon> any UI software can do this with some interface?
[12:44:11 CET] <jokoon> like avidemux?
[12:44:27 CET] <jokoon> I mean xstack?
[14:02:03 CET] <Arnob> @cehoyos: Does it mean I can't use the option 'colors' anymore? In that case how can I change the waveform color?
[14:03:51 CET] <durandal11707> Arnob: it means your ffmpeg version is too old
[14:58:48 CET] <grosso> for a codec that has the AV_CODEC_CAP_DELAY flag set, there is a way to know the actual delay?
[15:02:42 CET] <JEEB> I think there currently is no proper interface for that
[15:15:08 CET] <grosso> thank you
[15:42:10 CET] <noudle> i try to compile the latest ffmmpeg from the git repo on my pi which is running arm arch fully updated. i configure ffmpeg like this: ./configure --enable-gpl
[15:42:42 CET] <noudle> configure passes but it fails at compilation with "libavcodec/dds.c: In function 'dds_decode':" "libavcodec/dds.c:749:1: internal compiler error: Illegal instruction"
[15:43:05 CET] <noudle> using gcc 8.3.0
[15:44:04 CET] <noudle> in the end i want to compile ffmpeg to compile omxplayer (https://github.com/popcornmix/omxplayer)
[15:44:44 CET] <noudle> also i tried to follow the compile instructions here: https://github.com/legotheboss/YouTube-files/wiki/(RPi)-Compile-FFmpeg-with-the-OpenMAX-H.264-GPU-acceleration
[15:45:19 CET] <noudle> but adding '--arch=armel' or '--target-os=linux' to ./configure fails with 'gcc: error: missing argument to '-mcpu=''
[15:46:22 CET] <noudle> and adding the '--enable-omx --enable-omx-rpi --enable-nonfree' results in 'ERROR: OpenMAX IL headers from raspberrypi/firmware not found'
[15:46:41 CET] <noudle> altho pacman say 'extra/libomxil-bellagio 0.9.3-2 [installed]'
[15:47:01 CET] <noudle> any ideas what i can do now?
[16:23:21 CET] <noudle> i'll idle a bit if someone has a tip pls msg me :)
[16:24:22 CET] <kepstin> noudle: that error you gave with compilation failing indicates that your system compiler is broken, nothing to do with ffmpeg
[16:25:12 CET] <kepstin> please contact your linux distro support.
[16:38:06 CET] <noudle> kepstin: you mean the missing argument one?
[16:38:20 CET] <kepstin> no, the "internal compiler error: illegal instruction" one
[16:38:31 CET] <noudle> ah i see
[16:38:37 CET] <noudle> okay
[16:39:07 CET] <kepstin> probably means the compiler package was built for a different/incompatible cpu than the one in your system
[16:41:04 CET] <noudle> hmm i installed it through the system package manager
[16:46:36 CET] <pink_mist> not surprising
[16:46:57 CET] <pink_mist> that's why you were recommended to contact your distribution's support
[16:47:45 CET] <noudle> ye i understand that but i was thinking the compiler package from the system package manager would be suited for the system
[16:48:36 CET] <noudle> im currently running another compile try with different configure args, its still running.. if it fails again with that error i will do so
[16:55:33 CET] <pink_mist> noudle: yes, we're all thinking that the compiler package from the system package manager _should_ be suited for the system ... the fact that it's not is why you should contact your distribution's support
[16:56:05 CET] <noudle> that what i will do if this compile attempt running atm will fail too
[16:57:53 CET] <jokoon> I have 517950181/8641135 in frame rate
[17:00:28 CET] <kepstin> that's a fun number.
[17:00:59 CET] <kepstin> looks like someone rounded 60000/1001 incorrectly.
[17:01:27 CET] <jokoon> why 1001?
[17:01:42 CET] <kepstin> because historical reasons
[17:01:54 CET] <jokoon> that's an excellent excuse
[17:01:56 CET] <kepstin> (that's the field rate of ntsc colour television, by definition)
[17:02:03 CET] <jokoon> ok
[17:02:45 CET] <kepstin> black and white was exactly 60, they slowed it down a touch when they added colour to reduce interference with the colour subcarriers.
[17:03:08 CET] <jokoon> something along the line "because of the earth tilt" and "there are not exactly 24 hours in a day"
[17:03:50 CET] <noudle> pink_mist: the compile passed hehe
[17:04:07 CET] <kepstin> noudle: might have just been a cosmic ray glitch in your ram or something then :)
[17:04:11 CET] <jokoon> can you image the quantum computer in years 5000? aliens will ask "what is \n and \r?"
[17:04:29 CET] <kepstin> even now people ask what those are for and why they're separate
[17:08:47 CET] <kepstin> i mean, when's the last time you've seen a teletypewriter with a print mechanism using a carriage?
[17:09:22 CET] <noudle> kepstin: have you an idea how to fix "ERROR: OpenMAX IL headers from raspberrypi/firmware not found"; meaning how to tell ffmpeg configure where to find the headers?
[17:10:22 CET] <noudle> as i think i have them installed through pacman already
[17:11:08 CET] <kepstin> it expects them in either the system headers location or /opt/vc/include/IL (presumably the default raspi distro location)
[17:11:28 CET] <kepstin> if it's not in either of those, you might just have to manually add the include location to your cflags
[17:14:47 CET] <noudle> you mean export them?
[17:16:24 CET] <kepstin> pass an --extra-cflags= option to the configure script with the options required to get the compiler to find the omx headers
[17:16:42 CET] <noudle> okay sec
[17:19:57 CET] <noudle> hmm
[17:20:11 CET] <noudle> i mean it needs to find OMX_Core.h and such right?
[17:20:18 CET] <noudle> they are in /usr/include/
[17:21:02 CET] <kepstin> does your OMX_Core.h file contain "OMX_IndexConfigBrcmVideoRequestIFrame"?
[17:21:28 CET] <kepstin> if not, then you don't have the raspberry-pi specific headers
[17:21:29 CET] <noudle> no
[17:21:39 CET] <noudle> meh
[17:22:01 CET] <noudle> i found some sources bit they where from 2009 or so so i was not sure if those where the right ones..
[17:22:04 CET] <noudle> *but
[17:22:35 CET] <kepstin> tbh, i've only ever heard of this working on the raspian distro, i didn't even know you could run arch on the things.
[17:23:19 CET] <noudle> there is even a omxplayer package for arch arm but it did not work for me thats why i try to compile things from sources
[17:23:43 CET] <noudle> are theese the right ones? https://github.com/felipec/libomxil-bellagio
[17:24:39 CET] <noudle> guess not..
[17:47:46 CET] <grosso> I notice h264_mediacodec decoder has the AV_CODEC_CAP_DELAY set, and, in fact, it has a very high latency of several frames even with baseline profile, while ffmpeg's native h264 codec has none.
[17:49:00 CET] <grosso> i want to know: 1) if I can estimate that latency in advance; 2) If I can configure mediacodec decoder to avoid such latency
[17:51:05 CET] <jokoon> can ffmpeg be configured to use the GPU to encode?
[17:51:24 CET] <kepstin> grosso: are you sure it actually has a frame latency, and not just an asynchronous wait while it send to the hardware, decodes, and downloads off the hardware?
[17:51:47 CET] <kepstin> jokoon: ffmpeg can be configured to use the hardware encoder included on the dies of many GPUs
[17:52:05 CET] <jokoon> and does it give a big enough boost with low to moderate GPU ?
[17:52:17 CET] <kepstin> jokoon: note that these are dedicated hardware encoders, it does not use the gpu compute power
[17:52:20 CET] <jokoon> does it work for all video encoders?
[17:52:41 CET] <kepstin> the hardware encoder is used *instead* of the software encoder, it does not speed up the software encoder
[17:52:50 CET] <kepstin> codec support depends on the hardware
[17:52:54 CET] <jokoon> so is it an option worth pursuing?
[17:53:12 CET] <pink_mist> mostly not
[17:53:19 CET] <pink_mist> they often give worse results
[17:53:20 CET] <kepstin> hardware encoders are mostly useful for encoding realtime video streams when your cpu is busy doing something else
[17:53:27 CET] <jokoon> oh ok
[17:53:44 CET] <jokoon> I remember mediacoders advertised using the GPU
[17:53:46 CET] <kepstin> e.g. they're decent for livestreaming gaming and things like that
[17:53:51 CET] <jokoon> the software called mediacoder
[17:54:02 CET] <grosso> kepstin: I'm not sure about that; all I can see is that while I feed h264 packets in, it seems to buffer several of them, and then it begins to output decoded frames
[17:54:57 CET] <kepstin> grosso: hmm, so if you just send one packet in and poll receive_frame for a while, you don't get a frame ever?
[17:56:03 CET] <kepstin> well, polling receive_frame isn't really the way the api is intended to be used, i dunno what that'll actually do in this case :)
[17:56:51 CET] <kepstin> grosso: as far as it goes, ffmpeg's just using an external api here, there's not really much control :/
[17:57:45 CET] <jokoon> https://i.imgur.com/SYastgk.png I have those videos, Im planning to make a 3x3 xstack... should I resize them or can ffmpeg do it with it's doing the xstack stage? I've read it can scale the video
[17:58:05 CET] <jokoon> Im aware some have a 0.5 ratio, I will those
[17:58:25 CET] <jokoon> Im also curious about the frame rate difference, will that cause problems?
[17:59:41 CET] <kepstin> xstack does not scale video, you need to scale before using the filter
[18:00:05 CET] <jokoon> thing is, I'm also planning to queue videos, since they have various duration, but I don't know if it can be done
[18:00:25 CET] <kepstin> i'd recommend making the framerates all match before using xstack for best performance
[18:00:34 CET] <jokoon> meaning each square will play another video when one will finish
[18:01:05 CET] <jokoon> performance? so xstack will interpolate or something else?
[18:01:06 CET] <grosso> kepstin: I go to try it and I tell you the result... but I guess it's not going to work... you see, when I say "several frames" I mean more than 1 second, since my video is 10fps... I doubt that an asynchronous wait for hardware communication is that long...
[18:01:33 CET] <kepstin> jokoon: basically every time there's a new frame on any input, xstack will make an output frame
[18:01:47 CET] <kepstin> jokoon: so if the inputs have different framerates, it'll output lots of extra frames
[18:01:54 CET] <jokoon> Oh I see
[18:02:12 CET] <jokoon> it will be much slower
[18:02:38 CET] <jokoon> how ffmpeg reduce the framerate? interpolation?
[18:02:50 CET] <kepstin> jokoon: there's multiple ways to change framerate in ffmpeg
[18:03:00 CET] <kepstin> the fps filter simply drops/duplicates frames
[18:06:11 CET] <kepstin> the framerate filter does a plain linear blend between frames (maybe ok if there's minimal motion)
[18:06:28 CET] <kepstin> the minteroplate filter does motion compensated interpolation
[18:06:40 CET] <grosso> there is any ffmpeg-mediacodec documentation and/or examples?
[18:07:30 CET] <kepstin> hmm, i'm getting confused, mediacodec is the android thing, right?
[18:07:40 CET] <kepstin> got it mixed up with the apple one
[18:07:56 CET] <jokoon> so minterpolate is best, I guess it doesn't require that much more CPU ?
[18:08:09 CET] <kepstin> i'd expect it to require significantly more cpu
[18:08:26 CET] <kepstin> for most video, fps filter probably does something reasonable
[18:08:40 CET] <kepstin> motion interpolation can add noticable artifacts
[18:09:04 CET] <jokoon> wait, fps filter and framerate filter are different things/
[18:09:05 CET] <jokoon> ?
[18:09:08 CET] <grosso> mediacodec is the android thing, that is
[18:09:35 CET] <kepstin> fps filter preserves what the video currently looks like as close as possible when increasing framerate, worst it does it add a bit of jitter to frame timing.
[18:09:57 CET] <grosso> the apple one is videotoolbox, by the way, way better
[18:10:32 CET] <jokoon> I have video at 30 and 24, should I make them all 24 or 30?
[18:10:47 CET] <kepstin> jokoon: it'll look bad either way
[18:11:02 CET] <kepstin> but if you do 30 it won't remove frames, it'll just make the 24fps video a bit juddery
[18:12:41 CET] <jokoon> so 30 seems better
[18:12:48 CET] <jokoon> I'm going to test either way
[18:13:04 CET] <kepstin> if you have to merge videos with different framerates like that into one video, would be best to match the refresh of the intended output device.
[18:13:12 CET] <kepstin> so probably 60, although 120 would be better :)
[18:13:51 CET] <jokoon> I'm not really targetting any particular device
[18:14:13 CET] <jokoon> both computer screen and smartphone screens
[18:15:48 CET] <jokoon> does most ffmpeg users use the command line, or some UI or maybe some scripting to do things?
[18:19:06 CET] <kepstin> i personally mostly use the cli tool, sometimes scripted.
[18:53:12 CET] <matto312> Hello! I've been working on a video project for about month now. I'm experienced dev, but new to video domain. I'm close to having this done, but stuck on 1 issue. I'm taking live RTMP input and generating multi-variant HLS output. Most of the time works great, however, sometimes output is frozen video. TS files are being generated but it's frozen to single frame (and the video files are ~1/3 size). Here is the cmd and output of case wh
[18:53:13 CET] <matto312> ere the above issue happens. https://pastebin.com/feshz4DJ Any help would be greatly appreciated! Let me know if I need to provide more info. Thank you!
[19:02:41 CET] <BeerLover> Hi, I am running this command https://0x0.st/z0Zj.txt to create a HLS master playlist with 4 different bitrates - 320k, 128k, 64k, 32k. But the final master.m3u8 created has different bandwidths. master.m3u8 https://0x0.st/z0Z2.m3u8
[19:02:51 CET] <BeerLover> What can be the issue?
[19:15:39 CET] <BeerLover> if i copy the audio codec, can i not change the bitrate?
[19:16:05 CET] <BeerLover> for example, ffmpeg -i s.mp3 -c:a copy -b:a 32k s2.mp3
[19:22:46 CET] <DHE> BeerLover: you can't both copy it and change it
[19:23:18 CET] <DHE> if you want to use the SAME codec, you still have to specify it. but since you're outputting to mp3, it will auto-select a codec and you can just leave out the -c:a parameter entirely
[19:33:31 CET] <BeerLover> DHE: what about my other question
[19:33:34 CET] <BeerLover> ?
[19:33:44 CET] <BeerLover> Hi, I am running this command https://0x0.st/z0Zj.txt to create a HLS master playlist with 4 different bitrates - 320k, 128k, 64k, 32k. But the final master.m3u8 created has different bandwidths. master.m3u8 https://0x0.st/z0Z2.m3u8
[19:42:15 CET] <DHE> sorry busy right now
[19:43:28 CET] <kepstin> the hls muxer would be estimating that based on the media it receives, so it's possible that the abr on the mp3 encoder overshot during the period that it sampled, or maybe it's just including mpeg-ts overhead?
[19:50:55 CET] <BeerLover> kepstin: can i cap that per stream?
[19:51:17 CET] <BeerLover> so that it never goes beyond the defined cap?
[19:54:11 CET] <sine0> furq: cbr ftw drive was tollerable
[20:05:46 CET] <webreformer> Is there any tool that provides stats(frequency, frames)  at the sound card level ?
[20:07:37 CET] <webreformer> There is a pitch change and I would like to trace back audio details before it;s actually played by sound card.
[20:37:07 CET] <cehoyos> noudle: Workaround for the compiler bug is to either compile the specific file without optimizations (run make V=1 libavcodec/dds.o, copy the invocation and add -O0) or use the configure switch --disable-decoder=dds
[20:46:11 CET] <BeerLover> Hi, I am running hls transcoding to create a HLS master playlist with 4 different bitrates - 320k, 128k, 64k, 32k. But the final master.m3u8 created has different bandwidths and the segments also have different bitrates. The input file info, command, segment info (all bitrates), master.m3u8 file info: https://0x0.st/z0NQ.txt
[20:46:58 CET] <BeerLover> Is there any way I can cap the audio bitrate in the segments? I tried -maxrate -minrate -bufsize, but there's no difference
[20:49:24 CET] <noudle> cehoyos: i did compile ffmpeg with omx support on the pi some hours ago, now im testing it
[20:51:10 CET] <cehoyos> BeerLover: You are specifying the codec bitrate on the command line, the master file contains the file bitrate (which is only identical for raw audio formats like mp3, not for high-overhead streaming formats like mpegts)
[20:51:24 CET] <cehoyos> noudle: Did you disable the dds decoder?
[20:51:42 CET] <noudle> nope
[20:51:57 CET] <noudle> i just needed some extra flags for the configure script
[20:52:00 CET] <BeerLover> cehoyos: so what should I do?
[20:52:05 CET] <noudle> and the omx headers from the right packages
[20:52:23 CET] <noudle> which are not available for my arch but seems like i could compile them anyways
[20:53:39 CET] <BeerLover> cehoyos: what if i edit the master.m3u8 file and alter the bitrate? Will it cause any problem? Actually there's some hardcoding in the client that depends on the BANDWIDTH in master.m3u8 file
[20:58:33 CET] <cehoyos> Why don't you just reduce the codec bitrate?
[20:58:51 CET] <cehoyos> noudle: What extra flags did you provide?
[20:59:10 CET] <noudle> cehoyos: when i try to open a video with ffplay i get "No decoder could be found for codec av1" and i then can just "see" the audio on screen
[20:59:23 CET] <noudle> cehoyos: ./configure --enable-libfreetype --enable-gpl --enable-nonfree --enable-libx264 --enable-libass --enable-libmp3lame --enable-omx --enable-omx-rpi
[21:06:36 CET] <cehoyos> noudle: That indicates (imo) that you have a termal issue with your hardware
[21:06:53 CET] <noudle> what indicates that?
[21:07:05 CET] <cehoyos> Your configure line still tries to compile dds.o, if it fails once but succeeds another time, this is not a good sign for your hardware.
[21:07:19 CET] <cehoyos> gcc is known to trigger such issues easier than most other software
[21:07:46 CET] <cehoyos> To get av1 decoding, you need either dav1d or libaom
[21:08:00 CET] <cehoyos> Since compiling dav1d is a major task, I suggest libaom (which is slower)
[21:08:26 CET] <noudle> is a "major task" just taking more time to compile or is it harder to compile?
[21:08:35 CET] <noudle> as on a pi i like things that are "faster"
[21:12:32 CET] <BeerLover> cehoyos: is there any specific relation between the codec bitrate and final file bitrate? How much should I reduce it by to get "X" bitrate? Or is it hit and trial?
[21:15:12 CET] <noudle> cehoyos: i ned to fix some audio over hdmi problems first befire i can continue with the video output of ffplay
[21:17:17 CET] <cehoyos> noudle: Feel free to test dav1d compilation, although I am not sure if the "faster" is also true for arm
[21:17:40 CET] <noudle> i will
[21:17:41 CET] <fling> How do I add a thumbnail to mp4 properly?
[21:17:43 CET] <noudle> i guess
[21:17:49 CET] <fling> Is it just another mjpeg stream?
[21:17:52 CET] <cehoyos> BeerLover: You can calculate it but you already know the numbers...
[21:18:06 CET] <fling> this thing adds them somehow http://atomicparsley.sourceforge.net
[21:18:33 CET] <BeerLover> cehoyos: didn't get you.
[21:21:06 CET] <BeerLover> I know what I want in the final master.m3u8 (bandwidths)
[21:21:23 CET] <BeerLover> How to know what bitrates I should pass wo codec?
[21:22:25 CET] <cehoyos> You posted a link to a page that showed the overhead
[21:23:25 CET] <fling> Is there a piece of metadata telling which stream has a thumbnail in mp4?
[21:23:52 CET] <BeerLover> cehoyos: really? I can't find it in the link i shared
[21:24:54 CET] <cehoyos> You asked for 32k and how much did you get?
[21:25:13 CET] <BeerLover> 35200
[21:25:27 CET] <cehoyos> Indicates 10% overhead, no?
[21:25:52 CET] <BeerLover> sorry I got 37k, but bandwidth is 35200
[21:26:05 CET] <BeerLover> it's not 10% constant across bitrates
[21:35:11 CET] <fling> it is -disposition attached_pic
[21:38:39 CET] <fling> Can I mux a text file as a stream?
[22:03:29 CET] <cehoyos> fling: Most containers do not like "text"
[22:12:07 CET] <fling> cehoyos: I found -attach option
[22:17:55 CET] <fling> How do I apply a filter only to one of the streams?
[22:18:30 CET] <fling> -filter[:stream_specifier]
[22:18:31 CET] <fling> ok ;P
[22:22:34 CET] <noudle> cehoyos: got ffplay working and audio over alsa too, can playback videos with audio over hdmi nearly fluently
[22:22:53 CET] <noudle> is there a way to check if ffplay uses the omx stuff to include GPU for processing?
[22:23:00 CET] <noudle> as its eating up all the cpu power of the pi
[22:23:06 CET] <noudle> and its getting really hot LOL
[22:23:21 CET] <cehoyos> Complete, uncut console output missing.
[22:23:35 CET] <noudle> of ffplay?
[22:23:47 CET] <cehoyos> Of whatever command you were testing
[22:24:05 CET] <noudle> ye was ffplay
[22:24:05 CET] <noudle> sec
[22:25:06 CET] <noudle> cehoyos: http://ix.io/24D5
[22:25:47 CET] <cehoyos> The only av1 decoder you enabled is dav1d, so dav1d is used
[22:26:02 CET] <kepstin> that's an av1 video, the rpi doesn't have a hardware decoder that iirc? so, yeah, gonna be cpu only.
[22:26:24 CET] <cehoyos> There is no hardware decoder (yet) for av1, this is not rpi-specific
[22:27:16 CET] <noudle> only for h.264 or what it was iirc
[22:27:18 CET] <noudle> right?
[22:27:21 CET] <kepstin> (and with ffmpeg/ffplay, hardware decoders aren't used unless you manually specify them, either with -hwaccel or by decoder name depending on the type)
[22:27:26 CET] <cehoyos> noudle: Did you compile dav1d or was there a package?
[22:27:36 CET] <noudle> cehoyos: there was a package
[22:28:04 CET] <noudle> kepstin: so just passing -hwaccel and having the input in the right format should get me on the way?
[22:28:34 CET] <cehoyos> There is also an asp omx decoder
[22:29:03 CET] <cehoyos> Sorry, no
[22:29:18 CET] <cehoyos> There is an omx h264 and an omx mpeg4asp encoder
[22:30:21 CET] <cehoyos> This cannot be heavily tested code: The mpeg4 encoder is implemented but cannot be called...
[22:31:09 CET] <cehoyos> noudle: Please test the h264 encoder: ffmpeg -f lavfi -i testsrc2 -t 10 -vcodec h264_omx out.mp4
[22:31:38 CET] <kepstin> huh, does ffmpeg not have any way to use the hw decoder on the rpi?
[22:31:59 CET] <cehoyos> Openmax is encoding-only
[22:32:01 CET] <cehoyos> in FFmpeg
[22:32:26 CET] <noudle> encoding only? thats bad for me..
[22:32:38 CET] <cehoyos> Can you test the encoder?
[22:32:40 CET] <noudle> so i really need omxplayer to playback
[22:32:43 CET] <noudle> ye sec
[22:33:57 CET] <noudle> what should i pass for testsrc2 ?
[22:34:02 CET] <noudle> passing my video fails
[22:34:25 CET] <kepstin> "testsrc2" is a literal string
[22:34:29 CET] <noudle> ah okay
[22:35:55 CET] <noudle> it fails with "/opt/vc/lib/libbcm_host.so not found" even tho the file is there
[22:35:56 CET] <noudle> hu
[22:36:51 CET] <noudle> cehoyos: ^
[22:40:26 CET] <noudle> strange
[22:40:36 CET] <noudle> the file is definitely ther
[22:40:37 CET] <noudle> e
[22:46:37 CET] <fling> cehoyos: which container should I use?
[22:47:01 CET] <cehoyos> Not sure there is one, matroska and nut are supposed to be general purpose containers
[22:47:13 CET] <cehoyos> I activated the omx mpeg4-asp encoder
[22:47:53 CET] <fling> [mp4 @ 0x5602a4c3a420] Could not find tag for codec none in stream #3, codec not currently supported in container
[22:47:56 CET] <fling> it works with mkv
[22:47:58 CET] <fling> will try nut :>
[22:48:09 CET] <fling> should not I specify a codec there?
[22:48:40 CET] <fling> [nut @ 0x56369c474420] No codec tag defined for stream 3
[22:50:37 CET] <cehoyos> If it works with mkv, use it
[22:52:49 CET] <fling> thanks
[22:54:46 CET] <fling> How to use more cpu with x264?
[22:57:21 CET] <fling> It is not using a lot :<
[23:01:36 CET] <fling> 32 threads only utilizing like 350% cpu
[23:06:33 CET] <cehoyos> It is a property of a software encoder for a "real" codec that it cannot max out all cores.
[23:06:50 CET] <cehoyos> There is a patch that allows the encoder to max out all cores on your cpu
[23:07:17 CET] <cehoyos> Unfortunately, it makes overall encoding slower (while using more electricity)
[23:12:28 CET] <fling> I can run multiple encodings in parallel!
[23:14:28 CET] <cehoyos> of course
[23:14:58 CET] <cehoyos> Note that scaling to several processors always has an overhead, so if you have enough videos to encode, consider using -threads 1 for all encodes
[23:16:02 CET] <fling> is not -threads always the global flag?
[23:17:45 CET] <cehoyos> It can be used for decoding and encoding, but I thought you were talking about completely indepedent encodes
[23:19:56 CET] <fling> yes ok
[23:23:24 CET] <shibboleth> i'm attempting to build ffmpeg with intel qsv/libmfx support
[23:23:53 CET] <shibboleth>  /tmp/ffconf.iVINm47c/test.c:1:26: fatal error: mfx/mfxvideo.h: No such file or directory
[23:24:13 CET] <shibboleth> likely caused by:
[23:24:14 CET] <shibboleth> BEGIN /tmp/ffconf.iVINm47c/test.c
[23:24:14 CET] <shibboleth>     1	#include <mfx/mfxvideo.h>
[23:24:14 CET] <shibboleth>     2	#include <stdint.h>
[23:24:16 CET] <kepstin> on linux, it's usually easier to get the vaapi interface working instead.
[23:24:42 CET] <shibboleth> yeah, but isn't qsv magnitudes better in terms of acceleration?
[23:25:02 CET] <kepstin> it's the same physical hardware encoder either way
[23:25:18 CET] <kepstin> i think the mfx interface might provide more configuration options tho?
[23:26:00 CET] <shibboleth> hmm
[23:26:12 CET] <shibboleth> ok, i'll benchmark this if i get it working
[23:26:24 CET] <shibboleth> anyway,  1 #include <mfx/mfxvideo.h> in /tmp/ffconf.iVINm47c/test.c
[23:28:02 CET] <shibboleth> how would i finesse which location ffmpeg configure tries to oad it from?
[23:28:04 CET] <shibboleth> load
[23:28:14 CET] <kepstin> if you installed libmfx via intel media sdk/intel media server studio, you have to manually provide the include path for the headers and link path for the libraries (e.g. using --extra-cflags, --extra-ldflags)
[23:29:38 CET] <shibboleth> yes, i'm trying to avoid doing a global install of that sdk from 2015. i've put what's needed in /usr/local/libmfx (usr/local/libmfx/lib/, usr/local/libmfx/include, usr/local/libmfx/include/mfx)
[23:29:55 CET] <shibboleth> and configured the libmfx.pc accordingly
[23:30:19 CET] <shibboleth> mfx/mfxvideo.h is in fact located in usr/local/libmfx/include/
[23:30:30 CET] <shibboleth> which has a subfolder and file mfx/mfxvideo.h
[23:30:45 CET] <kepstin> if your libmfx.pc is in your pkg-config search path, it should just work
[23:31:47 CET] <kepstin> make sure "pkg-config --cflags --libs libmfx" returns something reasonable.
[23:32:07 CET] <shibboleth> -I/usr/local/libmfx/include -L/usr/local/libmfx/lib -lmfx -ldispatch_shared -lva -lva-drm -lsupc++ -lstdc++
[23:32:41 CET] <shibboleth> wouldn't -I/usr/local/libmfx/include take care the subfolder/file mfx/mfxvideo.h?
[23:34:14 CET] <kepstin> I'd expect it to. please provide the complete config.log
[23:38:44 CET] <shibboleth> one sec
[23:42:17 CET] <shibboleth> log exceeds pastebin size limit
[23:45:10 CET] <shibboleth> here the "test" part though:
[23:45:36 CET] <shibboleth> https://paste.debian.net/hidden/3454f00a/
[23:48:52 CET] <cehoyos> shibboleth: Your pc file is missing -ldl
[23:48:54 CET] <fling> is x265 good?
[23:49:09 CET] <cehoyos> libaom is said to be "better"
[23:50:19 CET] <shibboleth> hmm, the .pc has -ldl on a sep line
[23:51:17 CET] <shibboleth> progress
[23:51:26 CET] <shibboleth> uno momento
[23:53:20 CET] <shibboleth> tada
[23:53:24 CET] <shibboleth> thanks, cehoyos
[23:58:25 CET] <shibboleth> o, compile errors:
[23:59:03 CET] <shibboleth> https://paste.debian.net/hidden/79f47664/
[00:00:00 CET] --- Tue Dec 17 2019


More information about the Ffmpeg-devel-irc mailing list