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

burek burek021 at gmail.com
Wed Nov 16 03:05:01 EET 2016


[00:00:50 CET] <c_14> tried without the width_type ?
[00:02:38 CET] <kbarry> much better.
[00:03:01 CET] <kbarry> IF I want to grab, say everythign between 100hz and 600 hz, do I just ad two filters?
[00:03:21 CET] <kbarry> or is using a widthtype of h, and a width of 600 appropriate?
[00:04:24 CET] <c_14> either lowpass+highpass, or bandpass=f=600+100/2:width_type=h:w=500
[00:04:48 CET] <c_14> You can also use the firequalizer
[00:05:42 CET] <c_14> Pretty sure you can also do it with the ladspa filter, and presumably another 5 filters I know absolutely nothing about
[00:15:43 CET] <kbarry> c_14 I notice that in many of the files I play in ffplay) and look at he spectrogram (?), i noticed that some files seem to have the upper frequencies "muted" so to speak.
[00:17:16 CET] <kbarry> If you would, what is this called? I'm trying to highligh this sort of "compression" where frequencies that are less noticible in an audio file are dropped to allow for the audio to be more highly compressed.
[00:19:19 CET] <c_14> Lowpass?
[00:23:56 CET] <t4c0c4t> @c_14 i found that library, symlinked it into my ldflags and am re-compiling now - sound like a good plan? :D
[00:29:56 CET] <c_14> t4c0c4t: It's finding the file (or at least the dlopen call isn't failing) can you run strings .so | grep -i maxsupportedversion on the .so file?
[00:35:00 CET] <t4c0c4t> no dice :(
[00:35:21 CET] <kbarry> Yeah, i'm trying to use the  showspectrumpic to generate the spectrograph. I like that its graduated. But the output is not the same as what i see using ffplay.
[00:36:20 CET] <c_14> t4c0c4t: your drivers are firetrucked
[00:36:22 CET] <c_14> What distro?
[00:36:45 CET] <c_14> kbarry: ffplay uses fancy internal logic and not the actual filter afair
[00:55:28 CET] <t4c0c4t> @c_14 amazon linux + nvidia AMI, not super surprised there exists an issue, but was hoping to avoid manual installation as part of my bootstrap process
[01:58:49 CET] <kurufu> Is there a function to find all the compatible codecs for a given AVOutputFormat?
[03:40:56 CET] <t4nk639> I realize it is possible using ffmpeg api but is it possible to grab video frame pixel data (R,G,B values) just using the binaries?
[03:46:19 CET] <evga> Hello, is there anything I can do to speed up mpegts stream parsing in ffmpeg?
[03:56:25 CET] <evga> the problem happens when I try to read from /dev/dvb/adapter0/dvr0
[04:03:13 CET] <kurufu> Is av_interleaved_write_frame (or av_write_frame) thread safe? Or should I stick it behind a mutex?
[04:08:46 CET] <DHE> I don't think it is. ffmpeg isn't very thread-safe externally to itself
[04:10:25 CET] <kurufu> Thats unfortunate.
[04:10:28 CET] <kurufu> Thanks
[04:12:21 CET] <DHE> submitting video and audio in different threads?
[04:13:45 CET] <kurufu> Yea
[05:43:58 CET] <t4nk284> Why i can not play 25fps video on 59.9Hz projector ? While BD player are doing it efficiently.
[06:16:57 CET] <kurufu> im getting that AVStream::codec is deprecated, how am i supposed to set muxing options like width/height?
[11:04:56 CET] <geo_> dvb-t .ts streams freeview recorded and converting to mkv with ffmpeg
[11:06:22 CET] <kerio> is that a question
[11:07:16 CET] <geo_> NO the subject that i have couple of questions about
[11:08:56 CET] <geo_> the recorded .ts streams usually have a lot of errors... no frame!, SPS unavailable in decode_picture_timing, decode_slice header error, non-existing PPS 0 referenced and so on
[11:09:17 CET] <geo_> but playback perfectly in VLC and SMplayer
[11:10:41 CET] <geo_> ffmpeg spits out lots of errors when i attempt to convert them to mp4 to remove the transport stream errors
[11:10:59 CET] <kerio> do you get something watchable at the end tho?
[11:11:09 CET] <BtbN> that's what happens with Over-The-Air Streams
[11:11:30 CET] <BtbN> Could also just be the first few seconds, until the next IDR-equivalent comes by
[11:14:08 CET] <geo_> i can watch the original stream .ts fine on VLC, but when i attempt to convert it with ffmpeg to mp4 thats when i get all the errors
[11:15:08 CET] <geo_> so the original broadcast streams contain errors which are invisble/ignored by VLC when played back
[11:15:11 CET] <BtbN> well, but does it work fine?
[11:15:41 CET] <geo_> the original recordings playback fine but ffmpeg spits out all the errors i listed before
[11:15:54 CET] <geo_> when attempting to convert to mp4
[11:15:55 CET] <kerio> does ffmpeg actually stop
[11:16:15 CET] <geo_> no just quits to command line prompt
[11:16:32 CET] <kerio> is the mp4 viewable
[11:17:20 CET] <kerio> also, are you actually transcoding it?
[11:17:27 CET] <kerio> or just remuxing?
[11:18:05 CET] <geo_> transcoding .ts to mp4
[11:18:20 CET] <BtbN> why transcode?
[11:18:21 CET] <kerio> ok the actual output doesn't really matter
[11:18:21 CET] <kerio> but
[11:18:24 CET] <kerio> is it viewable
[11:18:28 CET] <kerio> as in
[11:18:35 CET] <kerio> does ffmpeg spit out errors and then continue working until the end
[11:18:39 CET] <kerio> producing a valid video file
[11:18:43 CET] <kerio> that contains roughly what you expected to see
[11:18:58 CET] <kerio> or does ffmpeg stop in the middle at some point because some errors are fatal
[11:21:31 CET] <geo_> the mp4 will play but audio sync problems and the navigation ffwd rrwd will freeze VLC or SMPlayer
[11:59:13 CET] <CodecDev> Hello all.
[12:00:17 CET] <CodecDev> I am writing a simple player using ffmpeg. Is there any API or parameter using which I can get PTS and DTS value in drop/non-drop frame format. Thanks in advance.
[12:43:34 CET] <kerio> huh... i can put ffvhuff in rawvideo
[12:43:36 CET] <kerio> how do i pull it out
[12:43:39 CET] <kerio> can i pull it out
[12:44:24 CET] <dsc_> i can pull something out
[12:44:40 CET] <dsc_> :-o
[12:50:40 CET] <c00lways> hi, I'm facing cross compile issue with ffmpeg, even thou I've all library with lib264 and libvorbis compiled to /home/vagrant/ffmpeg, it still states libvorbis not found
[12:51:49 CET] <BtbN> check the config log and see what's missing
[12:52:29 CET] <c00lways> okay
[12:53:06 CET] <c00lways> i got this fatal error: ogg/ogg.h: No such file or directory
[12:53:38 CET] <c00lways> ohh ogg missing
[12:57:18 CET] <c00lways> when i configure libvorbis, i received this: Package ogg was not found in the pkg-config search path
[13:23:32 CET] <c00lways> ohh i got it solved: export PKG_CONFIG_PATH=/home/vagrant/ffmpeg/lib/pkgconfig
[13:40:14 CET] <kerio> ksk: -f containertype -
[13:40:20 CET] <kerio> or -f containertype pipe:
[14:00:03 CET] <c00lways> anyone encountered this when running ffmpeg? Expected int64 for y but found 1
[14:00:29 CET] <c00lways> is this related to arm32bit trying to run 64bit?
[14:00:33 CET] <c00lways> ffmpeg?
[14:38:05 CET] <CodecDev> I am writing a simple player using ffmpeg. Is there any API or parameter using which I can get PTS and DTS value in drop/non-drop frame format. Thanks in advance.
[14:38:17 CET] <BtbN> in what format?
[14:38:45 CET] <CodecDev> DF / NDF .
[14:39:12 CET] <BtbN> And that's supposed to be what?
[14:39:40 CET] <BtbN> you get the frame pts in stream timebase units. if you need some other base, you have to rescale it
[14:40:19 CET] <CodecDev> Yes I want in timebase units only but the values to be as per NDF standard.
[14:40:47 CET] <CodecDev> I hope you are aware about drop frame timecode.
[14:41:26 CET] <CodecDev> https://documentation.apple.com/en/finalcutpro/usermanual/index.html#chapter=D%26section=6%26tasks=true
[14:42:02 CET] <BtbN> so it's some apple specialty? ffmpeg gives you exactly the pts I just mentioned. Everything else you have to come up with yourself
[14:42:49 CET] <ozette> when segmenting a video (hls) do the segments have the same resolution as the source?
[14:43:11 CET] <BtbN> ozette, if all you do is cutting it in parts, of course
[14:43:21 CET] <ozette> okay thanks, wasn't sure
[14:45:07 CET] <ozette> i don't recall where/how, but i had the idea that when transcoding ffmpeg may output whatever is 'default'
[14:45:33 CET] <BtbN> You don't need to transcode to output hls.
[14:45:46 CET] <BtbN> If you tell ffmpeg to scale, it can of course do that.
[14:46:24 CET] <ozette> so, hls is essentially the same format as the source?
[14:46:51 CET] <BtbN> hls is segmented mpegts and a playlist
[14:47:00 CET] <ozette> i thought that video to hls was transcoding
[14:47:02 CET] <BtbN> what you put in there and how you process is is entirely up to you
[14:47:42 CET] <ozette> oh? but hls is a standard
[14:47:44 CET] <DHE> HLS is (officially) stringent on the formats. H264 and AAC only. and the original intention was to make multiple variants (low,medium,high quality) available
[14:47:52 CET] <DHE> well technically it isn't. it's a draft standard
[14:48:15 CET] <DHE> but implementation is straight-forward enough and it's what apple devices officially support
[14:48:24 CET] <ozette> i see
[14:48:42 CET] <ozette> for different qualities i will first rescale the video to different resolutions
[14:48:47 CET] <ozette> and then segment each of those resolutions
[14:49:33 CET] <DHE> I've done this. ffmpeg can do all the variants in a single shot. in fact this is probably the best way to do it.
[14:50:09 CET] <ozette> you mean i don't have to rescale first?
[14:50:10 CET] <BtbN> not really
[14:50:24 CET] <BtbN> running multiple parallel encodes in one ffmpeg process is kinda inefficient
[14:50:58 CET] <DHE> eg: ffmpeg -i input.mp4   -s 1920x1080 -f hls 1080p.m3u8   -s 1280x720 -f hls 720p.m3u8  ....
[14:51:12 CET] <ozette> aha
[14:51:17 CET] <DHE> obviously that's very incomplete. you need codec parameters for each one.
[14:51:19 CET] <BtbN> it's better to fire up multiple ffmpeg processes in parallel
[14:51:31 CET] <BtbN> Otherwise the encoders will slow each other down
[14:51:53 CET] <ozette> hmm, i will test this
[14:53:35 CET] <ozette> the way i was originally planning to do this was serially
[14:56:30 CET] <ozette> anyhow, video to hls is still transcoding right?
[14:56:56 CET] <DHE> BtbN: I would argue otherwise. x264 is a parallel and background-capable encoder, so wouldn't a single process decoding and feeding multiple x264 instances be overall better than several ffmpeg instances?
[14:57:04 CET] <ozette> video being any format
[14:57:14 CET] <BtbN> DHE, no, because ffmpeg.c is strictly single threaded.
[14:57:33 CET] <BtbN> It encodes one frame with every libx264 instance it starts, then progresses to the next frame, and so on
[14:57:43 CET] <DHE> ozette: if the source is h264 and you're okay with using that as your bitrate, you can use it straight-up most of the time.
[14:57:52 CET] <BtbN> So the slowest libx264 will slow down all the others as well
[14:58:07 CET] <DHE> BtbN: but doesn't libx264 take the frame and return fairly quickly for background processing? (assuming not using zerolatency mode, etc)
[14:58:11 CET] <DHE> I thought it did
[14:58:32 CET] <BtbN> It has a delay, but it will eventually start outputting frames.
[15:01:47 CET] <ozette> would love to see some metrics showing the difference in execution time until program return
[15:03:27 CET] <BtbN> if the slowest encoder runs at 120 fps, it essentialy forces to run the entirety of ffmpeg to run at that framerate
[15:03:51 CET] <BtbN> and even slower, as the one encoder runs at that speed, and after it's done, all the other encoders have to do their thing
[15:11:33 CET] <kerio> BtbN: you get to decode only once tho
[15:12:04 CET] <BtbN> so? Decode once, pipe to encode processes, done.
[15:12:36 CET] <kerio> i only ever used multiple outputs in livestreaming situations
[15:12:46 CET] <kerio> where i was hitting realtime anyway
[15:12:53 CET] <kerio> but ack
[15:18:26 CET] <[-T-]> Hey, is there a way in the code, to know if an option was set ?
[15:18:39 CET] <[-T-]> For instance, i have "framerate" option which default value is 25
[15:19:01 CET] <[-T-]> i want to know if 25 was actually passed to the cmd line or if it is the default because the param was not set
[15:20:18 CET] <kerio> is ultrafast that much worse than veryfast?
[15:20:22 CET] <kerio> in libx264
[15:20:55 CET] <BtbN> iirc ultrafast forces it down to constrained baseline
[15:21:12 CET] Action: kerio grumbles at the lack of ffmpeg 3 in freebsd ports
[15:23:25 CET] <kerio> is -tune zerolatency actually important?
[15:26:08 CET] <furq> no
[15:26:26 CET] <furq> well yes but you shouldn't use it unless you need the very specific thing it does
[15:26:50 CET] <furq> which is not "make my twitch streams appear fastar!!" as most people think
[15:29:01 CET] <kerio> what does it do ;o
[15:29:31 CET] <BtbN> it turns of reordering
[15:29:46 CET] <furq> --bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --sliced-threads --rc-lookahead 0
[15:30:03 CET] <kerio> BtbN: reordering would be bframes right
[15:30:15 CET] <furq> lots of things that you really don't want to do unless you need <1 frame of latency
[15:30:45 CET] <kerio> what if i want those sub-10ms encodings
[15:30:56 CET] <furq> if you want them then you'll need it
[15:31:53 CET] <kerio> and then probably also intra-refresh, right
[15:32:03 CET] <kerio> ...do commercial players even support that
[15:32:03 CET] <furq> most people who use it because they saw it on a pokemons game streaming wiki are using a streaming service that introduces 5-60 seconds of latency anyway so they're just screwing themselves over for no reason
[15:32:37 CET] <furq> no idea about commercial players, but it works in browsers on windows
[15:32:56 CET] <furq> so it's not some specialist feature you need a specific decoder for
[15:33:17 CET] <kerio> i wonder if it works in videotoolbox
[15:38:11 CET] <kerio> it does
[15:45:58 CET] <DHE> [-T-]: there is an SEI record in the stream that summarizes the encoding parameters. running 'strings' on your video might find it fairly quickly
[15:46:26 CET] <[-T-]> DHE sorry it's not what I meant
[15:46:29 CET] <[-T-]> it's simpler than that
[15:47:12 CET] <[-T-]> i just need to know, inside the ffmpeg source code for instance in qsvenc.c, if a parameter was set from command line or not
[15:47:49 CET] <[-T-]> basically, i want to differentiate between a parameter that is set to it's default value, because it was like this in the command line, or because it was not set
[15:47:53 CET] <BtbN> there is no way to know that. Use a default value that can't be set via commandline
[15:48:06 CET] <[-T-]> yeah, I used 12345 for the framerate
[15:48:09 CET] <kerio> how do you manually set the option to what the consequence of "unset" should be
[15:48:12 CET] <[-T-]> but it's a bit hackish ...
[15:48:27 CET] <BtbN> usualy something like -1, INT_MAX or the like is used
[15:48:53 CET] <[-T-]> Ok I will try these values, it's a better option indeed
[15:48:54 CET] <[-T-]> thanks
[15:49:01 CET] <kerio> or use another option
[15:49:34 CET] <bencoh> zerolatency is "important" for some applications, and it does work when used properly :)
[16:03:20 CET] <kerio> zerolatency would be great but i can't play my webcam without like a 2 second delay locally, with avfoundation
[16:06:40 CET] <DHE> zerolatency is bad for when you have tight bitrate constraints because x264 has no planning capability
[16:08:20 CET] <kerio> well i have 20mbps upload
[16:08:23 CET] <kerio> :^)
[16:10:26 CET] <DHE> JEALOUSY.
[16:10:57 CET] <furq> i could upgrade to 20mbps upload but my isp calls that the GAMER package
[16:11:04 CET] <furq> so i'm stuck on 10 until they rename it
[16:11:19 CET] <kerio> why's that
[16:11:28 CET] <furq> it's a matter of principle
[16:12:13 CET] <furq> i'm not sure why they call it the GAMER package. quakeworld works just fine with 128kbps upload
[16:13:14 CET] <kerio> oh look at me i'm so old i wouldn't know what these modern "GAMERS" do with lots of upload
[16:13:17 CET] <spaam> furq: maybe they think that GAMERS share their gameplay on youtube or twitch :)
[16:13:43 CET] <furq> sounds appalling
[16:14:37 CET] <kerio> i'm pretty sure that my old 20/1 line was sometimes bottlenecked by the lack of upload
[16:14:53 CET] <furq> i'm sure they accompany this gameplay with the "dub-step" i've heard so much about
[16:15:22 CET] <kerio> it's all about trap nowadays i think
[16:15:34 CET] <spaam> is big room house last year?
[16:16:01 CET] <kerio> honestly gaming culture went downhill the moment people stopped using prodigy in their video
[16:16:14 CET] <kerio> what is this dab thing
[16:16:34 CET] <furq> i had to look up big room house
[16:16:36 CET] <furq> Deadmau5 posted a song on SoundCloud, "DROP DA BOMB", satirizing the style of "commercial" house music and big room.
[16:16:43 CET] <furq> it's not a good sign if deadmau5 can satirise you
[16:16:57 CET] <kerio> furq: https://www.youtube.com/watch?v=97fFYsMbVvE
[16:17:29 CET] <furq> is this a dub step
[16:17:32 CET] <kerio> no
[16:17:47 CET] <furq> oh wait this is trap isn't it
[16:17:48 CET] <kerio> ok actually for a better representation of the effect
[16:18:15 CET] <furq> or has that split into 17 subgenres that people in thick glasses with no lenses will mock you for being ignorant of
[16:19:02 CET] <kerio> furq: https://www.youtube.com/watch?v=geFYnNuuURk&t=1m13s
[16:19:35 CET] <furq> is the sound broken on this video
[16:19:44 CET] <kerio> absolutely
[16:19:55 CET] <kerio> I ABRRRRRRRRRRRRRRRRRRRRRRRRRR
[16:20:07 CET] <kerio> hilarious
[16:20:23 CET] <furq> sometimes the dash demuxer in firefox craps out and i get a second of fucked audio
[16:20:27 CET] <furq> that sounds better than this video does
[16:20:52 CET] <kerio> how does that even happen
[16:20:56 CET] <kerio> not the bad audio
[16:20:57 CET] <JEEB> firefox doesn't have a dash demuxer, it's all JS. it has a ISOBMFF fragment demuxer, though :P
[16:20:58 CET] <kerio> that's understandable
[16:21:07 CET] <kerio> but why would anyone upload a video with the audio like that
[16:21:09 CET] <furq> whatever it is that constantly causes youtube to break
[16:21:36 CET] <kerio> wasn't there a way to trick youtube into feeding you a mp4 or something
[16:21:45 CET] <kerio> is DASH the only way now
[16:22:04 CET] <furq> http only works with certain formats
[16:22:13 CET] <furq> 360p and 720p iirc
[16:22:23 CET] <kerio> ah yep
[16:22:30 CET] <kerio> 22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2 at 192k (best)
[16:22:33 CET] <kerio> youtube-dl knows whats up
[16:22:54 CET] <furq> firefox didn't support dash for about 18 months after youtube switched that out
[16:22:58 CET] <furq> so i couldn't watch anything in 480p
[16:23:00 CET] <furq> that was nice
[16:23:08 CET] <kerio> why's opus 160k there
[16:23:17 CET] <kerio> i thought opus was shite at high bitrates
[16:23:22 CET] <kerio> you know, compared
[16:23:39 CET] <furq> you thought wrong
[16:24:08 CET] <furq> the aim is to be the best at any bitrate, although i've not seen any multiformat listening tests above 96k
[16:24:22 CET] <furq> mostly because nobody can hear any difference at >=128k
[16:24:25 CET] <kerio> yea lmao
[16:24:56 CET] <kerio> Burn the Witch ends up at 1826kbps in ALAC :3
[16:25:09 CET] <furq> is that a dub step
[16:25:14 CET] <kerio> ...HOW COULD YOU D;
[16:25:16 CET] <kerio> radiohead
[16:25:21 CET] <furq> even worse
[16:25:25 CET] <kerio> fite me
[16:25:50 CET] <kerio> no but seriously the latest album is a masterpiece
[16:26:17 CET] <JonG> I have a question unfortunately unrelated to "trap" or a "dub step" ... I have an FFmpeg command that takes an arbitrary number of small (~10s) clips and merges them into a single larger movie. It uses filter_complex with e.g. (a)trim, (a)setpts, (a)fade on each clip, and concat, amix, volume and overlay to combine them. This all happens in a singl
[16:26:17 CET] <JonG> e filter_complex. I am experiencing what I think is an out of memory error (exit code 9) for larger numbers of clips (~5-10) on less powerful devices. What is the best way for me to get around this? Is it to split the large filter_complex into multiple smaller ones that save to intermediary files? Presumably I will take a reasonable speed hit becau
[16:26:17 CET] <JonG> se of multiple decode / encodings? Is it useful for me to pastebin an example command? It is generated automatically and can have reasonable variation.
[16:27:21 CET] <furq> i wish i knew the answer because that opening sentence deserves credit
[16:27:35 CET] <JonG> :D
[16:27:45 CET] <kerio> hm
[16:27:56 CET] <kerio> i wonder if it would be possible to only transcode the fading portions
[16:28:02 CET] <kerio> probably not
[16:28:36 CET] <c_14> JonG: check the output of dmesg
[16:28:40 CET] <c_14> Is it actually being OOM-killed?
[16:29:46 CET] <JonG> c_14: I am working on Android. I will have to check if I have access to dmesg.
[16:30:01 CET] <c_14> JonG: might be in logcat somewhere
[16:31:50 CET] <hamsheet> stuck conversion ;( frame=107146 fps= 93 q=29.0 size=  301770kB time=00:59:31.45 bitrate= 692.2kbits/s speed=3.09x (ffmpeg.exe -y -i "%A" -c:v libx264") on windows
[16:32:29 CET] <hamsheet> is there a way to get  more info about why it is stuck?
[16:33:01 CET] <c_14> JonG: and it should return 137 if it actually got SIGKILLed, anything less than 128 is returned by the application and is not the cause of a signal
[16:33:02 CET] <hamsheet> linux versions never do that but I get this kind of freeze once in a while on winx64
[16:34:16 CET] <furq> hamsheet: is %A just a regular file
[16:34:28 CET] <hamsheet> yeah it is just part of batch
[16:34:34 CET] <furq> nvm then
[16:34:45 CET] <furq> i thought it might stand for avisynth script, in which case i'd have a pretty good idea why it froze
[16:35:00 CET] <hamsheet> some are mp4 some are mov files, big files though some are
[16:35:36 CET] <hamsheet> could it be multithreading? I see ffmpeg is using %100 (I have 12 cores here)
[16:36:07 CET] <furq> are these the zeranoe builds
[16:36:42 CET] <hamsheet> ffmpeg-20161110-872b358-win64-static
[16:36:56 CET] <furq> shouldn't be an issue then
[16:37:10 CET] <hamsheet> not sure who bbuild them but i got them from ffmpeg site, whatever is linked or referenced from there
[16:37:13 CET] <furq> i vaguely remember some issues with builds which use win32 threads instead of pthreads, but zeranoe uses pthreads
[16:37:37 CET] <hamsheet> it converts some of them them but once in a while I get freezes, for instance I got another one yesterday about 50000 frames
[16:37:57 CET] <hamsheet> furq: are there other builds?
[16:38:07 CET] <furq> https://ffmpeg.zeranoe.com/builds/
[16:38:11 CET] <furq> try the stable version i guess
[16:39:08 CET] <hamsheet> furq: yeah maybe I should tyr that
[16:39:32 CET] <hamsheet> I just enabled the debug log lets see if i can catch a line when it freezes
[16:39:57 CET] <hamsheet> I cant be running out of memory too, i have 32gb here
[16:40:17 CET] <hamsheet> it should crash with out of ram anyways
[16:41:00 CET] <hamsheet> however I see that sometimes ffmpeg comes to a crawl converting couple frames a sec on linux too, not sure if it is a video format thing
[16:44:56 CET] <jonascj> Hi all. I have two videos from a GOPRO camera (Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p, 848x480 [SAR 1:1 DAR 53:30], 30089 kb/s, 240 fps, 240 tbr, 720k tbn, 480 tbc), and I'm trying to align them to display side by side.
[16:46:52 CET] <jonascj> by aligning I mean I'm trying to shift them back and forth in time until the same events occur at the same time in the two videos
[16:48:10 CET] <jonascj> the two videos are of two monitors playing the same content, so I know almost down to the frame how the two should be aligned / matched.
[16:48:26 CET] <kerio> yo dawg i heard you like videos
[16:48:53 CET] <kerio> jonascj: open them both in mpv, click on the time display to also display the millisecond, . to advance frame by frame?
[16:49:35 CET] <kerio> once you know the exact time offset, ffmpeg -ss time -i video
[16:53:55 CET] <jonascj> kerio: so you would do it be cutting the videos to begin at the same time?
[17:00:11 CET] <JonG> c_14: adb shell dmesg | grep "company_name": <4>[17178.134274,2] send sigkill to 19188 (k.android.company_name), adj 411, size 24858
[17:00:57 CET] <c_14> JonG: what codec are you using to encode the video output?
[17:01:30 CET] <JonG> libx264
[17:05:32 CET] <c_14> That's probably what's using most of the memory, you can try using less threads or a different encoder
[17:06:12 CET] <c_14> (most filters only need to keep a single raw frame at a time while the encoder will buffer several for rate-control/motion-estimation etc)
[17:08:38 CET] <JonG> Is there an alternative encoder you would recommend?Related to my original suggestion, do you have any thoughts on whether it would help to split the filter_complex into segments and output intermediate files? Or not worth it?
[17:09:41 CET] <c_14> any intra-frame-only codec will probably use much less memory (you can also use libx264 with a gop of 1)
[17:09:52 CET] <c_14> You can try splitting the filters, but I don't think you'll save much memory there
[17:10:45 CET] <kerio> jonascj: i guess so?
[17:10:48 CET] <kerio> what were you planning on doing?
[17:11:02 CET] <kerio> you could add some black frames at the beginning of the one that begins later
[17:22:15 CET] <jonascj> kerio: I was just wondering if you could every achieve alignment on frame level by going through timestamps, maybe I had to explode both videos into individual frames, delete frames until they match, then recombine frames into video
[17:50:59 CET] <kepstin> JonG: using '-preset superfast' or '-preset ultrafast' will probably cut down the mem usage quite a bit (that reduces the reference frames and lookahead), and -threads 1 could help too
[18:03:26 CET] <JonG> kepstin: OK, thanks, I'll take a look at that too. I was just experimenting with libx264 and a gop of 1.
[18:07:42 CET] <ksk> kerio: thanks!
[18:08:06 CET] <kerio> wait what did i do
[18:09:28 CET] <kerio> furq why didn't you tell me about ffvhuff
[18:10:27 CET] <jonascj> Is there a way to extract all frames without fretting about whether some frames gets skipped or duplicated? E.g. I worry that r=240 will miss some frames despite ffmpeg reports the video as 240 fps.
[18:10:35 CET] <jonascj> * "-r 240"
[18:11:56 CET] <kerio> it's noticeably bigger than ffv1 but not excessively so
[18:12:01 CET] <kerio> and it's... mindboggingly fast
[18:15:09 CET] <kerio> is there a documentation page for ffvhuff?
[18:15:15 CET] <kerio> in the wiki or whatever
[18:34:43 CET] <furq> kerio: it's even less compatible than ffv1
[18:35:04 CET] <furq> and it's quite a lot bigger in my experience
[18:35:12 CET] <furq> it is the fastest by some distance though
[18:35:36 CET] <kerio> it's the fastest by an order of magnitude
[18:35:41 CET] <kerio> at least on my gray16 videos
[18:35:52 CET] <furq> it was about 1.5x the speed of huffyuv last i checked
[18:35:56 CET] <furq> although i didn't test gray16
[18:36:16 CET] <furq> if you only ever need to decode it with ffmpeg then it's a good choice if you just need speed
[18:41:08 CET] <kerio> furq: i mean, i'm still getting insane space reductions
[18:41:10 CET] <kerio> like, over half
[18:41:17 CET] <kerio> my video is gray16 but with very little dynamic range
[19:28:03 CET] <durandal_1707> kerio: tried utvideo?
[19:31:10 CET] <kerio> durandal_1707: it doesn't appear to be able to do gray16 :\
[20:13:07 CET] <t4c0c4t> are there any quick optimizations that can be made with nvenc (GPU) like -threads on libx264?
[20:33:20 CET] <DHE> t4c0c4t: not really. you can change the preset to a number of options. high quality, low quality, and multi-pass are available with obvious performance tradeoffs
[21:21:38 CET] <MrMonkey31> yo.  does any1 here know, I'm going for a hypothetical 5th pass using libx265 in ffmpeg.  but my 4th pass command never ran.  what happens then?
[21:22:22 CET] <MrMonkey31> would it treat the current command as just a generic "next pass"?  would it complain that the previous pass statistic file thingy is missing?  or...?
[21:22:44 CET] <llogan> you should do 40 passes
[21:22:59 CET] <MrMonkey31> I have been illuminated .00004%
[21:24:08 CET] <MrMonkey31> my actual question is- would it matter by what mechanism the prior pass was omitted?  maybe the command never ran, or maybe it ran and the station lost power, or perhaps it ran but someone pressed q before it finished
[21:24:38 CET] <ibisr> Is there a way with -ss and -to args to specify a specific pts rather than seconds or timecode?
[21:25:26 CET] <MrMonkey31> [I know that with h264 there's a couple temp files created, but h265 normally I only find one file containing 0 bytes]
[21:25:53 CET] <Pandela> Afternoon
[21:26:54 CET] <Pandela> Is it possible to output whats playing in ffplay into an avi/mp4 container?
[21:27:47 CET] <furq> ibisr: if you're reencoding you can do it with the select filter
[21:27:57 CET] <furq> and probably some other filters
[21:28:33 CET] <furq> Pandela: no, but you can pipe from ffmpeg into ffplay and save the file at the same time
[21:30:06 CET] <Pandela> furq: Damn...I don't think thats exactly what I need because I'm applying different filters to the udp stream, and another filter upon recieving the stream in ffplay. Wanted to render that result
[21:30:17 CET] <BtbN> libx265 can do more than 2 pass encoding? oO
[21:30:23 CET] <BtbN> what's the gain of that?
[21:33:59 CET] <DHE> in theory the 2-pass stats get more "refined" with a second pass. I don't think it matters much unless you need "maximum quality with an exact target bitrate requirement"
[21:34:05 CET] <DHE> can't imagine why that's such a big deal though
[21:35:10 CET] <MrMonkey31> guys, my question only pertains to what happens if my encoding was interrupted?  how do I know for example that the 2nd pass is a real 2nd pass, and not just ffmpeg ignoring the fact that there is no data from the first pass even coming in?
[21:36:06 CET] <MrMonkey31> the behavior I have seen with libx264 is that a pair of (stat?) files get made during the 1st pass, then they get renamed when that pass completes
[21:36:45 CET] <MrMonkey31> it's all very mysterioso, and I don't care to unravel it.  I only care that my final encode is optimal
[21:39:05 CET] <DHE> well libx264 will log a warning if the 2nd pass is longer than the first, and error out entirely if there is no logfile for -pass 2
[21:42:00 CET] <MrMonkey31> DHE ah ok that's what I'm looking for but for h265?  I also observed that the log file name has "pass-0" in it or something to that effect, but that number never does increase (I had been testing a 4 pass thing when I first learned about h265)
[21:42:08 CET] <MrMonkey31> ahem about h264 rather
[21:43:19 CET] <MrMonkey31> so I'm at pretty low confidence, and thinking about abandoning 2 pass encodes entirely.  hell, it saves our coal right?
[21:44:43 CET] <MrMonkey31> h265 has no log file as I have been told, and frankly I defy anyone to learn this answer from searching the web in under 20 solid mins of searching
[21:45:19 CET] <DHE> depends on your needs. 2-pass is to get an exact file size target
[21:46:08 CET] <MrMonkey31> well - the only thing I haven't tried, because I thought I'd ask around first, is to simply run a command
[21:47:18 CET] <MrMonkey31> that would be the 3rd command in the series that pertains to the question: the first two being for a 1st pass and which completed, and the 2nd for a second pass which did not complete.  I was afraid the wrong thing would destroy the progress from an 8 hour 1st pass run
[21:47:56 CET] <MrMonkey31> maybe running the 2nd command once more will resume as expected and desired, or maybe not.  that's the dilemma
[21:48:30 CET] <MrMonkey31> so that is what I shall do, and if it garners anything useful I will report
[21:48:46 CET] <llogan> you could use -t (and optionally with -ss) to encode a short segment for testing
[21:49:14 CET] <ibisr> furq: That sure looks like it might do what I want, thanks!
[21:49:16 CET] <DHE> what's the goal? do you have a bitrate constraint? a file size constraint? do you not care and just need it to look good?
[21:50:03 CET] <Pandela> Have any of you been able to pick up an ffmpeg stream in say, Manycams IP camera freature?
[21:50:21 CET] <Pandela> *feature
[21:54:05 CET] <MrMonkey31> DHE, right now the goal is to determine what to do when a 2 pass encode fails during the 2nd pass, when using libx265
[21:54:50 CET] <MrMonkey31> I've run the command for the 2nd pass and got this message: "Error opening file ffmpeg2pass-0.log. / Error opening file ffmpeg2pass-0.log."
[21:55:19 CET] <MrMonkey31> then I created an empty file with that name, and tried again.  it commenced encodeing without any complaints
[21:55:46 CET] <MrMonkey31> (-yet)
[21:56:17 CET] <MrMonkey31> so I'm not prepared to wait for this thing to complete right now, and will cancel it with ctrl-c as I had done last time
[21:57:48 CET] <MrMonkey31> I believe that with libx264 - which I am not using in this - that quitting the 2nd pass will destroy the data from the 1st pass, by replacing the log files from that pass with the partial logs created during the 2nd pass
[21:57:52 CET] <llogan> you didn't really answer his questions. your answers may reveal that you are wasting your time with multiple passes
[21:58:33 CET] <MrMonkey31> llogan, if you worry about other folks wasting their time, wouldn't that sorta be... a waste of your time?
[22:00:54 CET] <MrMonkey31> I just desire to know that my 1st pass is indeed being used.  the presence of temp files would give such knowledge, but libx265 denies us that.  were I more capable, I could find out for myself where it tucks the temporary data from the 1st pass, and that would effectively also be of use
[22:00:55 CET] <DHE> MrMonkey31: no no. I'm asking this to determine if 2-pass video encoding makes sense in the first place
[22:01:03 CET] <DHE> ah, llogan already clarified
[22:01:18 CET] <MrMonkey31> I am NOT a troll, goddamit!
[22:01:28 CET] Action: MrMonkey31 lurches about comically, with arms bent
[22:01:45 CET] <MrMonkey31> well I asked the #x265 folks first
[22:01:59 CET] <MrMonkey31> but they are all preoccupied
[22:02:18 CET] <MrMonkey31> DHE, I'm sure it makes sufficient sense for my purposes, or I would not seek to use it to begin with.
[22:02:48 CET] <unkmar> I have difficulties I'm attempting to solve.  How in depth should I go in order to ask my questions?
[22:02:58 CET] <DHE> not judging. a lot of people don't know what the options are
[22:03:31 CET] <MrMonkey31> I literally seek data.  temporary data.  which this program has made
[22:03:37 CET] <unkmar> Disclainer: Not able to test at the moment.  On work PC and Home PC is where my difficulties are.
[22:04:26 CET] <llogan> the command and resulting complete console output (provided via a pastebin link), and a general description of the issue is usually sufficient.
[22:06:04 CET] <unkmar> In this case, the command and resulting console output may be irrelevant.  I may be tackling the problem wrong.
[22:06:26 CET] <MrMonkey31> unkmar, how's the weather in Mordor right now?
[22:08:11 CET] <unkmar> Overview: I'm a streamer that wishes to have and change scenes without stream interruption, I'd also like to provide dynamic info, Such as latest detected follower.
[22:09:35 CET] <llogan> unkmar: zmq may be of use https://ffmpeg.org/ffmpeg-filters.html#zmq_002c-azmq
[22:09:40 CET] <unkmar> I already have all the audio and video bitrate and encoding formats figured out.
[22:10:47 CET] <unkmar> llogan: Thank you.  That likely will help by many magnitudes.
[22:11:05 CET] <unkmar> I had been fighting for hours to do things the wrong way.
[22:11:06 CET] Action: MrMonkey31 grumbes
[22:14:57 CET] <unkmar> MrMonkey31: Smoky overcast with a small chance of showers.
[22:21:25 CET] <MrMonkey31> well, grab your lembas, folks, we're going on a hike!
[22:31:30 CET] <MrMonkey31> well, ty all for reading, I guess this is rly a question for somebody familiar with the vagaries of libx265 particularly.  I'm content to bypass it in future altogether, by using h264 for instance, or just stick to the crf method
[22:37:50 CET] <Chloe[m]> can you compile ffmpeg without msys or cygwin on windows? using only mingw
[22:42:38 CET] <unkmar> Chloe[m]: I don't usually use Windows or compile.  So, I can't help.
[23:06:46 CET] <blb> Chloe[m]: it might be weird, but i prefer using the environment setup by the "git for windows sdk"
[23:07:05 CET] <blb> afaik, it's mingw/msys
[23:07:25 CET] <furq> that's msys
[23:08:24 CET] <furq> i imagine it's possible to do it without msys but it's certainly not supported or recommended
[23:08:29 CET] <drv> you need some kind of posix shell to run configure, so "no" is the short version of the answer
[23:08:44 CET] <furq> you'd need to replicate everything done by configure by hand, and that sounds terrible
[23:08:56 CET] <Chloe[m]> ok, thanks :(
[23:09:08 CET] <furq> i normally just cross-compile
[23:09:38 CET] <blb> i use that to build with msvc, which gives you symbols 'n stuff
[23:11:14 CET] <furq> msys2 used to be an absolute nightmare but apparently it's a lot better now
[23:11:24 CET] <furq> they claim to have fixed the pacman behaviour that constantly broke everything
[23:18:02 CET] <unkmar> pacman behaviour?
[23:41:42 CET] <Chloe[m]> can I disable all video codecs categorically?
[23:43:32 CET] <furq> --disable-encoders --disable-decoders
[23:43:53 CET] <DHE> ./configure --disable-decoders --disable-encoders --enable-decoders=pcm*,aac*,theora,mpeg*,h264 --enable-encoder=libx264,libx265
[23:44:04 CET] <DHE> for a very limited decoder (and encoder) set
[00:00:00 CET] --- Wed Nov 16 2016


More information about the Ffmpeg-devel-irc mailing list