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

burek burek021 at gmail.com
Sun May 25 02:05:01 CEST 2014


[00:26] <jgh-> is there a way I can grab the fragments of an HLS stream without doing any sort of transmuxing or changing the container format at all?
[00:33] <klaxa> can you explain that a little further?
[00:33] <klaxa> HLS is just streams muxed in an mpeg-ts container
[00:33] <klaxa> then segmented and downloaded over http
[00:33] <jgh-> yeah, I'm basically just trying to download those segments without having to rig up a script
[00:33] <jgh-> I figured FFmpeg might be able to accomplish such a thing
[00:34] <klaxa> not sure if you can copy it segmented
[00:34] <klaxa> copying the stream as a combined stream is pretty easy though
[00:34] <klaxa> otherwise, just write a script, HLS is not that complex
[00:35] <jgh-> yeah I guess that's what I'll have to do - I'm streaming to Wowza using RTMP but encountering some issues with the .ts files it's generating, so combining them into some other container would not be very helpful
[00:36] <jgh-> in figuring out what's wrong with the files
[01:11] <temhawk> where can i get the man-page from? i have pre-built ffmpeg binary
[01:14] <c_14> Either from the source tree or from a distribution package.
[01:14] <temhawk> c_14: ok, thanks
[01:14] <c_14> Or check the online documentation: https://ffmpeg.org/ffmpeg.html
[01:23] <temhawk> c_14: so I gotta compile it myself to get the man-pages?
[01:25] <c_14> Well, technically you only need to compile the manpages themselves, but I don't really know how doxygen works.
[01:27] <c_14> You could try ./configure --disable-all --enable-manpages and then see if make gets you the manpages without building everything else.
[01:27] <temhawk> Yeah, I don't know either. I guess I can just compile it any way, take the man-pages and delete the rest?
[01:29] <c_14> You can always just compile ffmpeg and then copy the manpages into your manpath or just man $file
[01:30] <temhawk> Yeah. --disable-all doesn't seem to work.
[01:31] <c_14> --disable-everything maybe?
[01:33] <temhawk> Shouldn't there be a "build" directory after I make?
[01:35] <klaxa> nope
[01:38] <temhawk> where do I find the files then? Do I have to make install?
[01:39] <c_14> In ffmpegdir/doc it should be all the .1 and .3 files
[01:39] <c_14> Where you probably only want the .1 files since those are for the binaries.
[01:39] <temhawk> hm, not there. maybe it failed
[01:40] <c_14> I just tried it with ./configure --disable-everything --enable-manpages; make and they're there.
[01:41] <temhawk> When I do that it says: "yasm/nasm not found or too old. Use --disable-yasm for a crippled build."
[01:42] <c_14> just do it, you don't need assembler for the docfiles
[01:42] <temhawk> but when I add --disable-yasm it fails. ok, nevermind it seems to be working now
[01:43] <temhawk> c_14: success!
[01:44] <temhawk> I had --disable-all before as well which looks like was the problem
[01:44] <temhawk> everything != all
[01:44] <temhawk> confusing
[01:46] <llogan> you can probably just do "./configure && make doc"
[01:47] <c_14> As a matter of fact, yes, yes you can.
[01:47] <c_14> My mind. It must be going.
[01:52] <voip> do have ffmpeg daemon mode ?
[01:52] <voip> without &
[01:52] <llogan> what you say???
[01:53] <voip> i need to run ffmpeg in daemon mode
[01:53] <llogan> ffmpeg -d
[01:53] <voip> one way use with  "&"
[01:53] <voip> ok thanks
[01:54] <llogan> that is undocumented, AFAIK
[02:01] <JodaZ> jgh-, the problem with segments coming from simple segmenting solutions is that they aren't seamless when not generated one after another
[02:03] <JodaZ> jgh-, oh, you are streaming to wowza? increase keyframes
[02:05] <jgh-> JodaZ: I have keyframes set to 2 seconds right now, does it need to be more frequent than that?
[02:05] <JodaZ> no, that sounds about often enough
[02:05] <JodaZ> what issues are you encountering?
[02:06] <jgh-> Seems like the issue is more closely related to audio. Disabling audio seems to fix the issue (except for the fact that now there's no audio).
[02:07] <jgh-> I am getting ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES from Apple's mediastreamvalidator
[02:07] <jgh-> occasionally (not on every segment)
[02:07] <JodaZ> well, as long as it plays, i wouldn't bother
[02:07] <jgh-> VLC plays through it, but QuickTime and quicktime-based players (i.e. iOS) don't like it too much
[02:07] <voip> llogan, -d dont works :(
[02:07] <JodaZ> hmm
[02:08] <JodaZ> jgh-, you sure there is no packet loss streaming to the server?
[02:08] <jgh-> I'm streaming over TCP, but besides that I'm just streaming from an iPhone to my laptop that is on the same network
[02:09] <JodaZ> jgh-, did you try downloading the segments and looking at them manually?
[02:09] <jgh-> That's what I'm going to do next
[02:10] <jgh-> I came in here wondering if I could do that quickly with FFmpeg, but it looks like I'll jsut have to rip up a script to download the segments
[02:17] <llogan> voip: what's wrong with it?
[02:19] <voip> whan runing with -d . ffmpget like freese not starting no messages, no carret retrn
[02:19] <llogan> i don't understand you.
[02:30] <voip> llogan, i am typing command "ffmpeg -d -i input ...output" then hitting "enter" button. cursor goes too new line and blinking, i didnt see any messages regarding ffmpeg starting. In servers process i see ffmpeg running instances. When i am typing ctrl-c all ffmpeg process are desaper from ps
[02:33] <llogan> that's daemon mode
[02:36] <voip> llogan, after ctrl-C or terminal disconnection ffmpeg shuld resume works, in my case its stoppong
[02:40] <llogan> voip: i don't know what the correct or expected behavior is supposed to be, but if you think it is a bug then please report it.
[02:40] <voip> ok found it works when i using -d and "&" togetther
[02:40] <llogan> ok
[03:13] <haithere> hi. is it possible to use ffmpeg on a remote Linux machine without installing it (I don't have sudo rights)? coming from Windows world, I'd expect something like a portable version...
[03:13] <haithere> on Windows all you need is a "ffmpeg.exe" file
[03:14] <haithere> but on Linux I need to do "apt-get install ffmpeg" which needs sudo rights
[03:14] <c_14> Just get one of the static builds I posted.
[03:22] <haithere> hmm
[03:22] <haithere> it says: FATAL: kernel too old Segmentation fault
[03:22] <haithere> so I guess I should try older version?
[03:23] <c_14> probably...
[03:23] <c_14> What does uname -a say?
[03:23] <haithere> 2.6.9-103.ELsmp
[03:24] <haithere> so I'll take my ffmpeg from the second link you gave?
[03:24] <c_14> ye
[03:26] <haithere> dang... he has 64bit version there, I need the 32 one
[03:28] <c_14> What distribution is that server running?
[03:28] <c_14> You might want to compile from source.
[03:28] <c_14> You won't need root and you can compile for 32bit
[03:29] <c_14> https://trac.ffmpeg.org/wiki/CompilationGuide/Generic
[03:30] <haithere> well, that's a disappointment. the server is RHEL. will ffmpeg even work on it?
[03:31] <c_14> You should be able to compile from source as long as the basic build tools are installed: https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
[03:31] <c_14> That one is more specific to rhel than the generic.
[03:34] <haithere> guess I should ignore the first "get the dependencies" command, since I don't have root permissions. I'll just start from "Compilation and installation"?
[03:35] <c_14> probably a good place to start, if those programs aren't there you might need to cross-compile
[03:38] <haithere> "./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" gave me an error, though it did not stop the process.
[03:38] <haithere> configure: WARNING: Python not found
[03:38] <haithere> configure: WARNING: Could not find a suitable version of Python
[03:39] <haithere> is Python necessary?
[03:39] <c_14> Don't think so.
[03:39] <c_14> Then again, never had a computer without python...
[03:39] <sacarasc> I didn't know ffmpeg needed python for anything.
[03:39] <c_14> If it's not listed on the wiki it shouldn't be required.
[03:39] <c_14> sacarasc: Me neither...
[03:42] <haithere> "git clone --depth 1 git://git.videolan.org/x264" gives me:
[03:42] <haithere>  "-bash: git: command not found"
[03:42] <haithere> so if I need x264 I need git on the machine?
[03:42] <haithere> can't I get it with wget or curl?
[03:43] <sacarasc> Go to the x264 site and see if there's a daily snapshot.
[03:43] <sacarasc> That should do it.
[03:43] <c_14> ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
[03:45] <haithere> "wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2" should do it then.
[03:46] <sacarasc> More like ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20050824-2219.tar.bz2
[03:50] <haithere> 2005 is a bit old I guess
[03:50] <sacarasc> Oh, I clicked the wrong one/. :D
[03:51] <sacarasc> The one you picked is probably okay though. SOrry.
[03:51] Action: sacarasc goes to bed as it's almost 03:00.
[03:51] <haithere> np np :)
[03:51] <haithere> haha
[03:51] <haithere> it's 4:51 here
[03:51] <haithere> am
[03:51] <haithere> should go to bed too :D
[03:51] <c_14> Night Owls unite.
[03:52] <haithere> ok, I downloaded this tar.bz2 x264 file. googled how to extract it, did this: "bzip2 -d last_stable_x264.tar.bz2"
[03:53] <c_14> tar -xjvf $file
[03:53] <haithere> this changed the file to "last_stable_x264.tar"
[03:53] <haithere> aa
[03:53] <c_14> If you already bzip2 -d 'd it you can probably just tar -xvf $file
[04:03] <haithere> got libfdk_aac from sourceforge:
[04:03] <haithere> "wget http://downloads.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.3.tar.gz?r=&ts=1400896695&use_mirror=skylink"
[04:03] <haithere> worked perfectly
[04:03] <haithere> but now I got an error
[04:03] <haithere> "autoreconf -fiv" gives me: Makefile.am: C objects in subdir but `AM_PROG_CC_C_O' not in `configure.ac'
[04:04] <haithere> autoreconf: automake failed with exit status: 1
[04:06] <haithere> well I'm too lazy to fix this.. not going to use aac at the moment any way
[04:13] <haithere> I think I don't need libogg, libvorbis etc as well
[04:13] <haithere> here's what I'm trying to achieve: http://pastebin.com/ncDUe1jM
[04:14] <haithere> what encoders do I need?
[04:15] <haithere> I did install libmp3lame from the tutorial, so audio is done?
[04:15] <haithere> c_14 ? :)
[04:17] <c_14> I don't think ffmpeg uses external libs for mpeg2video or mp2
[04:18] <haithere> ohh.. all this hassle :(
[04:18] <haithere> could've just done ffmpeg straight away
[04:19] <c_14> Just use the configure flags in the tutorial with exception of everything after nonfree
[04:22] <haithere> used "wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.latest.tar.gz" instead of "git clone --depth 1 git://source.ffmpeg.org/ffmpeg"
[04:22] <haithere> I extracted it
[04:22] <sacarasc> The former is not source, but a compiled version.
[04:22] <haithere> tutorial tells me to: cd ffmpeg
[04:22] <haithere> aa
[04:23] <c_14> https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
[04:27] <haithere> did this: ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs=-ldl --enable-gpl
[04:28] <haithere> did ok
[04:28] <haithere> and then this: make
[04:28] <haithere> and this gives me: common.mak:18: *** unterminated call to function `foreach': missing `)'.  Stop.
[04:30] <haithere> googled it. might be that my version of "make" is too old
[04:31] <haithere> whatever that "make" is :D
[04:31] <c_14> It works for me, so I'm guessing that's it.
[04:33] <haithere> trying this workaround: "./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs=-ldl --enable-gpl --disable-indevs --disable-outdevs"
[04:34] <haithere> dang... still the same error
[04:40] <c_14> hmm, you might have to cross-compile/build a static version yourself on a different machine
[04:44] <haithere> what would be the requirements? I can use my Windows and Debian machine. or do I need RHEL?
[04:45] <c_14> I'd probably use the debian. Is it 32 bit?
[04:45] <haithere> nope, but I can install it as virtual machine in Virtualbox
[04:53] <c_14> Then try compiling ffmpeg in a 32bit environment with this configure http://sprunge.us/TBig
[04:53] <c_14> should hopefully work
[08:02] <ParkerR> c_14, kinda unrelated but: is a staticly linked ffmpeg all compiled into the main binary? May be a dumb question but Ive always kinda wondered that for something like toolkit where you can compile one binary with all the featrues and codecs
[08:02] <ParkerR> *statically
[08:02] <ParkerR> "Static builds provide one self-contained .exe file for each program " oh neat
[08:05] <ParkerR> Obviously the downside beng having to keep it up to date yourself
[08:05] <ParkerR> If Im reading correctly
[10:18] <sruz25> so I have a video from camera which is 1440x1080 16:9, I couldn't find any info about what to do with it. Can you point me at something, or do I just recode it with chosen resolution?
[10:20] <pzich> by default it uses the resolution of the input file/stream/device, did you want to scale it?
[10:21] <sruz25> I want it to use square pixels and it would be probably best to downscale it to 720p, since the quality isn't great anyway
[10:22] <pzich> You're saying the footage is 1440x1080, but scaled to 16:9?
[10:22] <pzich> instead of 1920x1080, which is true 16:9?
[10:22] <sruz25> the pixels are apparently somehow not square
[10:23] <pzich> ok, well if it should be 16:9, you can just add -vf scale=1920:1080, or 1280:720 if you want 720p
[10:23] <pzich> it should stretch it
[10:23] <sruz25> ok, thanks
[10:24] <pzich> np, I'm going to sleep now, but if you still need help, post it here and maybe someone else can help, or I can later
[11:47] <Mavrik> sruz25, that's just anamorphic video  :)
[11:48] <sruz25> hmm, might help with googleing, if it's official term
[11:48] <Mavrik> anyway, what do you want to do with it?
[11:48] <Mavrik> I mean, do you have problem playing it? :)
[11:48] <Mavrik> (sorry, just came)
[11:50] <sruz25> just wanted to recode into something more usable. As it is now, the PC isn't able to play it smoothly and the bitrate is rather big
[11:50] <Mavrik> ah, can you run ffprobe on it and paste it into a pastebin?
[11:51] <Mavrik> anamorphic video is video that's stored (encoded) in a different resolution than what it should display as, it usually has a flag in it to tell player how to stretch it :)
[11:51] <Mavrik> ffmpeg will keep anamorphic video like that unless you explicitly rescale it
[11:51] <sruz25> Duration: 00:23:16.80, start: 2236.323122, bitrate: 7338 kb/s  Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
[11:52] <sruz25> using scale filter to classic 720p should work then...
[11:53] <Mavrik> sruz25, see, it has a "PAR" (pixel aspect ratio) of 4:3
[11:53] <Mavrik> 1:1 would mean square pixels
[11:53] <Mavrik> 4/3 * 1440 = 1920 :)
[11:55] <Mavrik> so if you want to fix that you'd do something like
[11:55] <Mavrik> scale=1920:720,setsar=1:1
[11:55] <Mavrik> for video filter :)
[11:55] <Mavrik> sorry, scale=1920:1080 of course :)
[11:55] <Mavrik> that should give you a video that's 1920x1080 [PAR 1:1 DAR 16:9]
[11:56] <JEEB> also funny how setsar uses the more official SAR naming, while the info output says it's PAR (which is AFAIK only used in MPEG-4 Part 2 and Part 12)
[11:56] <JEEB> sample versus pixel
[11:56] <JEEB> meaning is the same though, the aspect ratio of a single entity
[11:56] <sruz25> oh, so if I did jsut scale=1920x1080 (or other 16:9 ratio) it wouldn't work properly?
[11:56] <JEEB> sample is just more generic :)
[11:56] <JEEB> nah, it would generally become 1:1 there too
[11:57] <Mavrik> hmm
[11:57] <JEEB> it's just that in some cases when you resize the scaler doesn't notice that it's exactly 1:1
[11:57] <Mavrik> sruz25, I don't really know by heart what scale filter does by default :)
[11:57] <Mavrik> should look at doc
[11:57] <sruz25> I'll use it, just to be safe
[11:57] <JEEB> it becomes a thing esp. when downscaling and the resolution because of mod2 etc becomes not exactly what the DAR was
[11:58] <Mavrik> yeah, you get those wierd SAR values like 4866:4865 and stuff :D
[11:58] <Mavrik> also, the fact that scale/ffmpeg still can't handle rounding to what codec expects annoys me to no end
[11:59] <Mavrik> about the PAR... I think PAR is just generally more "clear" term to people not really into encoding :)
[12:00] <JEEB> still doesn't change the fact that it hasn't been used since MPEG-4's first specs :)
[12:00] <Mavrik> true
[12:01] <Mavrik> it's especially more confusing when documentation/filters have SAR everywhere except the probe output :D
[15:14] <sruz25> is it possible to use encoded part, if the encoding process was interrupted with "Write failed: Broken pipe0 size=  214830kB time=00:08:52.89 bitrate=3302.5kbits/s"?
[15:16] <klaxa> just try to play it back
[15:16] <klaxa> depending on video codec and container format it may be valid
[15:34] <haithere> hi c_14, you there?
[15:34] <c_14> Hmm, ye. What's up?
[15:38] <haithere> well, I was the one who tried to get ffmpeg on RHEL. we stopped with the conclusion, that I should cross compile/[another option here], since I had problems with the "make" command with ffmpeg. so you told me to get debian 32 bit, which I got and installed.
[15:39] <haithere> so where should I start to get ffmpeg on RHEL up and running? :)
[15:39] <haithere> remote RHEL
[15:41] <JEEB> uhh
[15:41] <JEEB> cross-compiling from a completely different distro sounds like trouble
[15:41] <JEEB> can you share some info on your issue?
[15:42] <JEEB> preferably in a pastebin or something
[15:42] <haithere> uhhh... I'm wondering if this channel has history or anything
[15:42] <haithere> well, I have a remote RHEL, on which I'd like to use ffmpeg. I don't have root permissions on it
[15:43] <haithere> I tried this tutorial: https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
[15:43] <haithere> the RHEL is 32 bit btw
[15:43] <JEEB> yeah, unless your system is somehow locked down, it should be possible
[15:43] <JEEB> some people do lock down their servers, of course
[15:44] <c_14> http://sprunge.us/jdHJ <- here's a paste of our conversation up to this point in case you're interested
[15:45] <JEEB> I'm quickly scrolling through, but did you try and get a basic ffmpeg built?
[15:45] <JEEB> as in, just configured without any options
[15:45] <JEEB> and then it should give you a basic ffmpeg binary
[15:46] <JEEB> after that you are supposed to move further
[15:46] <haithere> guess that what I should need, since all I need is mpegvideo and mp2 audio
[15:46] <JEEB> oh
[15:46] <JEEB> yeah
[15:46] <haithere> and as I understand, they don't need external libraries
[15:46] <JEEB> yup
[15:46] <c_14> The only flags we used were prefix cflags, ldflags, bindir, extra-libs and enable-gpl
[15:46] <JEEB> and I think both of those don't even need you to enable GPL
[15:47] <JEEB> haithere, anyways, go grab a tarball of current ffmpeg sources
[15:47] <JEEB> then extract it and run ./configure there without any parameters
[15:47] <JEEB> let's see what it says
[15:47] <JEEB> pastebin the output, basically
[15:47] <JEEB> and link here
[15:48] <JEEB> (since you seem to lack git :P )
[15:48] <haithere> ok. "wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2"
[15:48] <JEEB> or you could just get a tarball from the latest revision of the git repo
[15:48] <JEEB> http://git.videolan.org/?p=ffmpeg.git
[15:48] <JEEB> see the URLs for the "snapshot" for every revision
[15:48] <JEEB> but yeah, both should be fine
[15:50] <JEEB> (also you'll probably need a recent enough yasm, but we'll see about that after we see how far the configure script goes)
[15:50] <haithere> those two are necessary too? PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
[15:50] <haithere> export PKG_CONFIG_PATH
[15:50] <JEEB> uhh
[15:50] <JEEB> you don't need ANYTHING
[15:50] <haithere> aa
[15:50] <haithere> ok
[15:50] <JEEB> anything else but just the source code
[15:50] <JEEB> and run ./configure in the source dir without any parameters
[15:50] <haithere> so download, extract and this ./configure
[15:51] <JEEB> dot-slash pretty much is a shorthand for "in this current directory, execute something named "configure""
[15:51] <haithere> haaaa
[15:51] <haithere> yasm/nasm not found or too old. Use --disable-yasm for a crippled build.
[15:51] <JEEB> okies
[15:51] <haithere> well well
[15:52] <JEEB> http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
[15:52] <JEEB> extract, configure similarly, but add a --prefix to point at your home dir's somewhere, I usually use /home/username/ownapps/installed_things_name (f.ex. /home/jeeb/ownapps/yasm )
[15:53] <haithere> this link has instructions for yasm. " Yasm is an assembler used by x264 and FFmpeg." https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
[15:53] <JEEB> so ./configure --prefix=/your/prefix
[15:53] <JEEB> then you make and then you make install, which copies things where they are supposed to go into your set prefix
[15:54] <JEEB> after that you can add the bin directory of your prefix to your PATH. PATH is a list of directories that your shell looks for things to run for (which is why you need to actually say "here" for the configure script)
[15:55] <JEEB> which would then be something alike to "export PATH=${PATH}:/your/set/prefix/bin"
[15:55] <JEEB> which then adds that /your/set/prefix/bin into the list of directories
[15:55] <JEEB> (and without the "", btw)
[15:56] <JEEB> after that you should have "yasm" as a command available
[15:56] <JEEB> since binaries of things get installed to bin/ of the prefix you set when you configured
[15:57] <JEEB> (you can later add this to a file executed every time you log in so that you will always have that directory in PATH for that user)
[16:00] <haithere> ok, yasm is installed
[16:00] <JEEB> how far did you get?
[16:00] <JEEB> as in, did you just make install or did you test to run it after adding the directory to your PATH?
[16:02] <haithere> how could I test it? if I type "yasm", it tells me: "yasm: No input files specified"
[16:03] <haithere> but I did "./configure" in ffmpeg folder
[16:03] <haithere> and did not get any errors
[16:03] <haithere> it gave me a list of what's enabled
[16:03] <haithere> then in the last line: "Creating config.mak, config.h, and doc/config.texi..."
[16:04] <haithere> so when we began it said it did not find yasm, I guess not it does
[16:04] <haithere> now it does*
[16:05] <JEEB>  "yasm: No input files specified" <- that already tells you that it found it ;)
[16:06] <JEEB> since it's yasm that's outputting that message
[16:06] <JEEB> I should have probably said yasm --version
[16:06] <JEEB> which would have output 1.2.0 or so
[16:06] <JEEB> :)
[16:06] <haithere> jop
[16:06] <JEEB> and yeah, sounds like you got ffmpeg configured
[16:06] <JEEB> now you can try running 'make'
[16:06] <JEEB> and see if anything fails
[16:07] <haithere> oh ffs. "common.mak:18: *** unterminated call to function `foreach': missing `)'.  Stop."
[16:08] <JEEB> if you actually got configure to finish nicely, then I guess you've hit a bug in an old version of make
[16:08] <JEEB> or well, lack of support for something
[16:09] <haithere> if it really is an issue of old version of make, could I update it?
[16:09] <JEEB> yes
[16:09] <haithere> without root of course
[16:09] <JEEB> as you can see, unless specific care has been given to setting up the system, as long as you can make a binary, you can also call it
[16:09] <JEEB> as you just did with yasm
[16:10] <JEEB> http://mirrors.kernel.org/gnu/make/
[16:10] <JEEB> grab a tarball, configure with a prefix and off you go ;)
[16:10] <JEEB> also holy crap
[16:10] <JEEB> make 4.0 O_O
[16:10] <haithere> I'm wondering what my version of make is
[16:10] <haithere> what's yours?
[16:10] <JEEB> make --version
[16:11] <haithere> 3.80. is it old?
[16:11] <haithere> 2002
[16:11] <haithere> guess it is :D
[16:11] <JEEB> yes :D
[16:12] <JEEB> funny, my new ubuntu box still has 3.81, I wonder if it's just patched to hel
[16:12] <JEEB> *hell
[16:12] <JEEB> (debian and ubuntu love to keep old versions just with a lot of patches applied)
[16:13] <JEEB> haithere, also btw, since you already have something called 'make' in your PATH, you will either have to add the prefix before your currently already-in-PATH things, or you can just call it with the full path to the binary :)
[16:14] <JEEB> former can be done with "export PATH=/your/prefix/bin:${PATH}", and latter can just be achieved by doing /your/prefix/bin/make instead of just make in the ffmpeg source code directory
[16:19] <haithere> ok, I'm so confused at the moment
[16:19] <haithere> I downloaded and extracted make
[16:20] <JEEB> ok
[16:20] <haithere> but this whole path stuff is confusing
[16:20] <haithere> what do I do after extracting ma
[16:20] <haithere> make
[16:20] <haithere> go to the make folder and "./configure"?
[16:21] <JEEB> do note that I mean different things when I use the word PATH and the word path, PATH is the system variable that your shell uses (a list of directories) to find executables. a path is just the path to a directory (f.ex. /hurr/durr/meh)
[16:21] <JEEB> yes, with a prefix preferably
[16:22] <haithere> from the ffmpeg tutorial, an example: "./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
[16:23] <JEEB> you only need to set --prefix, bindir is basically when you want to override the place the executables go into
[16:24] <JEEB> in general you have all the directories under your prefix (bin, lib, include f.ex. [the binaries (executables), the libraries and the headers]), but in that case it overrides the place where the executables get copied
[16:24] <haithere> so after prefix, I'll just put make-4.0 folder path? something like this? "./configure --prefix="$HOME/ffmpeg_sources/make-4.0"
[16:25] <JEEB> uhh, whatever you use as a prefix :P
[16:25] <JEEB> some people like to separate things, some people put all into one prefix
[16:25] <JEEB> mine was just one example
[16:26] <haithere> the tutorial, starting from "Yasm is an assembler used by x264 and FFmpeg." was easy to follow: https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
[16:26] <haithere> just copy-pasted commands and yasm worked
[16:27] <haithere> but now I'm sooo confused
[16:27] <JEEB> yes, you actually have to think
[16:27] <JEEB> how terrible
[16:27] <JEEB> </sarcasm>
[16:27] <JEEB> anyways, you're making it be harder than it is
[16:28] <JEEB> prefix is the place where things get copied into, the "root" directory, into which things get "installed" (copied) into.
[16:28] <JEEB> by default it tends to be something along the lines of /usr/local
[16:28] <JEEB> which is generally root-only :P
[16:28] <JEEB> (for writing)
[16:28] <JEEB> so you have to override that
[16:29] <JEEB> anyways, you configure make in a similar vein as you seemingly have done with yasm
[16:29] <JEEB> make
[16:29] <JEEB> and then make install
[16:29] <JEEB> make sure everything went fine
[16:29] <JEEB> after that you can just call the make with its full path
[16:30] <haithere> aaaa, prefix is for specifying the installation directory?
[16:30] <JEEB> basically yes
[16:30] <haithere> lol
[16:30] <JEEB> <JEEB> prefix is the place where things get copied into, the "root" directory, into which things get "installed" (copied) into.
[16:30] <JEEB> <JEEB> in general you have all the directories under your prefix (bin, lib, include f.ex. [the binaries (executables), the libraries and the headers]), but in that case it overrides the place where the executables get copied
[16:30] <another> make: sure everything went fine is not a target
[16:31] <JEEB> also as I explained, the other setting that gets set overrides the place where the executables get placed
[16:31] <JEEB> usually a directory called "bin" is made under the prefix
[16:31] <JEEB> (or used if already existing)
[16:31] <haithere> so that'd be logical: "./configure --prefix="$HOME/make_build"
[16:31] <JEEB> and --bindir overrides that
[16:32] <JEEB> well, there's no convention, so there's nothing logical or not logical :P
[16:32] <JEEB> there are just conventions that some people use
[16:32] <haithere> ok, configured
[16:32] <haithere> now what? :)
[16:32] <JEEB> you compile it with make?
[16:32] <JEEB> and then if that went fine
[16:32] <haithere> compile make with make? :D
[16:32] <JEEB> well make just calls the compiler and other things
[16:33] <haithere> ok
[16:33] <JEEB> and as long as the Makefile that gives the orders is supported
[16:33] <JEEB> it should go just fine :)
[16:33] <JEEB> s/gives/contains/
[16:33] <JEEB> and then if the compilation went fine, you copy (install) things into the prefix you set with make install
[16:33] <JEEB> after that you can call /home/your_username/make_build/bin/make instead of make
[16:34] <JEEB> in ffmpeg's directory
[16:34] <JEEB> and compile yourself a ffmpeg
[16:35] <haithere> ok, "make" did ok
[16:35] <haithere> ummm
[16:35] <haithere> should I "make install" too?
[16:35] <JEEB> <JEEB> and then if the compilation went fine, you copy (install) things into the prefix you set with make install
[16:35] <JEEB> actually read what I write, if only possible ;)
[16:40] Action: sacarasc waves at Rathann.
[16:41] <haithere> great... I don't have "make_build" folder in my username folder. thought this command would create the folder: "./configure --prefix="$HOME/make_build", because ffmpeg_build folder got there itself, I did not create it
[17:02] <JEEB> haithere, pastebin the output of what you've done lately?
[17:03] <JEEB> also ffmpeg_build was indeed created by another thing, because you set that directory as the prefix :P
[17:03] <JEEB> in other words, you did indeed create it, but not directly
[17:03] <haithere> well, then this command: "./configure --prefix="$HOME/make_build" should've made the "make_build" folder as well
[17:03] <JEEB> yes
[17:04] <JEEB> thus I asked for your pastebin
[17:04] <haithere> well, it didn't
[17:04] <JEEB> of the terminal logs
[17:05] <haithere> would, if I could, but putty (windows client for ssh connections) only displays last 100 (?) lines?
[17:06] <JEEB> you should be able to scroll those unless you set your backlog to be retardedly small :P
[17:07] <haithere> haven't changed any settings regarding this, so this should be default
[17:07] <JEEB> I have no idea about putty's defaults but it should have a backlog
[17:07] <JEEB> unless you're in a screen
[17:08] <JEEB> screen is a bit harder to deal with regarding scrolling (in other ways, simpler)
[17:10] <another> haithere: putty has an option for backlog
[17:10] <another> not sure where. maybe somewhere under window?
[17:29] <haithere> how should I Google it, if I want to update "make"?
[17:29] <haithere> "update gnu make" I guess
[17:30] <JEEB> you just did that :P
[17:30] <JEEB> and please post as much as you can
[17:30] <JEEB> in a pastebin
[17:30] <JEEB> among useful things is the config.log file under make's source directory
[17:31] <JEEB> which will tell me among other things what was your full configuration in case you failed at something there
[17:32] <haithere> well, I couldn't do it correctly
[17:33] <JEEB> and I'm trying to goddamn help you in finding out what went wrong
[17:35] <haithere> jep, config.log might help you
[17:51] <haithere> http://pastebin.com/GwTsHAZh
[17:56] <JEEB> this actually seems fine'ish
[17:56] <JEEB> so you ran make and that finished successfully?
[17:56] <JEEB> and then make install
[17:56] <JEEB> and that finished successfully as well?
[17:58] <haithere> in the "make-4.0" source folder?
[17:58] <JEEB> in its source directory, yes
[17:58] <JEEB> where the configure script is
[18:03] <haithere> seems like make_build folder appeared in the home folder
[18:04] <haithere> now I should go to ffmpeg's source folder and then do this: "/home2/r/robert/make_build/bin/make"
[18:05] <haithere> coz this is where the new 4.0 version is
[18:06] <JEEB> yes
[18:06] <JEEB> without the "" of course
[18:06] <JEEB> it should call the new make there
[18:07] <haithere> well, it's doing something
[18:07] <haithere> did not get the error I did before
[18:07] <JEEB> well there could be two problems still
[18:07] <JEEB> 1) make ended up being too new (quite improbable I guess)
[18:07] <JEEB> 2) the compiler you have is too old (quite possible)
[18:08] <haithere> noooooo, I don't want any problems :D
[18:08] <JEEB> and to be honest if it's 2) , I don't want to go through installing a whole toolchain so my free help ends there
[18:11] <haithere> hmm, it "make"-s quite a long
[18:11] <haithere> how long does the process usually take?
[18:12] <JEEB> depends on your machine, but there's plenty to compile
[18:12] <JEEB> so it'll take a while
[18:21] <haithere> ok, "make" is done
[18:21] <haithere> now I should do "/home2/r/robert/make_build/bin/make install"?
[18:27] <vklimkov_> hi folks. where i can found source example of good video player based on ffmpeg?
[18:28] <JEEB> haithere, no - you didn't set a prefix when configuring
[18:28] <JEEB> you can use the ffmpeg binary that is now in the ffmpeg source directory
[18:29] <JEEB> dot-slash ffmpeg should show you the version info
[18:29] <haithere> ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
[18:30] <haithere> built on May 24 2014 19:17:22 with gcc 3.4.6 (GCC) 20060404 (Red Hat 3.4.6-11)
[18:30] <haithere> yaaay
[18:30] <JEEB> congrats
[18:30] <JEEB> and yes, lol old
[18:30] <JEEB> at least it compiled
[18:30] <haithere> not sure if it was that difficult. but I hadn't done this before
[18:35] <JEEB> haithere, now you can either call it by its full path, or put it somewhere and make that somewhere be in your PATH so you can call it with just 'ffmpeg'
[18:52] <haithere> jep, seems like everything's working as I wanted. haven't even said thanks for wasting your time, hehe. so, thanks JEEB and c_14 !
[19:34] <Logicgate> i need help from the pros
[19:34] <Logicgate> -c:v libfaac -ac 2 -deinterlace -c:v libx264 -preset:v slow -profile:v baseline -level 3 -maxrate 10000000 -bufsize 10000000 -b:v 1200k -f mp4 -threads 0 -strict experimental -movflags faststart -vsync 2
[19:35] <Logicgate> that's what I'm using at the moment for my video uploading function on my website
[19:35] <Logicgate> the videos uploaded are 7 seconds
[19:35] <Logicgate> I need to lower the quality of the uploaded video to what would be the quality of an iPhone 5's recorded video
[22:04] <bencc2> is it possible to sharpen text in video?
[22:07] <klaxa> http://www.ffmpeg.org/ffmpeg-filters.html#unsharp
[22:07] <klaxa> apparently also does sharpening
[22:08] <Logicgate> anyone around
[22:08] <Logicgate> http://puu.sh/8ZwQk.png
[22:08] <Logicgate> http://puu.sh/8ZwRO.png
[22:08] <Logicgate> 2 videos, recorded with the same phone
[22:08] <Logicgate> Why is the video bitrate different?
[22:09] <Logicgate> How can I re-encode incoming videos to mimmick the properties of those 2 videos?
[22:10] <klaxa> as to why one video has a higher bitrate, try recording pitch black with the same phone and watch the bitrate drop even further
[22:10] <klaxa> depending on the content, it can be compressed better or worse
[22:11] <Logicgate> I see
[22:11] <Logicgate> klaxa, are you familiar with Vine?
[22:11] <bencc2> klaxa: I'll try it. thanks
[22:12] <klaxa> Logicgate: no
[22:12] <Logicgate> I made a website which basically enables users to upload 6.8 second videos to Vine
[22:12] <Logicgate> The biggest problem is that videos come in all different containers, video bitrates, audio bitrates, width, height, codecs, etc.
[22:13] <Logicgate> Right now what I'm doing is taking the video uploaded, extracting the video stream, the audio stream, and glueing them back together with FFMPEG for a final result in an mp4
[22:13] <Logicgate>  -c:v libfaac -ac 2 -deinterlace -c:v libx264 -preset:v slow -profile:v baseline -level 3 -maxrate 10000000 -bufsize 10000000 -b:v 1200k -f mp4 -threads 0 -strict experimental -movflags faststart -vsync 2
[22:13] <Logicgate> those are my current settings
[22:14] <Logicgate> I would like to basically re-encode the videos to match what would normally be recorded with an iPhone 5 within the app
[22:15] <klaxa> you might want to have a look at this: https://trac.ffmpeg.org/wiki/x264EncodingGuide#Compatibility
[22:16] <Logicgate> what seems to be the output of the Vine application is 480x480 (yes, 1:1 ratio, weird), 64kpbs 44.1hz 2 Channels AAC Audio with 29fps AVC Level 3 video
[22:16] <Logicgate> Baseline 3 seems to be what I need, since we need reverse compatibility for all devices
[22:17] <Logicgate> I just want to know if I'm on the right path here or not.
[22:17] <Logicgate> How would you change my existing command line
[22:18] <klaxa> hmm... maybe use -crf instead of -b:v
[22:18] <Logicgate> crf 0?
[22:19] <Logicgate> is the vsync important?
[22:20] <Logicgate> what about maxrate, that's the max bitrate?
[22:21] <Logicgate> Will downsampling the audio cause major problems?
[22:37] <klaxa> Logicgate: crf 0 would be lossless, you don't want that, maxrate is max bitrate afaik, i don't even know what vsync does, downsampling shouldn't cause problems
[22:54] <Logicgate> right
[22:54] <Logicgate> why wouldn't I want lossless
[22:55] <Logicgate> i do want to preserve the quality of the uploaded video
[22:55] <Logicgate> it's only 6 seconds
[22:55] <Logicgate> not gonna take hours
[22:55] <c_14> -crf 18 is usually considered visually lossless. Going full lossless usually just bloats filesize.
[23:05] <Logicgate> thanks c_14
[23:19] <bencc2> I'm trying to understand what parameters to use with unsharp http://www.ffmpeg.org/ffmpeg-filters.html#unsharp
[23:20] <bencc2> I have a video export from a powerpoint presentation and I want to improve the text quality
[23:20] <bencc2> this gives nice result but I want to make it a bit better: ffmpeg.exe -i before.mp4 -filter:v "unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5" after.mp4
[23:21] <bencc2> is there an explnation on the params?
[23:34] <eris0xff> hi
[23:37] <eris0xff> quick question on the proper way to generate pts for a raw x264 stream at 23.976 FPS while muxing with audio.  i've tried doing the copy video codec, but that really ignores every attempt at modification (no matter how minor).  So I guess using a setpts filter would do the trick.  Do you simply increment the current PTS value by the number of PTS ticks in your frame rate (ie: 1/23.976 * 1/90000)?
[23:40] <eris0xff> oh well guess no one out there.  i'll try the mailing list
[00:00] --- Sun May 25 2014


More information about the Ffmpeg-devel-irc mailing list