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

burek burek021 at gmail.com
Mon Jan 27 02:05:01 CET 2014


[06:41] <DeadSix27> is there a way using ffmpeg, to watermark text into the video, or images produces by it?
[06:41] <DeadSix27> e.g top right corner time code
[06:41] <DeadSix27> or similiar sutff
[06:44] <sacarasc> You can use the text video filter thing, or maybe the overlay one if you want an image.
[06:44] <DeadSix27> drawtext ?
[06:44] <DeadSix27> i just found out about that
[07:10] <DeadSix27> never had more syntax problems than with that drawtext thing
[07:11] <DeadSix27> hell
[07:29] <clever> ffmpeg -i Color\ Bars.mov -vf "drawtext=text=%{n}:fontcolor=black:fontsize=70:x=20:y=20" num.mp4
[07:29] <clever> DeadSix27: i had used this to draw frame numbers on every frame
[07:30] <clever> might help as an example of a valid command
[07:30] <clever> bbl
[07:34] <DeadSix27> windows btw
[07:35] <DeadSix27> which gives weird syntax escaping issues
[07:37] <DeadSix27> filter line: http://pastie.org/private/agzkrkxvjs3arldat0oa | result: http://i.imgur.com/Vd458uu.png
[07:40] <NoZero> I came hee for help yesterday.
[07:40] <NoZero> I asked to get started in VC++ using FFMPEG
[07:40] <NoZero> you told me I need MinGW
[07:40] <NoZero> bullshit
[07:40] <NoZero> If you don't KNOW, don't advise!!
[07:41] <NoZero> Put this in your notes for the next guy:
[07:41] <NoZero> Empty project (recommended)
[07:41] <NoZero> Project Properties > (All Configurations) > Configuration Properties > C/C++ > General >  Additional Include Directories:
[07:41] <NoZero> 	 ../ffmpeg/include/;../ffmpeg/include/libavcodec;../ffmpeg/include/libavdevice;../ffmpeg/inclu de/libavfilter;../ffmpeg/include/libavformat;../ffmpeg/include/libavutil;../ffmpeg/include/li bpostproc;../ffmpeg/include/libswresample;../ffmpeg/include/libswscale
[07:41] <NoZero> Project Properties > (All Configurations) > Configuration Properties > Linker > General >  Additional Library Directories:
[07:41] <NoZero> 	../ffmpeg/lib/
[07:41] <NoZero> Project Properties > (All Configurations) > Configuration Properties > Linker > Input >  Additional Dependencies:
[07:41] <NoZero> 	avcodec.lib avdevice.lib avformat.lib avutil.lib swscale.lib
[07:41] <relaxed> pastebin.com
[07:42] <NoZero> OP me
[07:43] <relaxed> also, did you read the docs before asking here?  http://ffmpeg.org/platform.html#Windows
[07:43] <DeadSix27> oh
[07:43] <DeadSix27> i get it sacarasc:
[07:43] <DeadSix27> it uses the resulting data.. after encode
[07:43] <DeadSix27> and i wonder why it kept saying 0 as frame number..
[07:43] <DeadSix27> also, figured the syntax
[07:44] <NoZero> of course I read the docs
[07:44] <NoZero> omg
[07:44] <NoZero> they are no help for VC++
[07:45] <NoZero> only how to install
[07:45] <NoZero> I tried 100 tutorials
[07:45] <NoZero> none would compile
[07:45] <sonto> I want to make up a software about audio/video meeting, can ffmpeg make it? thanks
[07:45] <DeadSix27> sacarasc: any idea how to get the timecode before conversion?
[07:45] <sacarasc> DeadSix27: Nope, sorry.
[07:45] <NoZero> After I figured out for myself how to Compile it I came here to share.
[07:47] <sonto> Are there any open softwares on multimedia meeting implemented with ffmpeg?
[07:47] <relaxed> NoZero: if you want to fix the docs, that's great, send a patch.
[07:47] <NoZero> lol
[07:47] <relaxed> NoZero: pasting random stuff in the channel is not helpful
[07:48] <NoZero> random stuff
[07:48] <NoZero> took me a week to come up with "random stuff"
[07:49] <NoZero> and without a thank you
[07:49] <NoZero> FFMPEG is not my project.
[07:49] <NoZero> I can't spend time perfecting your software for you (yet).
[07:50] <NoZero> I need to get this project done by the end of the month.
[10:26] <Tuplanolla> How can I change the frame rate of a video from n to m > n, using weighted averaging for constructing the frame transitions?
[10:28] <Tuplanolla> I tried using slowmoVideo, but its performance is really bad. Encoding 20 seconds of video took hours and so encoding an hour of video could take months.
[11:50] <Tuplanolla> I don't have months to spare.
[11:54] <relaxed> Tuplanolla: Have you tried ffmpeg? ffmpeg -i input -r $new_framerate output
[12:05] <Tuplanolla> Yes. It either duplicates or drops frames.
[12:13] <relaxed> As far as I know that's the only way it can.
[12:13] <Tuplanolla> How should I go about writing a filter for it then?
[12:14] <JEEB> libavfilter
[12:14] <JEEB> is the library that handles filters
[12:14] <JEEB> you should proceed to #ffmpeg-devel then
[12:14] <JEEB> that's the development discussion channel
[12:14] <JEEB> (for FFmpeg itself)
[12:14] <relaxed> http://wiki.multimedia.cx/index.php?title=FFmpeg_filter_howto
[12:16] <Tuplanolla> Can I combine existing filters using higher order functions?
[12:17] <JEEB> usage of existing filters can be done in the ffmpeg cli itself
[12:17] <JEEB> not sure if filters can use other filters
[12:17] <Tuplanolla> I'd only need basic homomorphisms.
[12:17] <JEEB> basically the filter_complex stuff
[12:17] <JEEB> which I have no idea of how to do
[12:19] <Tuplanolla> I find it strange how such a trivial operation isn't supported out of the box.
[13:49] <__raven> how to get a very detailed range of current vbr during encoding/transcoding?
[15:10] <saste> lkiesow, I don't follow github
[15:10] <saste> the better way is as usual to post patches on ffmpeg-devel
[17:05] <CapsLock> hi every one
[17:05] <CapsLock> I'm in search of a software to mix live video sources (the result would be sent to a streaming server)
[17:06] <CapsLock> Do you know a software which can do this ? (opensource would be appreciated)
[17:27] <lkiesow> saste: Ok, I will do that next time.
[17:27] <JEEB> CapsLock, something like this? http://www.casparcg.com/
[17:28] <JEEB> and then you can feed that to ffmpeg or whatever which then most probably can feed it to your streaming server
[17:34] <klaxa> casparcg looks nice
[17:39] <CapsLock> klaxa: hum, does it work on linux ?
[17:40] <klaxa> without looking at it any further, they say they run it 24/7, i haven't seen a windows system run 24/7 stable, so i would assume so
[17:41] <klaxa> it's windows though apparently
[17:41] <CapsLock> huhu
[17:41] <klaxa> the server at least
[17:41] <CapsLock> hum so not a valid candidate
[17:41] <CapsLock> I looked at some vjing software, like the nice GlMixer
[17:42] <CapsLock> but I do not find how to output live rendering to file
[18:02] <sineb> is it me or are nikon lenses much cheaper.....
[18:02] <sineb> um wrong channel
[18:14] <shevy> good that it was just about nikon lenses and not the pink underwear
[19:21] <ChocolateArmpits> Does anyone know if Constrained Baseline profile should be used over Baseline? Wikipedia seems to put it as a newer one.
[19:21] <ChocolateArmpits> That's for h.264
[19:35] <JEEB> ChocolateArmpits, you pretty much never see a baseline profile encode
[19:35] <JEEB> because baseline is not a subpart of main
[19:35] <JEEB> constained baseline is
[19:35] <JEEB> *constrained
[19:36] <JEEB> when you set --profile baseline in x264cli, or -profile:v baseline in ffmpeg
[19:36] <JEEB> you get constrained baseline
[19:36] <JEEB> not baseline
[19:41] <ChocolateArmpits> Can you explain "subpart" ?
[20:19] <bsdwolf> anyone using freebsd and have ffmpeg working?
[20:25] <shevy> I use linux and ffmpeg works beautifully on such a good OS
[20:26] <bsdwolf> yeah
[20:28] <shevy> :D
[20:28] <shevy> bsdwolf you can compile from the ffmpeg sources? http://ffmpeg.org/releases/ffmpeg-2.1.2.tar.bz2
[20:30] <bsdwolf> I have it installed already
[20:30] <bsdwolf> ffserver runs
[20:31] <bsdwolf> ffmpeg won't stream a web cam though
[20:41] <ChocolateArmpits> JEEB, Can you explain "subpart" ?
[20:41] <JEEB> whatever the real word was for that ^^; as in, X doesn't fit into Y.
[20:42] <JEEB> baseline does not fit into main feature-wise (there are things in baseline that main doesn't have)
[20:42] <JEEB> constrained baseline, on the other hand, does
[20:42] <ChocolateArmpits> You mean, constrained has what main has but what baselin doesn't have?
[20:42] <JEEB> no
[20:42] <ChocolateArmpits> baseline*
[20:43] <JEEB> main has more than constrained baseline
[20:43] <JEEB> but constrained baseline fits within the features of main
[20:43] <JEEB> thus, if a decoder supports main, it also supports constrained baseline
[20:43] <JEEB> this is not true for baseline
[20:44] <JEEB> because it has features that main does not have (the non-constrained baseline seemed to be some kind of pot of frustrations and weird ideas)
[20:44] <ChocolateArmpits> So even though baseline would take less processing power to decode than main, a main targetted decoder main not process baseline ?
[20:44] <ChocolateArmpits> may*
[20:44] <JEEB> baseline is not on the constrained baseline - main - high line
[20:44] <JEEB> it has its own features
[20:45] <JEEB> and that is why you generally don't see a H.264 stream that is tagged with the non-constrained baseline profile
[20:45] <ChocolateArmpits> The wikipedia table explains that
[20:45] <ChocolateArmpits> So is baseline at all used ?
[20:45] <JEEB> I've not seen it around
[20:46] <JEEB> probably some specific place that asked for those specific features uses or used it at some point
[20:46] <ChocolateArmpits> So if I'm targeting mobile devices, I should be using constrained, right ?
[20:46] <JEEB> yes
[20:47] <ChocolateArmpits> That's awkward, I've gone through somewhat technical looking documents on apple's website, it mentions baseline solely, nothing about constrained
[20:47] <JEEB> that's because everyone means constrained baseline when they say baseline
[20:47] <JEEB> it's literally been forgotten about
[20:48] <ChocolateArmpits> Then wikipedia article doesn't reflect that well ?
[20:48] <JEEB> well, the wikipedia article can list everything in the specification, can it not? I have no idea about it otherwise, but I see no bad in it listing that stuff since it after all is in the spec.
[20:49] <JEEB> that said, when someone says baseline, unless they're in for a very weird ride, you can bet your ass they're talking about constrained baseline
[20:50] <ChocolateArmpits> I mean the fact that the real "Baseline" has been superseded by Constrained isn't worded very strongly or made any heavy notice
[20:51] <ChocolateArmpits> That's why I came here to ask more on this
[20:51] <JEEB> specification wise it has not been superceded, and the baseline profile did not get pretty much an use at all
[20:52] <ChocolateArmpits> Well, the article says constained came only after the real baseline
[20:52] <ChocolateArmpits> If they bear the name it would be logical (?) to say they have something in common through their purpose, no?
[20:53] <ChocolateArmpits> Well the purposes also match
[20:53] <JEEB> well, they do bear a similar name, but they're just feature levels basically
[20:53] <JEEB> and yes, it was added most probably because no-one was using or implementing the baseline features
[20:54] <JEEB> I'm surprised that it says that constrained baseline was only added in 2009
[20:56] <JEEB> which of course might be true, but in that case we had a very very long part of time where you probably had no-one say they did baseline profile decoders :D Because then you would have had to support those features that aren't in main.
[20:59] <ChocolateArmpits> But wait, doesn't that mean that any mobile device that relied on the original baseline, actually uses baseline, say original iPhone?
[20:59] <ChocolateArmpits> So if then anyone would want to still support it would have to use the original baseline ?
[21:00] <ChocolateArmpits> Possible even 3G and 3GS versions
[21:00] <JEEB> no
[21:01] <ChocolateArmpits> Care to explain ?
[21:01] <JEEB> as in, it doesn't matter to you because constrained baseline is a subset of baseline, and nothing supported the baseline-only features of baseline
[21:01] <JEEB> so for you there is only one baseline, constrained baseline
[21:02] <JEEB> in other words, you want to use whatever x264 outputs with -profile:v baseline or --profile baseline (depending on if you're using ffmpeg or x264cli)
[21:02] <ChocolateArmpits> ok, I think I've got that hammered
[21:05] <ChocolateArmpits> Going forward, I wanted to know what gop size would a video streaming situation require? I've read suggestions to use the framerate equavalent to reduce buffering and possible picture corruption going in first seconds
[21:05] <ChocolateArmpits> equivalent*
[21:07] <JEEB> a second's worth of pictures sounds OK, although you could set that to more or less depending on your needs and how dumb those plastic toys are
[21:07] <JEEB> I mostly deal with PCs so I have no idea how much corruption (aka "how many devices actually decide to output broken pictures instead of waiting for the first proper") you would get
[21:08] <JEEB> also for buffering reducement I really recommend you note this thing called VBV
[21:08] <JEEB> in x264cli it's --vbv-maxrate and --vbv-bufsize, and in ffmpeg the equivalents are -maxrate and -bufsize
[21:10] <ChocolateArmpits> Yeah, I understand that keeping maximum bitrate too high can yield longer buffer times if you jump to a more action intense scene
[21:10] <ChocolateArmpits> I'm not sure about the buffer size however
[21:11] <JEEB> as you just said that notes that you don't grasp the concept yet
[21:12] <JEEB> you first set a maximum rate, and then you have a buffer in which this maximum rate is calculated within and made sure that the stream never goes beyond this bound
[21:12] <JEEB> so it is limiting the average bit rate over bufsize
[21:13] <JEEB> this is actually written down in the standard
[21:13] <JEEB> as VBV
[21:13] <JEEB> (and then there's even nal-hrd)
[21:14] <ChocolateArmpits> And VBV translates to ?
[21:14] <JEEB> "Video buffering verifier"
[21:14] <JEEB> it's a model
[21:15] <JEEB> anyways, you should never be doing stuff with video over limited bandwidth without VBV :)
[21:15] <ChocolateArmpits> okay, so the buffersize tells how often to correct the bitrate ?
[21:16] <JEEB> noot exactly like that, but yes -- it is the amount of data within which the average rate is being calculated
[21:16] <JEEB> so at any point of time
[21:17] <JEEB> if you buffer bufsize amount of stuff and your bandwidth is at least maxrate
[21:17] <JEEB> that video stream will be OK for you to play back
[21:17] <JEEB> now let's say that you set -maxrate 250K, and you want 2 seconds of buffer -- you set -bufsize 500K
[21:18] <JEEB> of course it is not always you who decides the VBV limitations as they are affected by other things as well
[21:18] <JEEB> like a possible man-in-the-middle restreaming service via which you are streaming (in case of live streaming)
[21:18] <JEEB> or possibly the hardcoded values in mobile players?
[21:19] <ChocolateArmpits> I'm listening
[21:19] <JEEB> you match up the decoder and the encoder regarding VBV, and you're golden :)
[21:19] <JEEB> and those two examples I just said are theoretical, I have no idea about them :P
[21:20] <JEEB> just wanted to note that it's not always you who gets to pick the values
[21:22] <ChocolateArmpits> I suppose in the situation where your bandwith matches the optimistic average bitrate you could have higher maximum bitrate than your bandwith allows with the awkward rule that you buffer more of the video when the bitrate is below average to compensate?
[21:23] <ChocolateArmpits> Which sounds all sorts of flawed
[21:27] <ChocolateArmpits> I was also interested in asking is there any maximum gop limit in h264 ?
[21:31] <JEEB> ChocolateArmpits, no
[21:32] <JEEB> it's not flawed, it works and you only have to have the average bit rate be over your set maxrate
[21:32] <JEEB> and it just means that that is the MAXIMUM over bufsize
[21:32] <JEEB> and no, there is no maximum GOP length limit in H.264
[21:32] <JEEB> there's even stuff like intra refresh
[21:33] <JEEB> where you will never have another intra-only frame except for the first one
[21:33] <ChocolateArmpits> But does that mean that a P frame has to be placed on a scene change ?
[21:33] <JEEB> but if the decoder goes over your intra refresh amount of pictures, it will get a full picture and can continue from there because during that intra refresh period there's been enough intra
[21:34] <JEEB> and yes, the encoder can select an intra-only frame, I just meant that it doesn't have to add any extra ones in there
[21:34] <JEEB> IDR pictures or open gop keyframes
[21:36] <ChocolateArmpits> open gop keyframes? Not just an open gop ?
[21:36] <JEEB> well, open GOPs will not have IDR pictures, so I noted them separately
[21:36] <ChocolateArmpits> Do you mean they reference previous iframes?
[21:36] <JEEB> it's all more definitive in HEVC :P
[21:36] Action: JEEB likes the definitions in that specification rather than AVC
[21:37] <JEEB> anyways, yes -- with open GOP you don't cut the reference list
[21:37] <JEEB> and thus you don't generally use IDR pictures there
[21:37] <ChocolateArmpits> So open Gop and IDR are two different things ?
[21:37] <JEEB> yes
[21:37] <JEEB> open gop is a type of gop
[21:37] <JEEB> IDR is a type of picture
[21:38] <JEEB> IDR is used to start a new GOP with closed GOP
[21:38] <ChocolateArmpits> ok, it's getting back to me
[21:38] <ChocolateArmpits> or maybe not so much
[21:39] <JEEB> anyways, just take these points from this 1) when streaming you NEED to use VBV (maxrate/bufsize) and 2) GOPs have no length limits
[21:39] <JEEB> (in the H.264 specification)
[21:42] <ChocolateArmpits> Last one, What about reference frames?
[21:44] <JEEB> limit them to your level?
[21:44] <JEEB> x264cli does this automagically when you set --level , but the libx264 wrapper in ffmpeg doesn't
[21:44] <JEEB> -refs is the setting
[21:45] <ChocolateArmpits> I really didn't get to count them from the level/resolution known
[21:45] <JEEB> usually with baseline you use level 3.0 or so
[21:45] <ChocolateArmpits> how*
[21:47] <JEEB> it's noted in the specification, but you can see a quick example at the end of http://up-cat.net/x264%2528vbv%252Dmaxrate%252Cvbv%252Dbufsize%252Cprofile%252Clevel%2529%252C%2BH%252E264%2528Profile%252FLevel%2529.html
[21:47] <JEEB> it notes DPB and --ref
[21:47] <JEEB> basically you calculate it off of the amount of macroblocks in your picture, as well as the MaxDpbMbs value from the specification
[21:48] <JEEB> it even notes the spot in the specification where the actual way of counting is noted
[21:49] <JEEB> "A.3.1 Level limits common to the Baseline, Constrained Baseline, Main, and Extended profiles" and "A.3.2 Level limits common to the High, High 10, High 4:2:2, High 4:4:4 Predictive, High 10 Intra, High 4:2:2 Intra, High 4:4:4 Intra, and CAVLC 4:4:4 Intra profiles"
[21:50] <JEEB> I've been thinking of implementing the limiting in the libx264 wrapper but I'm successfully procrasting
[22:18] <llogan> JEEB: i opened a ticket about that https://trac.ffmpeg.org/ticket/3307
[22:18] <llogan> just imagine how fun it would be to close it as "fixed".
[22:19] <JEEB> :)
[22:47] <grinex> sup guys i was wondering if someone could assist me in streaming from ffmpeg, i can get it working and sending pkts but no video on the output
[23:30] <grinex> llogan: http://pastebin.com/bx2sngfZ
[23:31] <llogan> that's not from FFmpeg. we don't support third party stuff here
[23:31] <llogan> see http://trac.ffmpeg.org/wiki/UbuntuCompilationGuide
[23:32] <grinex> not from ffmpeg?
[23:36] <llogan> grinex: please read the link i provided
[23:38] Action: llogan now has to go
[23:40] <Hello71> anyone tried compiling git head recently with fdk?
[23:40] <Hello71> ERROR: libfdk_aac must be installed and version must be >= 3.4.12.
[23:41] <Hello71> but the versions only go to 0.1.3
[23:45] <lkiesow> where did you get the &and version must be >= 3.4.12.
[23:45] <lkiesow> I've compiled my FFmpeg 2.1.3 against fdk-aac 0.1.1
[23:45] <Hello71> from configure.
[23:46] <Hello71> 91489d28ba271fb9dde54cb26e7ae93ada2997df
[23:46] <Hello71>     avcodec/libfdk_aacenc: enable 7.1 channel encoding
[23:49] <lkiesow> hm, that came in today. Haven't tested that&
[23:50] <Hello71> Date:   2014-01-26 01:31:53 +0100
[23:51] <lkiesow> which is today :)
[00:00] --- Mon Jan 27 2014


More information about the Ffmpeg-devel-irc mailing list