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

burek burek021 at gmail.com
Thu Sep 13 02:05:01 CEST 2012


[00:54] <funyun> hi. does anyone know what this error message means? *** THIS PROGRAM IS DEPRECATED ***. This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[00:56] <llogan> funyun: http://stackoverflow.com/questions/9477115/who-can-tell-me-the-difference-and-relation-between-ffmpeg-libav-and-avconv/9477756#9477756
[00:57] <saste> funyun, long story short, debian choosed to ship the libav fork of ffmpeg in place of ffmpeg, and they renamed ffmpeg to avconv and deprecated it
[00:58] <saste> FFmpeg the project is still actively maintained, so that message doesn't apply to ffmpeg developed by the original branch
[00:59] <funyun> saste: so it's best to install libav?
[01:00] <llogan> you already have libav installed if you got that message. did you read the link i provided?
[01:00] <saste> funyun, why did you conclude that?
[01:00] <llogan> obviously we don't often recommend libav over ffmpeg here
[01:00] <saste> the fact that debian choosed it... doesn't prove anything (especially considering the involved politics)
[01:01] <funyun> oh i see. i wanted to keep everything the same because i am just now getting the hang of ffmpeg. i don't want to switch. but i thought you were implying it was best to switch
[01:02] <saste> funyun, again i'm not implying anything
[01:02] <JEEBsv> basically the message means that you have libav installed and the ffmpeg command line tool in that was deprecated and later removed completely
[01:02] <saste> but here we support and develop FFmpeg
[01:02] <saste> not the libav fork
[01:03] <funyun> JEEBsv: so you're saying i don't have ffmpeg anymore, but libav instead?
[01:04] <JEEBsv> (basically libav rewrote parts of ffmpeg and renamed it avconv, and left ffmpeg un-updated. ffmpeg (the project) merged most if not all changes to its ffmpeg (the application). Thus, if you use libav, you want to use avconv)
[01:04] <JEEBsv> funyun: yes
[01:04] <funyun> JEEBsv: am i able to re-install ffmpeg? or will it just remove it again?
[01:05] <JEEBsv> if your distribution has a package for it, easily. Otherwise just keep your own build of ffmpeg around in /usr/local or your home folder if you want ffmpeg :)
[01:06] <funyun> alright. thanks for the info and help everyone
[01:07] <JEEBsv> anyways, considering the pace at which both projects go forward I'd probably have my own install of either somewhere >_>
[01:07] <JEEBsv> (whichever you prefer)
[01:08] <JEEBsv> s/you/one/
[01:08] <JEEBsv> *prefers
[03:55] <troy-> how can i determine why ffmpeg is dropping frames?
[09:24] <ameeth> how to increase fps while streaming an raw video .i'm using ffmpeg 0.11.1
[11:10] <shroomM> hey
[11:10] <shroomM> say I have an 1080i50 stream
[11:10] <shroomM> and want to convert it to 720p50
[11:10] <shroomM> is this okay...
[11:10] <shroomM> ffmpeg -i input.mpg -vf "yadif=1,scale=1280:720" -c:v libx264 -crf 11 -preset fast -tune film -profile:v main -level:v 41 -pix_fmt yuv420p out.mp4
[12:06] <relaxed> shroomM: Looks good, is the output 50 fps?
[12:07] <shroomM> relaxed, yeah, but I get a bunch of PTS 1412, next:56360000 invalid dropping st:0 warnings
[12:07] <shroomM> not sure what they mean or why I get them
[12:07] <shroomM> i don't get them if I output a 25fps file
[12:08] <shroomM> by removing =1 from yadif
[12:09] <relaxed> don't you want yadif=0?
[12:09] <shroomM> yadif=0 gives me 25fps
[12:09] <shroomM> yadif=1 gives me 50
[12:09] <shroomM> since it's outputting 1 frame per field
[12:10] <shroomM> and 0 give 1 frame per input frame
[12:10] <relaxed> With 1080i50 "1" would give you 100fps
[12:10] <relaxed> (or should)
[12:10] <relaxed> 2 fields * 50
[12:11] <shroomM> sorry, that was a typo
[12:11] <shroomM> it's 25fps interlaced
[12:11] <relaxed> er, pastie.org ffmpeg -i input
[12:13] <shroomM> https://gist.github.com/3705742
[12:16] <relaxed> Okay. So you want 50 fps output from that?
[12:16] <shroomM> yeah
[12:17] <relaxed> Sometimes these messages are purely informational. How does it look on playback?
[12:17] <shroomM> interlaced :)
[12:17] <shroomM> I mean
[12:17] <shroomM> sorry
[12:17] <shroomM> yeah, the resulting file is ok
[12:17] <shroomM> but I am worried about the warnings
[12:22] <relaxed> add -v debug and see if it's droppping frames, if not you're fine
[12:22] <relaxed> add -t 120 for a short sample
[12:22] <shroomM> k, will do
[12:24] <relaxed> I have to get ready for work now but I'll be back on in a hour or so. /me &
[12:24] <shroomM> k, bye
[12:25] <relaxed> post you results and I'll look at them later
[12:25] <relaxed> your*
[12:25] <shroomM> ok, thanks!
[13:14] <qvarkk> I'm planning to make use of FFMpeg from a php application. Is it advised to use the FFmpeg php library or should i use the standard OS application?
[13:14] <JEEB> the php library IIRC has been mostly abandoned from 2005 or 2007
[13:14] <JEEB> and isn't related to the ffmpeg project in any way
[13:31] <qvarkk> JEEB: ok. what is the preferred way to use ffmpeg with php? or should i better look for a watchfolder type of solution with the os application? please be ware my technical level is quite low (as you might've notice)
[13:31] <qvarkk> noticed*
[13:32] <JEEB> probably one or other way of calling ffmpeg (the command line application) might be the easiest
[13:33] <JEEB> because you'd have to implement a lot of stuff if you were to actually start linking libav* and friends and using the internals from php
[13:38] <lemonjelly> Hello
[13:39] <lemonjelly> Could someone help me with the correct syntax to specify "-movflags frag_keyframe" on the command line? I get an error: Undefined constant or missing '(' in 'frag_keyframe'
[13:39] <lemonjelly> This is with ffmpeg 0.8.3, although the same command works on latest 0.11 release, which is why I'm confused
[13:39] <qvarkk> JEEB:  is this the project you're refering to: http://sourceforge.net/projects/ffmpeg-php/ ?
[13:39] <JEEB> yes, which has nothing to do with ffmpeg
[13:40] <JEEB> used to be in the topic because people came around asking for help with it
[13:40] <JEEB> lemonjelly, are you sure that older version supports fragments_
[13:40] <JEEB> ?
[13:41] <lemonjelly> JEEB: Good question, I'll check it
[13:41] <JEEB> also, are you sure that you are on ffmpeg and not libav? As I remember quite a few distributions having that version of libav in their repositories
[13:42] <JEEB> these two at times have different command line structures
[13:43] <killown> any idea about this error http://bpaste.net/show/KmRXmUVMe0yj5q4911Is/ ?
[13:44] <JEEB> killown, you're trying to use the internal ogg encoder, that is /very bad/
[13:44] <JEEB> see the [NULL @ 0x179bd40] Codec is experimental but experimental codecs are not enabled, try -strict -2
[13:44] <lemonjelly> JEEB: I think that's it... sorry, stupid me. Thanks
[13:44] <killown> JEEB, how is the right way? can you tell me?
[13:45] <killown> JEEB, I am a ffmpeg newbie :)
[13:45] <JEEB> killown, build ffmpeg with libvorbis
[13:45] <killown> JEEB, ok
[13:45] <JEEB> it should get used by default then, but I think setting audio codec to libvorbis would be the best way of making sure it gets selected
[13:46] <JEEB> the aac encoder that is also still set as experimental is actually relatively OK
[13:46] <JEEB> the ogg vorbis one...
[13:46] <JEEB> killown, also do build with fdk-aac instead of libfaac
[13:46] <JEEB> better quality for aac
[13:46] <JEEB> https://github.com/mstorsjo/fdk-aac
[13:46] <killown> JEEB, man!! thank you, I will change that right now
[13:47] <JEEB> (you will need to do 'autoreconf -fiv' in the source folder first to create the configure script)
[13:47] <JEEB> lemonjelly, so you're on libav? head towards #libav and ask there :)
[13:48] <killown> JEEB, autoreconf is a command?
[13:48] <JEEB> yes
[13:48] <JEEB> it's a tool that creates the configure script
[13:48] <JEEB> then you can do configuration as usual
[13:49] <killown> there is no suck tool on opensuse, I am still trying find where it's available
[13:49] <JEEB> it's probably in some package
[13:50] <killown> killown at Killown-Desktop:~/rpmbuild/BUILD/ffmpeg-0.11.1$ sudo autoreconf -fiv
[13:50] <killown> autoreconf: 'configure.ac' or 'configure.in' is required
[13:51] <JEEB> wrong folder
[13:51] <JEEB> also > sudo
[13:51] <JEEB> STOP THAT
[13:51] <JEEB> you /only/ need admin rights when you install a package into a folder you normally have no rights on
[13:51] <JEEB> /only/
[13:51] <killown> sorry
[13:51] <killown> my mistake
[13:51] <JEEB> I meant in fdk-aac's folder
[13:52] <killown> ok
[13:52] <killown> Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
[13:54] <killown> I am trying to fix that
[13:54] <killown> brb
[13:55] <killown> automake
[13:57] <killown> JEEB, done!
[13:58] <JEEB> then you should have a configure script and now you can configure, compile and install fdk-aac like faac
[14:00] <relaxed> shroomM: What was the result?
[14:01] <killown> JEEB, compiling fdk!
[14:02] <killown> JEEB, now how I enable fdk-aac on ffmpeg?
[14:03] <shroomM> relaxed, all green,
[14:03] <shroomM> appears no frames dropped
[14:03] <JEEB> killown, leave --enable-libfaac out and I think it was --enable-libfdk-aac ?
[14:04] <JEEB> check the configure script/changelog for the exact setting
[14:04] <killown> JEEB, Unknown option "--enable-libfdk-aac".
[14:05] <killown> ./configure --help | grep fdk == nothing found
[14:05] <JEEB> your ffmpeg is old?
[14:05] <JEEB> http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=875cb2ba0dd9957b4eccabdf4a3703d3ce7750ed;hb=HEAD
[14:05] <JEEB> ctrl+f for fdk
[14:05] <killown> JEEB, 0.11.1
[14:05] <JEEB> yes, that's probably too old
[14:05] <JEEB> go get the current git HEAD
[14:06] <shroomM> libfdk = better than libfaac?
[14:06] <JEEB> yes
[14:06] <JEEB> also supports both HE-AAC(v2) and LC-AAC
[14:06] <shroomM> nice
[14:07] <JEEB> yeah, the only thing not nice in it is the license, which seems to be GPL-incompatible. But if you're already using faac you're already using --enable-nonfree
[14:08] <killown> download the source from the git
[14:08] <killown> ing*
[14:11] <killown> JEEB, i will use this TMPDIR=tmp ./configure --enable-avfilter  --enable-libfdk-aac --enable-libmp3lame --enable-libxvid --enable-libx264   --enable-nonfree --enable-libtheora  --enable-libvpx --enable-x11grab --enable-gpl --enable-libvorbis
[14:12] <JEEB> I dunno if you really need to specifically enable avfilter
[14:12] <killown> ok I will remove that
[14:12] <killown> JEEB, some other thing useful to enable?
[14:13] <JEEB> what do you /need/
[14:13] <killown> JEEB, just make screencasts with audio support and convert it for webm
[14:14] <JEEB> then I bet you don't need libxvid or libmp3lame because neither are used on the internets really, and if you're doing webm you don't need libtheora either
[14:15] <killown> removed both
[14:15] <killown> TMPDIR=tmp ./configure  --enable-libfdk-aac --enable-libx264   --enable-nonfree --enable-libtheora  --enable-libvpx --enable-x11grab --enable-gpl --enable-libvorbis
[14:15] <killown> ops libtheora
[14:16] <JamJams> Hi, for -t hh:mm:ss[.xxx] is that a SMPTE timecode? Or is .xxx the milliseconds?
[14:17] Action: killown compiling ffmpeg
[14:17] <JEEB> JamJams, milliseconds I think
[14:17] <JEEB> SMPTE timecodes are only used where specified
[14:17] <JamJams> Yeah I was thinking that...
[14:19] <JamJams> I'm having some issues with stuff going oos.
[14:20] <JamJams> I think it's an issue with my maths when I convert the frames into hh:mm:ss[.xxx] format for ffmpeg.
[14:20] <JEEB> yeah, I'd love a frame-based method as well as I've gotten used to avisynth's trim(0,300)++trim(600,1200) kind of creation of clips
[14:20] <JEEB> unfortunately, that isn't there
[14:21] <JEEB> also, if you are trying to cut segments while copying video/audio, note that ffmpeg can only cut on independently decodable packets
[14:22] <JEEB> in video it's called a 'group of pictures' (GOP) that has an IDR frame (also colloquially called a 'keyframe') in the beginning of it
[14:22] <JEEB> in audio it's just usually dependant on the length of audio frames
[14:22] <JamJams> Ah
[14:22] <JEEB> (for lossless formats this can be actually audibly long if it goes over/not far enough)
[14:23] <killown> there is no a easy way to record a specific app sound?
[14:23] <JEEB> there might be a way with pulse or something, but I think that's more of an excersize in pulse than ffmpeg :)
[14:24] <killown> ok
[14:24] <divVerent> or in whatever other audio framework the app uses
[14:24] <divVerent> e.g. if it uses SDL, there is some env variable to make sound go to disk
[14:24] <killown> ffmpeg version N-44398-g8e082df built on Sep 12 2012 09:22:55 with gcc 4.7 (SUSE Linux)
[14:24] <divVerent> jackd also provides ways to do that... pick your poison, but ffmpeg can't do it :P
[14:24] <killown> JEEB, man!! thanks a lot, working now
[14:26] <JamJams> Dam my maths sucks, hopefully I can get this back into sync :/
[14:31] <killown> I am still wondering how webm is so amazing, I have one x264 video with 250MB and converting for webm this reduces for 30mb and still has a good 1080p quality
[14:32] <JEEB> drink more kool aid, sir
[14:32] <JEEB> also don't compare apples to oranges
[14:33] <JEEB> vp8 is the least worst freetard video format at the moment, but it is /not/ better than H.264 neither spec-wise nor encoder-wise (libvpx)
[14:33] <killown> JEEB, is there a way to tell ffmpeg use more GPU than cpu when I am converting a video?
[14:34] <JEEB> no
[14:35] <killown> JEEB, what's wrong with vp8?
[14:36] <JEEB> it lacks b-frames and while copying many things from H.264 it mostly doesn't implement stuff all the way through. It has /some/ features that actually go beyond H.264's ways of doing it, but those are few and not big enough to actually matter
[14:36] <divVerent> seriously, for same quality, you need about +30% file size with VP8 in my experience
[14:36] <divVerent> the encoder is somewhat slow, and the decoder is... the only spec the codec has
[14:36] <JEEB> also libvpx certainly doesn't not hold up to libx264 speed-wise nor compression-wise
[14:36] <JEEB> divVerent, I think they now have a more "real" spec
[14:37] <divVerent> does that mean their old spec is invalid, as their old decoder code was buggy? ;)
[14:37] <JEEB> I have no idea
[14:37] <JEEB> haven't read it
[14:37] <divVerent> or do encoders still have to contain the buggy decoder code
[14:37] <killown> du -m videofinal.mkv
[14:37] <killown> 205     videofinal.mkv
[14:37] <divVerent> because of the loop filter
[14:37] <cbsrobot-> funny
[14:37] <killown> du -m videofinal.webm
[14:37] <killown> 29      videofinal.webm
[14:37] <killown> see the difference
[14:37] <JEEB> killown, > comparing random defaults
[14:37] <divVerent> killown: now try re-encoding with x264
[14:38] <JEEB> also what on earth are you even comparing
[14:38] <divVerent> to the same quality you picked wioth webm
[14:38] <killown> divVerent, can't
[14:38] <divVerent> maybe you can get it to 20M at H.264 with same quality
[14:38] <JamJams> JEEB have you tried using the -frames switch? It appears to work.
[14:38] <JEEB> JamJams, nope
[14:38] <cbsrobot-> when converting a movie with sound to h264 and aac_v2 - with libfdk_aac, quicktime sees the audio track as mono ....
[14:38] <JEEB> also, the only side really caring about vp8 by now is mozilla, it's sponsoring x264-based xvp8
[14:39] <JEEB> but that currently only handles intra frames fully and has non-intra half-working IIRC
[14:39] <killown> divVerent, don't know what settings I use to get same size com h264
[14:39] <JEEB> use same bit rate?
[14:39] <divVerent> killown: easy. Try x264 defaults, then increase crf until it looks bad
[14:39] <JEEB> or do that
[14:39] <divVerent> or same bitrate, if his vp8 encode was bitrate based
[14:39] <JEEB> also remember -presets  that set compression vs speed settings
[14:40] <JEEB> http://mewiki.project357.com/wiki/X264_Settings#preset
[14:40] <JEEB> anyways, burg
[14:40] <divVerent> thing is, in practice, vp8 isn't BAD, it clearly beats all the pre-H.264 MPEG-4 stuff
[14:40] <JEEB> yeah
[14:40] <divVerent> but it stands no chance against H.264
[14:40] <JEEB> because it basically is baseline H.264 +/- stuff
[14:40] <divVerent> that is actually the part I wonder most about
[14:40] <divVerent> it does many things similar to H.264
[14:41] <JEEB> as soon as you start having b-frames or good psy optimizations
[14:41] <MadPig> Can I use ffmpeg as a "meta data scrubber"?
[14:41] <divVerent> the MPEG LA already claimed that VP8 infringes on some of their patent
[14:41] <JEEB> you're going to end up winning against vp8 unless your encoder sucks
[14:41] <divVerent> in this case, I actually tend to believe them
[14:41] <JEEB> (I'm looking at you MS, your encoder takes the spot)
[14:41] <JEEB> divVerent, yeah -- considering the proximity of those two formats...
[14:41] <JEEB> I wouldn't be surprised
[14:42] <divVerent> so if I want something somewhat safe from patents, I'd STILL probably rather pick theora
[14:42] <MadPig> "The final drafting work on the first version of the standard was completed in May 2003." <-- According to Wikipedia, H.264 is from 2003... I thought it was much fresher.
[14:42] <divVerent> at least that has been around for long enough for people to actrually have checked it thoroughly
[14:42] <JEEB> MadPig, yeah -- the basic spec is from 2003, it didn't have all profiles etc. in it back then tho
[14:42] <divVerent> and if I don't care for the patents, I can just as well use H.264
[14:42] <MadPig> :S
[14:43] <MadPig> I am continously surprised how it is possible to make video formats in so many ways, and how there is constantly a need for new ones.
[14:43] <JEEB> I think most stuff got in before 2006-7? Then they changed the lossless coding standard somewhere along the line
[14:43] <divVerent> basically... in my experience, VP8 doesn't gain enough over Theora to be worth the extra patent risks
[14:43] <divVerent> Theora is roughly like old MPEG-4 stuff
[14:43] <JEEB> yeah, by now
[14:43] <JEEB> surprisingly
[14:43] <divVerent> hehe, yes
[14:43] <JEEB> (since it began off of vp3)
[14:43] <divVerent> they somewhat recently made the encoder somewhat good
[14:43] <divVerent> this took long
[14:43] <JEEB> yeah
[14:43] <JEEB> I still remember "theora the frame dropper"
[14:44] <divVerent> haha, yes
[14:44] <divVerent> I also doubt I will change the DarkPlaces engine to support VP8 video capture
[14:44] <divVerent> it currently supports Theora and raw AVI
[14:44] <divVerent> and Theora at maximum quality setting is actually ok
[14:44] <divVerent> (well, of course it SHOULD be...)
[14:44] <JEEB> I don't see anything good from VP8 support, it's not fast
[14:44] <JEEB> (...good for video capture that is)
[14:45] <divVerent> and uses another set of crappy to use libraries
[14:45] <divVerent> I still am not over the pain inflicted on me from libogg, libtheoraenc, libvorbis
[14:45] <divVerent> especially libogg
[14:45] <divVerent> this experience makes me think twice before trying to deal with e.g. libmatroska
[14:45] <JEEB> MadPig, well... H.264 coming out in 2003 and now HEVC probably will come out in 2013... those people have a ~10 year cycle in those it seems.
[14:46] <divVerent> ogg has this "nice" feature that only the last packet of an encoded frame has a timestamp
[14:46] <divVerent> and that makes muxing quite nasty
[14:46] <JEEB> lol
[14:46] <divVerent> and you have to do it exactly right, because libogg does NOT buffer data for you
[14:46] <divVerent> so in the end, I ended up writing all packets of a video except the last, all packets of audio except the last, video last, audio last
[14:46] <divVerent> i.e. pulling frame data apart
[14:47] <divVerent> valid ogg, but... messy
[14:47] <divVerent> *of a video frame, I mean
[14:47] <divVerent> BTW, I also tried implementing libavcodec/libavformat support
[14:47] <divVerent> but never managed to commit it
[14:47] <divVerent> because once I was done, the interface changed again
[14:47] <JEEB> as often happens
[14:48] <MadPig> HEVC :S
[14:48] <divVerent> well, if ffmpeg interfaces ever get stable, I'll fix up the code and commit
[14:48] <divVerent> :P
[14:48] <divVerent> and then wee cna have H.264 output AND VP8 output
[14:49] <MadPig> The video format needs to know... how many frames, what resolution... um... the frame speed... and the sound... and how to decompress it (if needed). How can there be a billion formats for this?
[14:49] <divVerent> many ways to do the "how to decompress" ;)
[14:49] <JEEB> because everyone thinks they have a better format for some use case
[14:49] <MadPig> Yes, but that's for the "codec", no?
[14:49] <divVerent> oh, you meant the format, not the codec
[14:49] <JEEB> yes, codecs are video formats too
[14:49] <divVerent> yes... that I wondered too
[14:49] <divVerent> too many political interests
[14:50] <divVerent> technically, mkv is better than everything else by now
[14:50] <divVerent> but look at what mp4 is - rebranded .mov
[14:50] <divVerent> quicktime crap
[14:50] <JEEB> except it doesn't support X/Y timestamps which has some people crying out
[14:50] <divVerent> hehe, yes, except this doesn't really matter
[14:50] <JEEB> (well it does, but the timescales are limited to certain numbers only IIRC)
[14:50] <MadPig> But the same companies keep making new standards... WHY? Anything made after Y2K should be more than future proof enough with codecs plugged in, no? Why make new standards?
[14:50] <divVerent> as the codecs have their own copy of the timestamp too
[14:51] <divVerent> thing is, mp4 is not BETTER than mkv
[14:51] <MadPig> Right. The whole deal with subtitles. But isn't that an APP feature, regardless of what file format or codec?
[14:51] <divVerent> I can't plug e.g. vorbis into mp4
[14:51] <divVerent> while I already know I can put Opus into MKV
[14:51] <divVerent> just because MKV supports everything :P
[14:51] <divVerent> MadPig: embedding subtitles into video is a format feature again
[14:51] <MadPig> Embedding?
[14:51] <JEEB> divVerent, x264 f.ex. doesn't write anything else but the timing VUI info (and even then, only in CFR mode), and that isn't really anything you can /really/ get the "timestamps" out of
[14:52] <MadPig> That sounds like video editing.
[14:52] <JEEB> I wrote a piece on that lately
[14:52] <divVerent> yes, with mkv you can embed subtitles into the .mkv
[14:52] <divVerent> so you don't have separate .ass files around
[14:52] <divVerent> you still can turn them on/off or toggle while playing
[14:52] <JEEB> http://doom10.org/index.php?topic=2361.msg10892#msg10892
[14:52] <MadPig> That actually does sound useful in a way.
[14:52] <divVerent> and is commonly used
[14:52] <MadPig> Even though it's also very useful to have a simple <same file name>.srt in the same dir.
[14:53] <MadPig> Which my video players seem to understand.
[14:54] <divVerent> yes, but .srt is gone :P
[14:54] <divVerent> .ass is a lot better
[14:54] <JEEB> mp4's main problems are: 1) the spec is hard to read, and has a WHOLE BUCKLOAD OF FEATURES 2) meanwhile it lacks by default features like chapters (vendors then started just making their own shit for this, officially "you're supposed to use BIFS") 3) the "officially supported" "mp4" video/audio/subtitle formats are limited. You can register your own extensions of course and spec stuff yourself... but then who implements those?
[14:54] <divVerent> also, .ass/.ssa users tend to embed a font too, which matroska supports too
[14:55] <JEEB> popular stuff like VC-1/DTS and friends in mp4 naturally gets supported, but herpa la derpa
[14:55] <divVerent> especially the font embedding in mkv is somewhat stupid
[14:56] <divVerent> as that means that if you have 26 episodes, you have 26 copies of the same fontr
[14:56] <divVerent> but, it makes the files self-contained, which is a huge advantage
[14:56] <JEEB> in theory, nothing stops you from "just putting" vorbis/opus/ass/srt/fonts into "mp4", but there's no specified way of muxing stuff like that IIRC (unlike that one AVI compatibility mode of matroska's)
[14:58] <MadPig> divVerent: Gone?
[14:59] <divVerent> still there
[15:00] <divVerent> yes, this matroska compatibility mode is just genius in some ways
[15:00] <divVerent> apparently, the biggest problem is getting a codec ID established
[15:00] <divVerent> in order to mux a codec into a format
[15:00] <divVerent> and AVI FOURCCs grow like a weed anyway, so that's what people do - just define their FOURCC and be happy
[15:02] <MadPig> MKV is from Russia? Well, that explains why nobody trusts it...
[15:03] <JEEB> nah
[15:03] <JEEB> corecodec is as american as it gets, and was based on some finnish base IIRC (the finnish format never went off because of involuntary army service)
[15:04] <JEEB> matroska is a miswriting of the Russian word "matryoshka"
[15:04] <MadPig> Corecodec :S
[15:04] <MadPig> It's... a nightmare... of standards...
[15:04] Action: MadPig prefers to live in blissful ignorance and just feeds ffmpeg stuff as if it were a black magic box.
[15:04] <JEEB> (Corecodec being the company behind matroska)
[15:05] <MadPig> Can I use ffmpeg as a "meta data scrubber"? If so, how? If not, why? In either case, can you recommend something better if it's not optimal for this?
[15:06] <JEEB> ffmpeg/ffprobe are usable for some things, then there's mediainfo as well
[15:06] <divVerent> matroska allows you to attach a mkv to a mkv to a mkv to a mkv to a mkv
[15:06] <divVerent> nobody would really DO that
[15:06] <divVerent> may be a funny way to hide a "hidden track"
[15:06] <divVerent> but it kind of explains the name
[15:06] <divVerent> also, ordered chapters have something matryoshka-ish
[15:06] <MadPig> JEEB: Sorry, but that didn't really explain anything.
[15:07] <JEEB> you can get some info out of ffmpeg and/or ffprobe (command line apps) that are provided by the ffmpeg project
[15:07] <divVerent> he wants to remove e.g. app store IDs from M4A files
[15:07] <JEEB> you check those, and see if that's enough
[15:07] <JEEB> if not, go check mediainfo
[15:07] <divVerent> the thing is
[15:08] <JEEB> I can have absolutely no idea on what exactly you want
[15:08] <MadPig> Yeah. I want to be able to take any video or image or sound file, shove it into ffmpeg, and have the resulting file not converted but stripped from any meta data.
[15:08] <JEEB> thus I can only give general help
[15:08] <divVerent> MadPig: the question is
[15:08] <divVerent> do you know WHICH metadata to remove?
[15:08] <JEEB> oh, scrubber in that sense :P
[15:08] <MadPig> All of it. :S
[15:08] <divVerent> that is exactly the problem
[15:08] <JEEB> I thought scrubber in the sense to get it
[15:09] <divVerent> how can you ever know you got all of it
[15:09] <JEEB> to extract and check metadata
[15:09] <MadPig> Um... because the software probably knows what the format looks like?
[15:09] <divVerent> if you reencode audio and video using ffmpeg, you'd be pretty safe, but only that, and not more than that
[15:09] <JEEB> and exactly what divVerent said about types of metadata
[15:09] <divVerent> if you stream copy using ffmpeg, you still IIRC lose the obvious metadata
[15:09] <divVerent> but there may still be some left
[15:09] <divVerent> MadPig: read up on steganography
[15:09] <MadPig> I don't understand your question.
[15:10] <divVerent> it isn't hard to embed a store user ID into any audio file you download from the store
[15:10] <MadPig> I am NOT talking about hidden information in the video itself.
[15:10] <divVerent> but metadata tools wouldn't show it
[15:10] <MadPig> Like the World of Warcraft screenshot hysteria.
[15:10] <divVerent> MadPig: okay then... what happens if you just try to remux it using ffmpeg?
[15:10] <MadPig> Remux?
[15:10] <divVerent> does ffprobe still show the metadata?
[15:10] <divVerent> that's what I would try, basically
[15:11] <divVerent> to rebuild the outside container, keeping the audio and video data as is
[15:11] <JEEB> ffmpeg -i input -c:v copy -c:a copy output
[15:11] <JEEB> if it has subtitles, -c:s copy too
[15:11] <divVerent> also, mkvmerge -o output input ;)
[15:11] <divVerent> is something worth trying, but not from ffmpeg
[15:11] <MadPig> Okay, so I have this JPEG of some nice duckies with EXIF data... I ran a ffmpeg convert of it to another JPEG... it removed the metadata.
[15:12] <divVerent> hehe, for THAT I'd use jpegoptim --strip-all, though ;)
[15:12] <MadPig> Does that mean that by default, ffmpeg removes all metadata?
[15:12] <divVerent> MadPig: don't trust anything we say here, just try it
[15:12] <divVerent> likely, ffmpeg does
[15:12] <divVerent> there may be metadata inside the A or V streams though, which would not be caught
[15:13] <divVerent> I am not sure if e.g. some audio or video tagging system would put the metadata in a way so it'd even be part of a video with the audio file muxed in
[15:13] <divVerent> like, can you put a mp3 file's ID3 tag into a mkv or mp4 file by havign a sufficiently ignorant demuxer and muxer?
[15:13] <MadPig> Why can there never be easy answers to my questions? They always just spark more questions...
[15:13] <divVerent> so that it would do no harm when playing
[15:14] <divVerent> but would be visible when extracting the stream again
[15:14] <divVerent> I vaguely remember ID3 was designed so the frames are ignored by players
[15:24] <killown> I am trying to record the sound from chromium browser app which is running a youtube video, I have tested with audacity and I can record the sound from the browser fine if I use pavucontrol, but on ffmpeg I am doing this:
[15:24] <killown> ffmpeg -f alsa -ac 2 -i hw:0 -f x11grab -s hd1080 -r 30 -i :0.0 -vcodec libx264 -preset ultrafast -an -y video.mkv -acodec pcm_s16le -b:a 48000k -vn -y audio.mkv
[15:24] <killown> hw:0 is my sound card
[15:24] <killown> I was using hw:1 that is my mic
[15:25] <killown> it works, but I wish record the app sound
[15:25] <killown> does anyone know how could I do it with ffmpeg?
[15:25] <killown> hw:0 doesnt record any sound
[15:25] <JEEB> I know this might sound crazy and all
[15:25] <killown> this doesnt give any error
[15:25] <JEEB> but why not just grab the video from youtube?
[15:25] <JEEB> and use its audio, if you so much want to do it?
[15:26] <killown> JEEB, my intention is record a game
[15:26] <killown> I am just testing it with the browser
[15:27] <killown> I play games on wine and I make screencast for that so I wish record the sound game, actually I am using the mic to do that
[15:30] <cbsrobot-> killown: you could try it with pavucontrol
[15:30] <cbsrobot-> install pavucontrol
[15:31] <killown> cbsrobot-, i am using pavucontrol
[15:31] <cbsrobot-> start ffmpeg -f also -i pulse
[15:31] <killown> the problem is pavucontrol doesnt detect ffmpeg
[15:31] <cbsrobot-> then run pavucontrol
[15:31] <cbsrobot-> *alsa
[15:31] <killown> cbsrobot-, [alsa @ 0x2d86260] cannot open audio device pulse (No such file or directory)
[15:33] <Mavrik> :)
[15:33] <cbsrobot-> try ffmpeg -f alsa -ac 2 -i hw:0,0
[15:34] <killown> cbsrobot-, pavucontrol did not catch ffmpeg yet
[15:34] <cbsrobot-> you need to run ffmpeg before starting pavucontrol
[15:34] <killown> cbsrobot-, i did
[15:35] <killown> cbsrobot-, the problem is -i pulse, if it worked then pavucontrol would catch ffmpeg
[15:36] <cbsrobot-> killown: sorry, can't help ya
[15:36] <killown> np, thank you
[15:39] <divVerent> haha, just tried how ffmpeg handles metadata
[15:39] <divVerent> if I make a mp3 file with TWO ID3 tags
[15:39] <divVerent> and mux from mp3 to mkv
[15:40] <divVerent> the resulting mkv will still have ONE ID3 tag at the end
[15:40] <JEEB> lol
[15:40] <divVerent> I did use -map_metadata -1
[15:40] <divVerent> ffmpeg strips just one ID3 tag, mkvmerge strips all
[15:40] <divVerent> this is ID3v1 BTW
[15:40] <divVerent> ID3v2 aren't so brain-dead that you can accidentally have multiple :P
[15:47] <divVerent> this is my test file: http://rm.sudo.rm-f.org/~xonotic/temp/foo.mp3
[15:47] <divVerent> it has 64 ID3 tags
[15:48] <divVerent> ffmpeg -i foo-1.mp3 -map_metadata -1 -c:a copy foo-2.mp3
[15:48] <divVerent> each of these steps removes ONE tag ;)
[15:49] <Tjoppen> repeat it until sha1sum says the file didn't change any more?
[15:50] <divVerent> hehe, sure
[15:50] <divVerent> it's just one example though
[15:50] <divVerent> ONE way to put in metadata that ffmpeg can't "scrub"
[15:50] <divVerent> ffmpeg's purpose is not to erase all metadata
[15:50] <qvarkk> http://tinyurl.com/8ee32mq - can someone extract what server that's supposed to start the conversion? should PHP be run on the EC2 or not?
[15:50] <divVerent> there is many other ways
[15:51] <divVerent> e.g. mp3 audio contains filler data in some frames
[15:51] <divVerent> this LAMEx.yyUUUUUUUUUUUUUUUUUU crap
[15:51] <divVerent> the file stays valid when writing other stuff there
[15:52] <divVerent> also, who says the file has to be valid
[15:52] <divVerent> can just as well edit some of the last bytes of audio and just write stuff there
[15:52] <divVerent> only actually decoding+reencoding gets rid of such stuff, but loses quality
[15:53] <divVerent> or a REAL scrubber that knows the format even when streamcopying, so it knows which bytes do nothing (that would be the least one should use)
[15:53] <Tjoppen> the audio can be watermarked
[15:54] <divVerent> that too, right
[15:54] <divVerent> but reencoding tends to fix that
[15:55] <Tjoppen> what are you trying to solve?
[15:57] <divVerent> MadPig (now left) wanted to use ffmpeg to scrub metadata
[15:57] <divVerent> so he can P2P share content bought from iTunes, probably ;)
[15:57] <divVerent> and I found it interesting, and tried to produce a sample ffmpeg can't scrub. I succeeded.
[15:58] <divVerent> thing is, a scrubber that works for files bought today, may even fail for files bought tomorrow, as a store service can at any time change/introduce watermarking
[15:58] <Tjoppen> I see. most stuff is already ripped by somewhat more competent people though, so why bother?
[15:58] <divVerent> hehe
[15:59] <divVerent> and even if they are not competent
[15:59] <divVerent> it's their ID they leaked, not yours ;)
[15:59] <Tjoppen> yes
[15:59] <divVerent> but if you want to go real illegal, use iTunes coupon codes and a botnet client's iTunes account ;)
[16:00] <divVerent> add $25 to the iTunes account, buy music for $24, P2P it, and even if the owner of the PC notices, he'll be happy ;)
[16:01] <Tjoppen> the sounds awfully complicated just to get some tunes
[16:01] <divVerent> sure, just I don't believe in that scrubbing stuff
[16:01] <divVerent> there is one actually more proper way to scrub: have TWO people buy it lossless, and let them compare the files
[16:01] <divVerent> would quite well prove whether there is watermarking left or not
[16:02] <divVerent> of course, you also could make a watermarking scheme that e.g. only applies one of 2 possible watermarks to each file
[16:02] <divVerent> and you would still be able to find the buyer if you have many files
[16:07] <divVerent> also... being afraid of watermarking is weird too
[16:07] <divVerent> if you just buy and release enough tracks, data mining can track you down already
[16:27] <killown> ffmpeg shows me that ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM pulse when I try to use -i pulse
[16:27] <killown>   --enable-libpulse        enable Pulseaudio input via libpulse [no]
[16:27] <killown> it's not enabled by default?
[17:08] <divVerent> Tjoppen: http://securecoding.sudo.rm-f.org/archives/2012/09/12/scrubbing_metadata_is_not_easy/ - posted about the issue. I don't consider this a ffmpeg bug, as in the ID3 spec, there can only be one ID3v1 tag.
[17:09] <Tjoppen> ok
[17:10] <divVerent> more an issue of "I can use this magic tool and it scrubs all metadata" ;)
[17:10] <divVerent> in this case, however, there actually IS some small ffmpeg issue
[17:10] <divVerent> if both ID3v2 and ID3v1 are present, ID3v1 is ignored
[17:11] <divVerent> and ffmpeg always creates an ID3v2 tag with info about the encoder
[17:11] <divVerent> but, there is no REAL way to solve that
[17:11] <divVerent> showing both is spammy
[17:12] <divVerent> that MP3 can contain three kinds of tags is quite evil
[17:12] <divVerent> you can have ID3v1, ID3v2 and APEv2 in the same file
[17:13] <Tjoppen> if I understand correctly mp3 isn't actually a container
[17:13] <divVerent> that is actually why these nasty hacks work
[17:13] <Tjoppen> just essence + hackish metadata on the end
[17:13] <divVerent> the hackish metadata is actually stored in a way that non-supporting players see it as a broken frame and refuse to decode it
[17:14] <divVerent> (in case of ID3v1)
[17:14] <divVerent> that's why sometimes you even can have an ID3v1 tag in the middle of a file - when e.g. broken MP3 concatenate tools were used
[17:15] <divVerent> and most players will happily skip over that
[17:15] <divVerent> in fact, many MP3 players are quite good at detecting broken data and skipping over it by searching a new start of a "good" frame
[17:32] <ameeth1> does current version i.e., ffmpeg 0.11.1 supports video4linux2(v4l2)
[17:49] <troy-> how can i figure out why frames are being dropped after the first few seconds?
[18:31] <_clx> hi
[18:33] <_clx> I'm trying to convert a file from mp4 to avi with "ffmpeg -sameq -i input.mp4 output.avi" but I've the error "[mpeg4 @ 0x8526700] Invalid pixel aspect ratio 64757/64800, limit is 255/255" . Any idea on how to solve this ?
[18:34] <JEEB> first of all, -sameq is not what you think it is
[18:34] <JEEB> second of all, you will probably have to check the command line option to force an aspect ratio
[18:35] <JEEB> basically it wants to set 64757/64800 (probably found from the source), but the limit is 255/255
[18:35] <JEEB> also, I'm completely not sure how players will read aspect ratios from streams that are in AVI
[18:35] <JEEB> most things will probably gladly ignore them
[18:36] <JEEB> also, while ffmpeg has gotten much better per-container defaults, I would still say that not setting any settings at all is somewhat unsafe and most probably doesn't do what you want
[18:37] <_clx> Do you know which option should I use to set the ratio to 255/255 JEEB ?
[18:37] <JEEB> you don't want to set it to 255/255
[18:37] <_clx> uh?
[18:37] <_clx> so what do I whant ? :)
[18:37] <_clx> -h
[18:38] <JEEB> the closest thing to those large numbers that is within 0-255/0-255
[18:39] <JEEB> also, the only reason -sameq'd output looks better than output without -sameq is because the default for the video encoder that gets used is most probably 200kbps
[18:39] <JEEB> -you will want to set -q:v 2 or so methinks
[18:39] <JEEB> (instead)
[18:39] <JEEB> or you set a bit rate
[18:40] <JEEB> (-sameq is not "same quality", it just copies quantizers from the input source, which in this case just happens to look better than the default low bit rate)
[18:41] <_clx> well  yes I used -sameq thinking it was for same quality (I read it from a forum..), but the option "-q" is no recognized
[18:41] <JEEB> ok, let me see what sets a constant quantizer
[18:41] <JEEB> http://ffmpeg.org/ffmpeg.html is the official documentation btw
[18:43] <JEEB> oh, here we go
[18:43] <JEEB> -qp
[18:43] <JEEB> (I think)
[18:43] <_clx> well it's not in my man, I will try
[18:44] <JEEB> I guess they've hidden it well because usually you don't want to use quant-based encoding
[18:44] <JEEB> but you are most probably getting mpeg-4 part 2 selected with avi
[18:44] <JEEB> which can't use more advanced options such as crf
[18:44] <JEEB> crf is the closest to what we currently have as "constant quality"
[18:45] <_clx> doh ! it overwrite my mp4 file
[18:45] <_clx> damned
[18:45] <_clx> So I don't have anymore to convert the mp4 file ...  :]
[18:45] <JEEB> ouch
[18:46] <JEEB> oh
[18:46] <_clx> ffmpeg -qp input.mp4 output.avi <= overwrite with mp4 and avi
[18:46] <JEEB> could be -qscale
[18:46] <JEEB> _clx, that's because you didn't set an input file
[18:46] <JEEB> you need to have -i before the input
[18:46] <JEEB> otherwise you have two outputs
[18:46] <_clx> uhmpf
[18:46] <_clx> ok
[18:46] <JEEB> and yes, it was qscale
[18:47] <JEEB> not qp
[18:47] <JEEB> :)
[18:47] <_clx> ok so ffmpeg -qscale -i input.mp4 output.avi
[18:47] <JEEB> -qscale 2 or 4
[18:47] <JEEB> smaller is "better quality"
[18:47] <_clx> Let me try to recover the file with a backup...
[18:48] <JEEB> (and more file size)
[18:48] <_clx> so : ffmpeg -qscale 2  -i input.mp4 output.avi
[18:50] <JEEB> encoding options go after -i
[18:50] <JEEB> also you'll probably want to set the audio encoding bitrate accordingly to your liking
[18:50] <JEEB> -b:a 192k would set the audio bitrate to 192kbps f.ex.
[19:01] <_clx> well JEEB I just ran "ffmpeg -i input.mp4 -qscale 2 -b:a 192k output.avi" and I still have the error  "Invalid pixel aspect ratio 64757/64800, limit is 255/255"
[19:05] <JEEB> _clx, naturally
[19:06] <JEEB> -aspect 253/254
[19:06] <JEEB> I guess
[19:08] <JEEB> (although most players will just plain ignore aspect ratios in avi)
[19:08] <_clx> well yes the error diseapper, this should be the right option
[19:08] <_clx> I'm trying with 16:9 (I see it in the man)
[19:09] <JEEB> I don't remember if -aspect sets display aspect ratio (aspect ratio of the whole picture), or the pixel aspect ratio
[19:09] <JEEB> because with pixel aspect ratio 16:9 is not what you think
[19:09] <JEEB> if it's display aspect ratio, then 16:9 should be exactly what it says on the tin
[19:10] <_clx> oh ok ! I will see the results :) But in the man examples are 4:3, 16:9, etc.
[19:10] <_clx> it might do the job
[19:10] <brimestone> hey guys. how do i go about changing a 24FPS footage to 23.98fps "PSF"
[19:11] <_clx> few minutes to go and I will tell you JEEB if the output file is correct
[19:11] <JEEB> brimestone, you would have to slightly alter the audio, and -r 24000/1001 before -i for video
[19:11] <JEEB> (or you could just set -r 24000/1001 before -i and hope for the best
[19:11] <brimestone> i dont have audio.. its MOS
[19:11] <JEEB> then -r 24000/1001 before -i should do
[19:12] <brimestone> thanks
[19:12] <JEEB> unless ffmpeg has changed again how it works :D
[19:12] <brimestone> framerate not found?
[19:13] <JEEB> wut?
[19:13] <JEEB> show command line and output
[19:13] <brimestone> wait
[19:13] <JEEB> via a pastebin
[19:13] <brimestone> http://pastebin.com/NgN12kPY
[19:13] <JEEB> lol
[19:13] <JEEB> "Option framerate not found" :|
[19:14] <brimestone> this is something stupid on my part huh
[19:14] <JEEB> not necessarily
[19:15] <brimestone> it being infront of -i, does it matter?
[19:15] <JEEB> yes
[19:16] <brimestone> must i add -f?
[19:16] <JEEB> no
[19:16] <JEEB> if you had put it after, it would have seen 24fps input which you wanted to convert to 24/1.001fps while keeping the length the same
[19:16] <JEEB> which would have meant losing frames
[19:16] <JEEB> (not many, but some)
[19:17] <JEEB> anyways, back to food making for me
[19:17] <brimestone> for this purpose, i dont care about the TRT, its a timelapse so it can be flexible with Total running time
[19:20] <_clx> Well JEEB that's a success ! "-aspect 16:9" was correct. Thank you very much for your time and help !
[19:22] <JEEB> brimestone, -r before -i basically used to and still does with some inputs work as AssumeFPS() , -r after -i ConvertToFPS()
[19:22] <JEEB> _clx, do note that many players just plain ignore the aspect :)
[19:22] <JEEB> so it might be correct or incorrect, and it would still look fine
[19:32] <saste> michaelni, I need duration in AVFrame, could you comment on "[PATCH] lavc: add duration field to AVFrame"
[19:49] <michaelni> saste, make sure you explain clearly what the new field is in relation to pkt_duration and repeat_pict
[19:49] <michaelni> in the patch
[19:49] <michaelni> because its not clear to me ATM
[19:49] <michaelni> so likely wont be clear to others either
[19:49] <saste> michaelni, I have not yet written the patch, that is I was not satisfied with the already posted patch
[19:50] <saste> basically at the codec level we have no reference to the muxer/demuxer timebase
[19:50] <saste> so we have pkt_pts/duration info, but we don't know how to interpret it
[19:51] <michaelni> we have pkt_timebase
[19:51] <saste> damn how did I miss it??
[19:53] <sine`> hi guys. I have some frames like 24 .png per second
[19:53] <sine`> 001 > 999
[19:54] <sine`> can i use ffmpeg to encode this to x264 or so
[19:54] <saste> sine`, !faq
[20:09] <sine`> ffmpeg is moaning at where my dir or files are
[20:10] <sine`> c:\ffmpeg\bin>ffmpeg -f image2 -i C:/BLENDERTEST/%d.png C:/BLENDERTEST/a.mpg
[20:10] <sine`> C:/BLENDERTEST/%d.png no such file or directory
[20:10] <sine`> and ive done it with \
[20:12] <relaxed> sine`: %03d.png would be 001.png thorugh 999.png
[20:12] <relaxed> through*
[20:12] <sine`> hmm
[20:12] <sine`> so its % 03 d
[20:13] <sine`> meaning 3 digits
[20:14] <sine`> its still saying it cant find
[20:14] <relaxed> how are they named?
[20:14] <sine`> i even gave it a proper file name and it said cant find
[20:14] <sine`> im doing something wrong with the directory nameing
[20:14] <relaxed> C:\ \
[20:15] <sine`> C:\BLENDERTEST\0001.png
[20:15] <relaxed>   C:\BLENDERTEST\%04d.png
[20:15] <sine`> YES
[20:15] <sine`> thanks
[20:15] <sine`> whats taht about
[20:18] <relaxed> sine`: it's the printf format for padding a number with zeroes
[20:20] <sine`> thanks for your help
[20:20] <sine`> its hard im trying to learn so many softwares i have started to write it all down in treepadlite
[20:22] <relaxed> sine`: c:\ffmpeg\bin>ffmpeg -f image2 -r 24000/1001 -i C:\BLENDERTEST\%04d.png -vcodec mpeg2video -qscale 3 C:\BLENDERTEST\output.mpg
[20:22] <sine`> could you give me the syntax to make it best quality x264
[20:22] <sine`> at 24
[20:22] <sine`> oh
[20:23] <relaxed> I assume you want 23.97fps instead of 24
[20:24] <sine`> im not sure im making animation renders from blender 24 fps
[20:25] <relaxed> then change -r 24000/1001 to -r 24
[20:39] <tw> for av_audio_resample_init, how do you pick the filter_length and log2_phase_count parameters? I arbitrarily picked 16 and 10 but I have no clue what those do.
[00:00] --- Thu Sep 13 2012


More information about the Ffmpeg-devel-irc mailing list