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

burek burek021 at gmail.com
Sat Nov 19 03:05:01 EET 2016


[00:16:34 CET] <SteenJobs> hey all - having a lot of trouble installing the ffmpeg cookbook - i ran into a yasm issue but fixed it by adding package yasm manually to my chef recipe, but doing the same for libx264 is not working. despite it installing im still getting a not found error
[00:31:11 CET] <llogan> what's a cookbook?
[00:32:39 CET] <SteenJobs> llogan: its basically ruby code that dictates how to configure the server
[00:37:18 CET] <llogan> we don't really provide support for such things here
[00:47:09 CET] <Daniel__> llogan, I got it working but it's not pretty :D http://pastebin.com/9uT8D7Ac
[01:08:57 CET] <llamapixel> Is there a preferred editor for ffmpeg string construction? something that elevates the process?
[01:10:04 CET] <Chloe[m]> SteenJobs: probably missing the devel package
[01:10:57 CET] <SteenJobs> Chloe[m]: tried adding it, didnt work. instead of using the ffmpeg cookbook i decided to just take the installation guide and turn it into my own recipe
[01:18:45 CET] <llamapixel> cheeky monkeys, http://www.iffmpeg.com     |     http://www.myffmpeg.com/
[01:32:45 CET] <llogan> it appears they leave it up for the user to find a binary
[05:51:39 CET] <hiby007> jj15 you did it? :)
[10:43:22 CET] <teamcoltra> Hey guys, I feel like what I want is super simple but I can't figure it out. I want to crop my video to a 1:1 aspect ratio, have it keep whatever is in the dead centre of the video and be done. :P Nothing fancy
[10:44:15 CET] <kerio> can the video be vertical
[10:44:20 CET] <kerio> the input
[10:45:52 CET] <kerio> try -vf crop=min(in_w,in_h):min(in_w,in_h)
[11:04:38 CET] <teamcoltra> Thanks kerio that was helpful :)
[11:06:58 CET] <kerio> did it work?
[11:17:40 CET] <Eiken> anyone got some idea why scale messes up the alpha in a filter_complex with overlay
[11:17:55 CET] <Eiken> if i remove the scale the alpha works as expected and is faded togheter with rgb
[11:20:03 CET] <Eiken> i tried adding format=yuva420p to the scale but same result
[11:21:43 CET] <Eiken> [1:v]fade=in:0:10[v1]; [0:v]setpts=PTS-STARTPTS[v0]; [v1]setpts=PTS-STARTPTS+26/TB[v3];[v0][v3]overlay=eof_action=pass[out1] this works
[11:22:08 CET] <Eiken> [0:v]scale=640:360,format=yuva420p[scaled];[1:v]scale=640:360,format=yuva420p[scaledlogo];[scaledlogo]fade=in:0:10[v1]; [scaled]setpts=PTS-STARTPTS[v0]; [v1]setpts=PTS-STARTPTS+26/TB[v3];[v0][v3]overlay=eof_action=pass[out1] this don't
[11:24:22 CET] <Eiken> maybe i can put the scale afterwards instead
[11:27:37 CET] <Eiken> that worked like a charm
[11:27:38 CET] <Eiken> yay
[12:14:08 CET] <hay> hi all.. I have two inputs for an output and would like that ffmpeg process stops if any of those two streams fails... I have tried with -shortest output option and it doesn't seem to work (the process doesn't stop), also with -xerror -err_detect explode it still continues... any ideas on how to achieve this? thanks
[13:35:56 CET] <DanteD> Any idea if it can be avoided that picture gets a little darker with rgb->yuv420p conversion e.g. when making a video of gameplay?
[13:41:07 CET] <Mavrik> Not really, you can convert to yuv444 if you think players will handle that
[13:41:40 CET] <DanteD> Mavrik: I wonder if yuv444 can be uploaded to youtube?
[13:41:58 CET] <Mavrik> it can, but they'll just use ffmpeg to downconvert it back to yuv420 anyway :)
[13:42:42 CET] <DanteD> Ok. I will just live with this then, maybe do some post processing to to try to limit the proble
[13:43:10 CET] <DanteD> brighten rgb -> convert to yuv , maybe it will help
[13:44:10 CET] <kerio> is it really darker tho
[13:47:37 CET] <DanteD> kerio: yes, it is, dark brown -> black
[13:48:48 CET] <DanteD> orange -> red
[13:48:53 CET] <ZexaronS> I have a bit of a problem with dropping frames from video
[13:49:33 CET] <ZexaronS> It's kinda goes slow it wants to recalculate ofcourse, i have various video from 30-6 FPS, heavily variating, im not sure if it's variating inside the stream
[13:49:47 CET] <ZexaronS> I've tried -r 1 as suggested
[13:51:57 CET] <ZexaronS> But, a video is only 85 MB in side and it took ... i don't know the latest ffmpeg doesn't report time for some reason
[13:52:04 CET] <ZexaronS> the video is twice as large as well
[13:52:18 CET] <ZexaronS> I tried using -vsync drop but it said invalid argument
[13:53:05 CET] <ZexaronS> I'd just like to dump all reference frames, and make a video out of those, there's no audio and all are mp4 AVC files
[13:53:32 CET] <ZexaronS> but i never done that
[14:51:21 CET] <ZexaronS> most of these files are badly created in terms of container/codec compatability
[14:51:40 CET] <ZexaronS> the time is stretched, I can't get rid of the timecodes
[14:54:15 CET] <ZexaronS> basically trying to extract all I frames at maximum of 1 or less fps
[14:54:38 CET] <ZexaronS> then i'll make a new video off those I frames
[15:07:11 CET] <ZexaronS> some progress finally, i have been able to lower size from 85MB to some 30 MB with this command
[15:07:54 CET] <ZexaronS> but the timecodes still stuck, it's not really 1 fps, it's like a lot of time between frames, so I have to experiment with setpts right ?
[15:10:34 CET] <ZexaronS> the source files are incredibly buggy, bitrate at the start of the video or in some areas is reported as 61 million, and there's a lot of warnings and errors about data being corrupt in streams
[15:13:17 CET] <kerio> does the source actually have variable framerate?
[15:20:48 CET] <ZexaronS> I do not know for sure, some of the files are properly detected as 720p and 29,9 or 23,9 or 24 FPS in the windows explorer, and media info doesn't have a problem, but majority of the files are also mp4 but were are kinda weirldy muxed or generated
[15:21:13 CET] <ZexaronS> It's 250GB total but I have removed many similar ones and probably down to 50 GB now
[15:21:35 CET] <ZexaronS> and these roughly 50 GB of some 100 files, I chooses a bit of these and a bit of those
[15:21:52 CET] <ZexaronS> but I can't see for sure if they're variable FPS inside
[15:22:28 CET] <ZexaronS> Some videos are time-stretched, for example the 6 FPS ones, almost all videos are muxed to 15:19 minutes
[15:22:55 CET] <ZexaronS> everything I open, whether it's 29, 23, 26, 25, 20, or 6 fps, it's always 15:19 minutes long
[15:26:01 CET] <ZexaronS> it's all over the place, there's different resolutions, 3 groups, and another time group of 59:56 minutes, there's also 28,673 framerate in one of them
[15:27:13 CET] <ZexaronS> there are already many 1 fps ones which are small I just saved them in whole no need to fix those
[15:28:51 CET] <ZexaronS> snd ofcourse bitrates range from 5 to 30k
[15:29:24 CET] <kerio> sounds fun
[15:31:47 CET] <ZexaronS> kerio: I'm trying to use CRF to preserve quality and I simply want to extract 1 key frame per 2 seconds diregarding input framerate, resoultion, or anything else and dump those I frames into a new video which plays back these frames at fixed 30 fps, disregarding any timecodes, could you help ?
[15:32:15 CET] <kerio> i could
[15:32:26 CET] <kerio> but then again, all i do is just read the docs
[15:32:29 CET] <kerio> so you could too
[15:32:47 CET] <ZexaronS> I am but -vsync drop doesn't work
[15:36:13 CET] <ZexaronS> I am at this for a day, i never dealt with something like this, I know how to use ffmpeg I did DVD remux and archiving
[15:39:09 CET] <furq> if you just want to dump iframes then use -skip_frame nokey
[15:39:39 CET] <furq> if you really need those time constraints then you'll need to mess around with -vf select
[15:39:58 CET] <furq> that sounds less good if you're getting decoder errors though
[15:41:17 CET] <furq> also it sounds like you want -vsync cfr
[15:41:26 CET] <furq> -vsync drop will speed the result up
[15:42:05 CET] <ZexaronS> furq, i'm already using select, for %%a in ("*.mp4") do ffmpeg -v 9 -loglevel verbose -i "%%a" -vcodec libx264 -preset fast -x264-params crf=23 -vsync 2 -vf select=eq(pict_type\,I) -an -threads 3 -r 1 -f mp4 "aaa_Transcode_OUT\%%~na.mp4"
[15:42:36 CET] <furq> well get rid of -v 9 for starters
[15:42:39 CET] <ZexaronS> This made the video a lot smaller just what I wanted, but the timecodes are still that the time is fixed at 15 minutes
[15:42:40 CET] <furq> that doesn't do anything
[15:43:11 CET] <ZexaronS> I like to use verbose all the time, I tested it a year ago and found it did a bit more
[15:43:26 CET] <ZexaronS> showed a bit more
[15:43:31 CET] <furq> i didn't say to remove that
[15:43:41 CET] <furq> -v and -loglevel are aliases of the same option
[15:44:03 CET] <furq> also 9 isn't a valid value
[15:44:10 CET] <furq> verbose is 40
[15:44:34 CET] <ZexaronS> this may have since changed ...
[15:44:41 CET] <furq> but yeah vsync vfr will preserve the length, it'll just drop frames with duplicate PTS
[15:45:08 CET] <ZexaronS> I saw other's using it as well, like in 4chan-webm-maker
[15:45:44 CET] <ZexaronS> furq, so drop option isn't valid anymore or another number ?
[15:45:54 CET] <furq> -vsync drop
[15:46:04 CET] <ZexaronS> says invalid argument
[15:46:11 CET] <furq> what ffmpeg version
[15:46:15 CET] <ZexaronS> I use x64 zeranoe btw
[15:46:19 CET] <ZexaronS> latest
[15:46:44 CET] <furq> shrug
[15:46:50 CET] <furq> works for me
[15:47:02 CET] <furq> pastebin the command and output
[15:47:17 CET] <ZexaronS> N-82314-g863ebe6
[15:48:25 CET] <ZexaronS> I'm doing this over remote desktop, the execution is on another PC, since the whole data is offloaded there on spare space on HDD, so i need to go back and forth it may take a bit longer
[15:49:01 CET] <ZexaronS> For some reason running bat on my PC won't launch ffmpeg on the target PC
[15:53:13 CET] <ZexaronS> furq; http://pastebin.com/tn0qTfhn
[15:56:22 CET] <ZexaronS> value 3 doesn't work either
[15:57:07 CET] <ZexaronS> with vfr frames get duplicated, i'll try what happens, but does duplication increase size or just makes the same frame replay?
[15:59:13 CET] <ZexaronS> dup thing definitely doesn't work, that's the default option before I didn't use vsync command, it makes the file twice as large
[16:01:01 CET] <ZexaronS> oh you said yes vfr will preserve lenght ... well the other command also does, and the drop doesn't work
[16:01:53 CET] <ZexaronS> what about dumping frames as PNGs ?
[16:12:47 CET] <PaulePanter> Hi. Is there a way to install the build FFmeg files to a directory other than `PREFIX`? Thatd be useful for distributions, and test builds.
[16:13:12 CET] <PaulePanter> `$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"` is in the Makefile.
[16:13:41 CET] <PaulePanter> In GNU Autotools you have `make install DESTDIR="${D}"` where `D` is the destination.
[16:18:11 CET] <PaulePanter> Hmm, there is `DESTDIR` in `config.mak`.
[16:18:20 CET] <BtbN> DESTDIR works fine for me.
[16:20:07 CET] <furq> PaulePanter: make install-progs prefix=/foo
[16:21:51 CET] <PaulePanter> BtbN: `MANDIR` is not set correctly for me.
[16:22:00 CET] <PaulePanter> furq: Lets see.
[16:22:19 CET] <PaulePanter> & but isnt prefix normally something independent from DESTDIR?
[16:22:47 CET] <PaulePanter> I probably got it wrong. Let me take a step back, and try again.
[16:23:27 CET] <ZexaronS> so furq, this is dead end, if vsync drop doesn't work, I am out of options?
[16:26:18 CET] <PaulePanter> BtbN: It dosent for me.
[16:26:47 CET] <PaulePanter> BtbN: Sorry, let me try again.
[16:31:04 CET] <persina> I'm trying to convert images to a video but the resulting video is just black...any ideas? console output: http://pastebin.com/paKUsYBz
[16:56:47 CET] <persina> hmm...still can't figure out why I'm getting a black screen video.
[17:24:25 CET] <PaulePanter> BtbN, furq: I called it with `make -j install PREFIX=/usr EPREFIX=/usr BINDIR=/usr/bin SBINDIR=/usr/sbin LIBEXECDIR=/usr/libexec SYSCONFDIR=/etc SHAREDSTATEDIR=/var LOCALSTATEDIR=/var LIBDIR=/usr/lib INCLUDEDIR=/usr/include DATAROOTDIR=/usr/share DATADIR=/usr/share INFODIR=/usr/share/info LOCALEDIR=/usr/share/locale MANDIR=/usr/share/man DOCDIR=/usr/share/doc/ffmpeg DESTDIR=/dev/shm/bee-root/ffmpeg/ffm
[17:24:31 CET] <PaulePanter> peg-3.1.4-0/image`.
[17:24:57 CET] <PaulePanter> But in contrast to GNU Autotools, FFmpegs build system includes DESTDIR in MANDIR as can bee seen in `config.mak`.
[17:25:19 CET] <PaulePanter> So setting for example `MANDIR=/usr/share/man` does not work with FFmpeg.
[17:29:12 CET] <kepstin> hmm? autotools should be putting DESTDIR in front of all install paths when set, anything else is a bug (probably in someone Makefile.am, rather than autotools itself)
[17:29:46 CET] <kepstin> normally DESTDIR is used for stuff like packaging, where all the files get installed to a temporary tree that's used to make an archive.
[17:30:40 CET] <kepstin> so if anything is installed outside of DESTDIR when it's being used, that's a problem
[17:36:59 CET] <BtbN> PaulePanter, most of these variables do not exist for ffmpeg.
[17:37:03 CET] <BtbN> ffmpeg does not use autotools.
[17:41:26 CET] <persina> What does stream_loop -1 do?
[17:42:52 CET] <PaulePanter> BtbN: Yes, I knew that. I thought it would follow it in all ways though.
[17:43:07 CET] <BtbN> DESTDIR definitely does work perfectly fine though.
[17:43:25 CET] <BtbN> And most of those variables are configure options.
[17:43:26 CET] <PaulePanter> kepstin: Yes, Autotools puts $DESTDIR$MANDIR in the Makefiles.
[17:44:02 CET] <PaulePanter> BtbN: Yes, thats the main problem. I dont see why DESTDIR should be set during configure time.
[17:44:15 CET] <kepstin> PaulePanter: ffmpeg's configure is significantly different from autotools
[17:44:30 CET] <PaulePanter> kepstin: Yes, I had to learn that the hard way.
[17:44:48 CET] <PaulePanter> Thank you for all your help.
[17:45:04 CET] <hiby007> hey jj15 any updates?
[17:45:23 CET] <kepstin> i'm pretty sure DESTDIR can be set at install time with ffmpeg? the other paths probably can't or shouldn't be.
[17:45:46 CET] <kepstin> (that's true of autotools as well, of course)
[17:55:12 CET] <BtbN> PaulePanter, it shouldn't. DESTDIR works just fine as it is.
[18:01:47 CET] <PaulePanter> kepstin, BtbN: Sorry, you are right indeed.
[18:01:59 CET] <PaulePanter> By the way, the version in the topic should probably be updated.
[18:03:19 CET] <kepstin> hey, it's not /wrong/ ;)
[18:03:41 CET] <PaulePanter> No its not. ;-)
[18:03:58 CET] <PaulePanter> By the way, can I specify a different build directory from the source directory?
[18:04:13 CET] <BtbN> The CWD is the build directory.
[18:05:15 CET] <PaulePanter> BtbN: Good to konw. Thank you.
[18:05:26 CET] <babadoc> excuse me
[18:05:59 CET] <babadoc> can ffmpeg fix errors in a ts video?
[18:06:04 CET] <babadoc> (without encoding it)
[18:07:28 CET] <babadoc> whenever i watch a video from my server that is a ts file, it seems to be malformed until i encode it into mkv; [ffmpeg/video] h264: co located POCs unavailable [ffmpeg/video] h264: co located POCs unavailable
[18:07:35 CET] <babadoc> those errors are thrown
[18:07:48 CET] <babadoc> is this an error i should be concerned about?
[18:08:41 CET] <babadoc> here is a link to show what my error is http://i.imgur.com/LVdOKRK.png
[18:08:53 CET] <babadoc> it repeats that over and over and over
[18:10:14 CET] <babadoc> here it is more detailed: http://i.imgur.com/iijf524.png
[18:10:58 CET] <babadoc> Does anyone know if this is fixable via ffmpeg without encoding the ts video into mkv?
[18:11:54 CET] <babadoc> I can still watch the video, if not for some skipping along the way
[18:12:08 CET] <babadoc> but the red errors are still there.
[18:21:49 CET] <babadoc> i also have another question
[18:21:54 CET] <babadoc> i have an mkv file on my desktop
[18:22:07 CET] <babadoc> i want to encode it to a format that can be played in a browser with audio
[18:22:10 CET] <babadoc> such as mp4
[18:22:20 CET] <babadoc> how can i do this in a timely manner?
[18:22:29 CET] <kerio> what are the actual codecs?
[18:22:32 CET] <kerio> you can use ffprobe to check
[18:22:40 CET] <babadoc> lemme check
[18:22:56 CET] <kerio> if it's h264/aac you can just ffmpeg -i foo.mkv -c:v copy -c:a copy foo.mp4
[18:23:08 CET] <kerio> i mean, i guess you could just do that and then test
[18:23:23 CET] <babadoc> http://pastebin.com/TADv0Xk8
[18:23:34 CET] <babadoc> its a movie
[18:23:51 CET] <kerio> video's good, audio's probably good
[18:23:59 CET] <babadoc> okay, i will try that now
[18:24:42 CET] <babadoc> Nice
[18:24:47 CET] <babadoc> thank you so much
[18:26:12 CET] <kerio> does the audio work?
[18:27:14 CET] <babadoc> no
[18:27:17 CET] <babadoc> :(
[18:27:22 CET] <babadoc> it plays in my computer
[18:27:27 CET] <babadoc> but not on the browser
[18:27:44 CET] <babadoc> hmm..
[18:27:49 CET] <kerio> you'll have to reencode the audio, probably in stereo
[18:27:58 CET] <babadoc> ffmpeg can do this, yes
[18:28:00 CET] <babadoc> or no
[18:28:16 CET] <kerio> yes
[18:28:39 CET] <babadoc> im looking at this right now https://trac.ffmpeg.org/wiki/Encode/AAC
[18:29:25 CET] <kerio> ffmpeg -i foo.mkv -c:v copy -ac 2 -c:a libfdk_aac -b:a 256k foo.mp4
[18:29:39 CET] <furq> he probably doesn't have fdk
[18:29:50 CET] <babadoc> i can install it
[18:29:58 CET] <furq> you'd need to recompile ffmpeg with it
[18:30:04 CET] <babadoc> wait
[18:30:06 CET] <furq> just use the builtin aac encoder, there'll be no difference at 256k
[18:30:07 CET] <babadoc> maybe i do have it
[18:30:07 CET] <kerio> if you don't have it, you can use the builtin aac encoder instead
[18:30:18 CET] <kerio> well i said 256k because i like to waste space
[18:30:26 CET] <babadoc> lol
[18:30:46 CET] <kerio> your original stream was 384k for 6 channels
[18:30:59 CET] <kerio> i guess it doesn't make much sense to go over 128k for two then
[18:31:15 CET] <babadoc> ffmpeg -i foo.mkv -c:v copy -ac 2 -c:a ffmpeg_aac -b:a 256k foo.mp4 would this be correct?
[18:31:19 CET] <furq> just use -vbr 5
[18:31:30 CET] <kerio> i think you mean 0 >:c
[18:31:39 CET] <furq> there is no 0
[18:31:48 CET] <kerio> you can't -v:a 0? :(
[18:31:50 CET] <furq> oh nvm i'm back on fdk
[18:32:12 CET] <furq> iirc vbr with the builtin encoder isn't very good
[18:32:36 CET] <furq> with fdk you should just use -vbr 5 (which is highest quality)
[18:32:48 CET] <babadoc> i have fdk
[18:32:54 CET] <babadoc> and i am runnig the command currently
[18:32:58 CET] <babadoc> ffmpeg -i foo.mkv -c:v copy -ac 2 -c:a libfdk_aac -b:a 256k foo.mp4
[18:33:18 CET] <furq> that'll be fine
[18:33:25 CET] <babadoc> the speed is slooooooooow
[18:33:36 CET] <babadoc> by this rate, itll take like 4 minutes
[18:33:38 CET] <babadoc> so long
[18:33:39 CET] <babadoc> lol
[18:33:44 CET] <furq> but if you're using unnecessarily high bitrates then it's worth knowing that fdk will still run a lowpass filter in cbr mode
[18:33:56 CET] <furq> there's some switch to disable it but i forget what it is now
[18:34:03 CET] <furq> either way it's disabled with -vbr 5
[18:36:17 CET] <babadoc> audio works
[18:36:21 CET] <babadoc> thank you so much :D
[18:36:24 CET] <babadoc> both of you
[18:37:07 CET] <babadoc> i dont know why it matters that I needed to encode it into 256k to play audio in browsers, but nevertheless it works
[18:37:27 CET] <furq> 128k would probably have been fine
[18:38:06 CET] <babadoc> but why even encode it into 128k in the first place lol
[18:38:14 CET] <furq> your original file was ac3
[18:38:25 CET] <furq> which is somehow still considered exotica in an mp4
[18:38:39 CET] <babadoc> really
[18:38:40 CET] <babadoc> wow
[18:39:00 CET] <furq> mp4's codec support is generally a nightmare
[18:39:23 CET] <furq> i remember browsers used to have issues playing mp3 audio in mp4s
[18:39:25 CET] <babadoc> oh god
[18:39:35 CET] <babadoc> o.o.....
[18:39:38 CET] <ritsuka> no one use mp3 in mp4&
[18:39:40 CET] <ritsuka> why would you&
[18:39:47 CET] <furq> because it's supported
[18:40:03 CET] <babadoc> isnt the mp4 basic audio format m4a
[18:40:04 CET] <ritsuka> in the specs yes
[18:40:07 CET] <babadoc> or am i wrong
[18:40:13 CET] <ritsuka> in the real world not very much
[18:40:32 CET] <furq> babadoc: m4a is just another name for mp4
[18:40:44 CET] <furq> usually it uses aac audio
[18:40:51 CET] <babadoc> oh i see
[18:41:00 CET] <furq> but yeah firefox could play mp3, it could play mp4, but it couldn't play mp3 in mp4
[18:41:17 CET] <furq> i don't see how i was wrong to assume it would work
[18:41:20 CET] <furq> (which it does now)
[18:41:49 CET] <babadoc> i am so uneducated in this stuff
[18:41:54 CET] <babadoc> i have a lot to learn
[18:42:20 CET] <babadoc> like, whats the difference between aac audio and mp3?
[18:42:31 CET] <furq> aac is a newer codec
[18:43:25 CET] <babadoc> alright, well thanks a lt
[18:43:26 CET] <babadoc> alot
[18:43:31 CET] <babadoc> you have been very helpful :)
[18:43:39 CET] <furq> "newer" meaning 1997 vs 1993
[18:43:48 CET] <babadoc> ha
[18:44:23 CET] <furq> i'm pretty sure aac predates the first hardware mp3 player
[18:45:03 CET] <babadoc> all these formats D:
[18:45:09 CET] <babadoc> why cant we just use one or two D: D: D:
[18:45:22 CET] <babadoc> why does it always have to be so complicated ;(
[18:45:26 CET] <BtbN> because codecs are getting better.
[18:45:32 CET] <furq> run `ffmpeg -codecs`
[18:45:36 CET] <furq> and revel in the simplicity
[18:45:44 CET] <BtbN> mp3 is horribly bad compared to the most recent codecs like opus.
[18:46:05 CET] <furq> it's not that bad
[18:46:38 CET] <babadoc> in my book, if it can play audio, then its good
[18:46:51 CET] <BtbN> juse use wav then
[18:47:07 CET] <furq> there aren't really that many audio codecs you need to give a shit about
[18:47:18 CET] <BtbN> yeah, opus works for everything nowdays
[18:47:30 CET] <furq> gone are the days when musepack had to occupy space in your brain
[18:47:52 CET] <ritsuka> if you want browsers compatibility, you don't have many choices: mp4 + h.264 + aac and webm + vp9/vp8 + vorbis/opus
[18:48:33 CET] <furq> saying that, i still have some wma kicking about
[18:48:42 CET] <kerio> babadoc: because there's audio and audio
[18:48:59 CET] <furq> could be worse, it could be atrac3+
[18:48:59 CET] <kerio> especially when you're trading quality with space
[18:49:02 CET] <furq> the devil's codec
[18:50:42 CET] <kerio> babadoc: oh btw you probably also want -movflags +faststart
[18:51:11 CET] <kerio> if you already did the video you can just ffmpeg -i foo1.mp4 -c:v copy -c:a copy -movflags +faststart foo2.mp4
[18:51:46 CET] <kerio> rip
[18:52:12 CET] <kerio> BtbN: does opus actually work for music
[18:52:24 CET] <furq> opus is designed to work for everything
[18:52:29 CET] <kerio> fucking magic ;o
[18:52:51 CET] <furq> i keep seeing it peddled that it's specifically only for low bitrates, but that's not true
[18:53:12 CET] <furq> i wonder if it has anything to do with that garbage "artifact amplification" listening test site
[18:53:24 CET] <kerio> maybe it's because everyone knows opus through mumble?
[18:53:37 CET] <furq> are they using opus now
[18:53:46 CET] <kerio> mumble has been using opus for quite a while now
[18:53:51 CET] <furq> i've not looked in the options since it was speex
[18:54:20 CET] <furq> http://soundexpert.org/encoders-128-kbps
[18:54:22 CET] <furq> this is the one
[18:54:34 CET] <kerio> it defaults to using speex if there's any client that doesn't support opus
[18:54:39 CET] <kerio> but you can configure murmur to tell that client to fuck off
[18:55:41 CET] <furq> http://soundexpert.org/encoders-320-kbps
[18:55:43 CET] <furq> look at this
[18:55:56 CET] <furq> original minidisc atrac ranked above opus
[18:56:03 CET] <furq> it's like they've got a vendetta or something
[18:56:10 CET] <kerio> D;
[18:56:29 CET] <kerio> >mfw i only store lossless anyway
[18:56:41 CET] <kerio> >mfw 1.8mbps song
[18:57:04 CET] <furq> http://soundexpert.org/testing-methodology
[18:57:11 CET] <furq> in case you were wondering why all of these results are bullshit
[18:57:46 CET] <kerio> i don't get it
[18:57:53 CET] <furq> For tested devices with hard to distinguish artifacts this methodology is used in combination with sound artifacts amplification (SARTAMP)  special technology aimed to gain artifacts to some controlled level.
[18:58:03 CET] <kerio> lmao
[18:58:16 CET] <furq> in layman's terms, that acronym should be SHARTAMP
[18:58:27 CET] <kerio> sooo
[18:58:31 CET] <kerio> opus is worse if you crank the artifacts up?
[18:58:47 CET] <furq> something like that
[18:58:48 CET] <kerio> i didn't know codecs should optimize for cranked up artifacts
[19:02:17 CET] <furq> http://listening-test.coresv.net/s/scores_by_tracks_en.png
[19:02:27 CET] <furq> this is the only recent multiformat listening test i know of where the samples haven't been fucked with
[19:02:47 CET] <furq> going higher than 128k would probably just result in all 5s for opus and qaac
[19:29:59 CET] <persina> If I have images with diff file extensions must I convert them to be the same before using ffmpeg to make a video?
[19:33:55 CET] <llogan> anyone recall if the -crf values for x264 are still "offset" for 10-bit? or was that changed later? i'm too damned lazy to look.
[19:34:04 CET] <furq> they should be the same
[19:35:53 CET] <kohanz> hi all, is this the place to ask a question about an ffmpeg error message?
[19:39:38 CET] <llogan> yes
[20:02:08 CET] <kohanz> i posted my question to the mailing list
[20:02:48 CET] <kohanz> basically I'm trying to join some mp4 files via concat, but get the error message "moov atom not found". However, the mp4 files seem to be fine (playable, FFMpeg does not report errors on them)
[20:03:30 CET] <kohanz> if I want to join mp4 files and eventually have transitions in between, is concat even what I should be looking at?
[20:08:35 CET] <BtbN> mp4 files are not exactly good for concat
[20:08:43 CET] <BtbN> transmux them to ts first
[20:10:02 CET] <kohanz> ah, thanks. Also what would be the best practice for joining two files of different resolutions?
[20:10:30 CET] <kohanz> i guess transmux to the same resolution, but i guess i'm wondering what the best way is to choose that res
[20:11:03 CET] <llogan> use various filters to make them all the same and then concat with concat filter. you can do it all in one command.
[20:11:23 CET] <BtbN> you can't transmux and change the resolutions
[20:11:42 CET] <BtbN> if you want to concat files without re-encoding, they have to be identical codec and parameter wise
[20:12:30 CET] <kohanz> i see, thanks. They will sometimes be of varying size, I don't think I can avoid that. So it sounds like I have to re-encode?
[20:13:17 CET] <kohanz> if i went down the reencode path, would you still recommend ts as the intermediate format?
[20:14:02 CET] <kohanz> so my workflow would be 1) reencode each video to have the same format + parameters 2) join via concat
[20:16:52 CET] <BtbN> if you re encode it should not matter, but you can't use the concat demuxer for that
[20:17:21 CET] <kerio> you can use the concat filter tho, can't you
[20:17:55 CET] <BtbN> that allways works, yes.
[20:18:04 CET] <BtbN> but can be a bit clunky to setup with a lot of files
[20:18:52 CET] <BtbN> you basically need a script to generate your commandline if it's more than a handfull of files
[20:20:27 CET] <BtbN> It might be easier to just transcode all the various files to a common format in mpegts, and then just concat those
[21:18:24 CET] <hay> I have two inputs for an output and would like that ffmpeg process stops if any of those two streams fails... I have tried with -shortest output option and it doesn't seem to work (the process doesn't stop), also with -xerror -err_detect explode it still continues... any ideas on how to achieve this? thanks
[21:19:41 CET] <kam187> hi guys
[21:20:53 CET] <kam187> how can i make a 3 second 1x1 pixel video with no sound.  I want to use it as a data uri video/mp4
[21:22:12 CET] <kam187> it will never be displayed so fps can be set to something silly like 1
[21:26:12 CET] <llogan> i was going to suggest color source filter, but apparently it won't allow 1x1
[21:26:31 CET] <furq> it'll probably need to be 2x2 if you want browsers to actually display it
[21:26:41 CET] <llogan> ffmpeg -y -f lavfi -i color=s=2x2:r=1:d=3 output
[21:26:45 CET] <kam187> basically i need a video that will be as small as possible and in fact almost any format will do
[21:26:46 CET] <kepstin> yeah, since you'll need yuv420p
[21:26:48 CET] <kam187> but 3 second slong
[21:26:51 CET] <furq> ^
[21:27:37 CET] <kepstin> i don't think you'll get any improvements from smaller than 16x16, which gives me a 1599byte file.
[21:27:42 CET] <kam187> 1604 bytes
[21:28:00 CET] <furq> i got 1510 with r=1/3
[21:28:29 CET] <kepstin> i get 1503 with ffmpeg -filter_complex color=c=black:s=16x16:r=1/3 -crf 64 -t 3 blank.mp4 :)
[21:28:45 CET] <kepstin> nopretty silly video
[21:28:46 CET] <furq> you don't need -t 3
[21:28:49 CET] <kepstin> 1 frame long
[21:29:01 CET] <furq> well you do but you can pass d=3 to color
[21:29:13 CET] <kam187> yep 1503 is the smallest so far
[21:29:16 CET] <kepstin> i'd expect the result to be identical, but yeah.
[21:29:27 CET] <furq> it's one character fewer
[21:29:30 CET] <furq> we all know how important that is
[21:29:42 CET] <kepstin> no idea if the browser will actually consider a 1 frame video to have 3s duration, of course.
[21:30:02 CET] <furq> kam187: 2x2 will give the exact same filesize as 16x16 fwiw
[21:30:16 CET] <furq> in case the display size actually matters
[21:30:40 CET] <kam187> i'll base64 encoding it into the page, so the smaller the better, the video will never be displayed
[21:30:58 CET] <furq> or maybe not
[21:31:00 CET] <furq> it's two bytes bigger
[21:31:27 CET] <furq> oh hey
[21:31:32 CET] <furq> -preset ultrafast saves ~100b
[21:31:38 CET] <furq> s/b/B/
[21:31:44 CET] <hay> I find it hard to understand that no better solution than this presented here: http://video.stackexchange.com/questions/10346/restart-encoding-with-ffmpeg-when-bad-source... :/
[21:32:19 CET] <kam187> 1456 :)
[21:32:34 CET] <kam187> err 1406 i mean
[21:32:59 CET] <furq> actually isn't there a flag to remove the x264 encoder settings
[21:33:06 CET] <furq> that's probably taking up half that size
[21:34:34 CET] <kam187> hmm yeah
[21:36:14 CET] <furq> ha
[21:36:20 CET] <furq> 497-byte webm
[21:36:48 CET] <furq> that's with default settings and -crf 63, you can probably do better
[21:37:02 CET] <kam187> 497 bytes?
[21:37:11 CET] <furq> yeah
[21:37:18 CET] <kam187> whats your command line?
[21:37:41 CET] <kam187> oh webm format
[21:37:54 CET] <furq> ffmpeg -f lavfi -i color=s=16x16:r=1/3:d=3 -crf 63 -c:v libvpx-vp9 tiny.webm
[21:38:45 CET] <furq> x264 writes about 500 bytes of encoder settings into the bitstream and there's no flag to remove it afaik
[21:38:57 CET] <kam187> hmm i get an error
[21:39:06 CET] <kam187> [libvpx-vp9 @ 0x14bf7a0] Failed to initialize encoder: Invalid parameter
[21:39:06 CET] <kam187> [libvpx-vp9 @ 0x14bf7a0]   Additional information: g_timebase.num out of range [1..cfg->g_timebase.den]
[21:39:18 CET] <furq> weird
[21:40:05 CET] <llogan> old libvpx?
[21:40:34 CET] <furq> kam187: http://vpaste.net/vfIu1
[21:40:49 CET] <kam187> thanks
[21:40:52 CET] <kam187> lets see if it works ok
[21:41:27 CET] <furq> there's a whole lot of \0s in there
[21:41:35 CET] <furq> i wonder if this could go smaller
[21:42:58 CET] <furq> https://github.com/mathiasbynens/small/issues/10#issuecomment-95160907
[21:43:00 CET] <furq> apparently it can
[21:45:45 CET] <kam187> hmm nope ios doesn't like it
[21:45:56 CET] <furq> iOS doesn't support webm
[21:47:37 CET] <furq> there's an ancient patch with a bitstream filter that removes x264 settings but it never got merged
[21:48:58 CET] <kam187> ahh
[21:49:07 CET] <kam187> the 1406 mp4 works ok
[21:51:20 CET] <furq> kam187: http://vpaste.net/7D6zU
[21:51:22 CET] <furq> 768 bytes
[21:51:42 CET] <kam187> oh wow, how?
[21:51:50 CET] <furq> http://forum.doom9.org/archive/index.php/t-152419.html
[21:52:02 CET] <furq> there's an ancient build with that patch merged
[21:52:06 CET] <kam187> ahh
[21:52:09 CET] <kam187> lets try it
[21:53:48 CET] <kam187> works :)
[21:54:00 CET] <TD-Linux> that libvpx error actually looks like a fffmpeg error
[21:54:14 CET] <kam187> i'm using a stupid trick to figure out when the user pulls up the control panel in ios
[21:54:35 CET] <kam187> there's no page events, but any running media gets sent a 'pause'
[21:55:30 CET] <kam187> so on touch i start a small video and if it pasues before getting to the end i know they went to the control panel, i wait for the play event and know they came back.
[21:55:32 CET] <llogan> TD-Linux: i am unable to duplicate (assuming the same command mentioned previously)
[21:59:43 CET] <ZexaronS> hello
[22:00:36 CET] <ZexaronS> I have error i can't output frames to BMP, says "I/O" error cannot find file and it points to the a file that uses the same name as the batch file with an added .bmp
[22:00:46 CET] <ZexaronS> cant' find file exec.bat.bmp
[22:01:12 CET] <kam187> so next issue, i have a h264 stream i'm saving in a container but there's no keyframes
[22:01:29 CET] <kam187> so seeking makes a mess on the screen
[22:01:33 CET] <kam187> what's the best thing to do?
[22:01:41 CET] <kam187> i guess re-encode is a last resort
[22:04:02 CET] <ZexaronS> http://pastebin.com/27Qbjejw
[22:04:21 CET] <ZexaronS> im trying to extract all I frames
[22:05:05 CET] <ZexaronS> I was trying to do it directly but the vsync drop command doesn't work any nobody had any other ideas, that solution would have worked and be faster from before
[22:05:52 CET] <ZexaronS> now I have to get out all I frames, preferrably I could set some command to make it "every 2 seconds"
[22:06:12 CET] <ZexaronS> i don't need all I frames if there's more than one in 2 second
[22:08:42 CET] <ZexaronS> outputtin non-I frames would take longer I guess, and they will probably have most qualit
[22:13:08 CET] <ZexaronS> llogan have you found anything?
[22:13:16 CET] <ZexaronS> this is broken, mp4 doesn't work
[22:14:03 CET] <ZexaronS> I will have to stop before I lose my mind today this is ridicolous nothing is working what the hell is going on, why is vsync drop not working ?
[22:16:00 CET] <ZexaronS> I wanted to convert some of these files I needed space, I ended up picking the best ones and deleting the space, 200 GBs cleaned out, this data was sitting there for months, I got some space I needed, this 50 GB can sit another year before this nonsense gets fixed
[22:19:57 CET] <ZexaronS> I found this to be the best lifestyle, dig in for 2 days if the sucker doesn't work, throw it away for a month or 2, problem solved
[22:21:26 CET] <ZexaronS> not gonna lose my nerves for this seriously, how can they release a program with a major feature not working ... that's like Ferrari putting a car out that has no rear breaks
[22:37:22 CET] <momomo> is it possible to generate hls live stream from a local file so it becomes a live stream, just as if it was a url ?
[22:37:59 CET] <momomo> i am able ot generate a hls stream, but it is happening at full speed, so that the playlist is replaced faster than actual playtime
[22:38:31 CET] <kepstin> momomo: sure. If you use the '-re' input option, it slows down the input file reading to realtime
[22:43:34 CET] <momomo> kepstin: ok, i will try that .. however, isn't that a bug to be defualt to the other way ... since the m3u8 will be replaced immediately ?
[22:44:00 CET] <kepstin> the default for ffmpeg is to run as fast as possible, it's designed mostly as a batch processing tool
[22:44:17 CET] <kepstin> and it's pretty common to pre-generated static hls files for the entire length of a media file, too
[22:44:24 CET] <kepstin> rather than "live" streaming it
[22:46:55 CET] <momomo> kepstin: so when it is an external file ... it will act as the -re option by default ?
[22:47:02 CET] <momomo> or should I use that then too ?
[22:47:41 CET] <kepstin> if your source is live (e.g. a remote media stream or capture card), then ffmpeg will default read it as fast as possible ... which is realtime. You should not use -re in that case.
[22:48:44 CET] <kepstin> Use -re only when you are making a fake live stream, where you have to slow ffmpeg down to run at realtime speeds.
[23:03:46 CET] <DarkUranium> hey
[23:04:09 CET] <DarkUranium> for the file list (e.g. -f concat -i list.txt), is there a way to specify a start/end time for a segment?
[23:11:15 CET] <klaxa> and how would that work?
[23:13:20 CET] <DarkUranium> klaxa, since each file has a `file '...'` line, could do something like
[23:13:25 CET] <DarkUranium> `file '...' -ss ... -t ...`
[23:13:36 CET] <DarkUranium> so it *COULD* work.
[23:13:43 CET] <DarkUranium> also unrelated, is there a way to cut a video to the end?
[23:14:39 CET] <klaxa> i don't understand anything you said
[23:14:47 CET] <klaxa> what kind of video do you want?
[23:15:00 CET] <klaxa> concat means glue one video after another
[23:15:06 CET] <klaxa> i don't get what you want with timestamps
[23:15:17 CET] <DarkUranium> klaxa, some of the parts, I don't want the entire thing
[23:15:19 CET] <klaxa> and can you explain the "cut a video to the end" thing?
[23:15:25 CET] <klaxa> aah
[23:15:31 CET] <DarkUranium> just (say) 00:05:13 to 00:13:12
[23:15:33 CET] <DarkUranium> for file A
[23:15:37 CET] <DarkUranium> but file B needs to be whole
[23:15:42 CET] <klaxa> ok i see now
[23:15:47 CET] <DarkUranium> file C needs to start at 00:50:00 but go to the end
[23:15:59 CET] <DarkUranium> but nvm, I've just decided to cut in a separate step
[23:16:11 CET] <klaxa> i don't think there is an option for that and this usecase is quite specific, but it shouldn't be too hard to think of some combinations of multiple ffmpeg runs
[23:16:13 CET] <furq> if you need such precise cuts you'll probably need to reencode anyway
[23:16:32 CET] <furq> in which case you can do it in one pass with the select/trim and concat filters or something along those lines
[23:16:32 CET] <DarkUranium> furq, is there a way to force it to do it lossless?
[23:16:42 CET] <DarkUranium> it doesn't have to be that precise, they were just examples.
[23:16:56 CET] <klaxa> if you cut at keyframes you can use -c copy
[23:16:59 CET] <furq> use -c copy if you don't want to reencode, but yeah
[23:17:04 CET] <furq> you can only cut at keyframes if you do that
[23:17:23 CET] <DarkUranium> and if I don't? Will the entire video get messed up (for h264, if it matters), or will it only be a lossy cut until the first keyframe?
[23:17:31 CET] <furq> it'll seek to the nearest keyframe
[23:17:40 CET] <DarkUranium> that's CloseEnough(TM)
[23:17:55 CET] <furq> with h264 it'll probably be within about five seconds
[23:18:33 CET] <DarkUranium> actually, looks like my time just happened to hit it exactly
[23:18:40 CET] <DarkUranium> that works *shrug*
[23:19:02 CET] <furq> if you're cutting on a scene change or something then that'll often be a keyframe
[23:19:17 CET] <DarkUranium> for future reference, is there a way to do this in a file list, in the same step?
[23:19:22 CET] <DarkUranium> (provide start/end times, I mean)
[23:19:55 CET] <furq> https://ffmpeg.org/ffmpeg-formats.html#concat
[23:19:57 CET] <furq> apparently there is
[23:20:30 CET] <DarkUranium> ah, I was reading https://trac.ffmpeg.org/wiki/Concatenate
[23:20:30 CET] <furq> file 'foo.mp4'\ninpoint 01:23:45\nduration 00:01:23
[23:21:01 CET] <furq> or you might need outpoint instead of duration
[23:21:17 CET] <DarkUranium> mm.
[23:21:22 CET] <DarkUranium> and how do I reset it for the next file?
[23:21:39 CET] <DarkUranium> (though I suspect I may need to provide inpoint *BEFORE* the file; I'll experiment!)
[23:22:22 CET] <furq> All subsequent file-related directives apply to that file.
[23:23:17 CET] <DarkUranium> where does it say that?
[23:23:26 CET] <DarkUranium> meh, I'll just try it.
[23:24:06 CET] <kam187> hmm so i'm using av_interleaved_write_frame to write audio
[23:24:41 CET] <kam187> but if there's a gap, i.e. stream_audio_1 <10 second gap of no audio> stream_audio_2 it ignores the gap
[23:24:47 CET] <kam187> the pts is correct
[23:32:42 CET] <kam187> is there a way to fill the gaps with silence using ffmpeg?
[00:00:00 CET] --- Sat Nov 19 2016



More information about the Ffmpeg-devel-irc mailing list