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

burek burek021 at gmail.com
Sun Jun 30 02:05:01 CEST 2013


[00:02] <sander455> I have a setopbox and i can get the stream from the web of this box. The stream have a big bandwith and i dont want that. I want to transcode it and restream it. One problem i have when i restream the stream it will lag if i am watching the stream with vlc and look in debug i see alot of warnings like early and  timing screwed, stopping resampling. I tried to make a dumpstream with mplayer etc... does anyone know a solution for this.
[01:15] <xreal> Are there tools to automatically reach the highest quality for MP4 in multi-pass?
[01:20] <llogan> xreal: are you using two-passes becuase you are targeting a specific output file size?
[01:21] <xreal> llogan: I used Handbreak up to now, but I want higher quality.
[01:21] <llogan> otherwise you can: ffmpeg -i input -codec:v libx264 -qp 0 -preset ultrafast output.mp4
[01:21] <llogan> lossless mode
[01:21] <llogan> https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide
[01:22] <xreal> llogan: higher, not highest :)
[01:22] <llogan> you said highest
[01:23] <xreal> llogan: I am sorry
[01:24] <xreal> llogan: in XViD-time, there was auto gordian knot.
[01:24] <xreal> Is there something like that for x264 ?
[01:24] <llogan> no need to apoligize. i was just giving an example of what you asked for.
[01:24] <llogan> read the link i provided
[01:24] <llogan> specifically the section on -crf
[01:25] <llogan> then read the https://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide if you are also encoding audio
[01:26] <xreal> thx#
[01:26] <sander455> llogan do you know maybe solution of my problem
[01:27] <llogan> sander455: sorry, I don't.
[01:28] <sander455> oke
[01:33] <brontosaurusrex> xreal, x264 has presest
[01:34] <brontosaurusrex> and handbrake is still trying to be smarter than x264 devs
[01:35] <brontosaurusrex> and single pas crf encode is considered cool this days
[01:35] <brontosaurusrex> pass*
[01:36] <xreal> brontosaurusrex: preset like LAME does?
[01:36] <brontosaurusrex> yes
[01:36] <xreal> oh nice
[01:37] <brontosaurusrex> but llogan allready informed you.
[01:37] <xreal> yeah, I'll read it tomorrow on train
[01:38] <brontosaurusrex> ok and thank me, cos i was the one proposing them in the core in the 1st place
[12:22] <xlinkz0> i get this when i try to compile ffmpeg : http://codepad.org/2j0DoArs , i compiled x264 like this : http://codepad.org/udDLis1R
[12:23] <xlinkz0> i'm on wheezy
[12:23] <JEEB> xlinkz0, if that was the current x264, then it's clearly seeing some unrelated header
[12:24] <JEEB> I think X264_VERSION is 133 atm
[12:24] <xlinkz0> i've got both latest ffmpeg and x264
[12:24] <xlinkz0> from git
[12:24] <JEEB> #define X264_BUILD 133
[12:25] <JEEB> yes, if you had gotten your correct header read
[12:25] <JEEB> it would have been 133
[12:25] <JEEB> not 130
[12:25] <xlinkz0> could this be beacuse i had an older version installed but didn't delete it?
[12:26] <JEEB> that's a problem if the other installation is in a search directory that is checked before the one you installed to this time
[12:26] <xlinkz0> might be
[12:27] <xlinkz0> i had an old style instalation
[12:27] <xlinkz0> but dunno how to clean up stuff i make installed or the old ffmpeg compile commands installed
[12:28] <JEEB> most probably stuff under /usr/local ?
[12:28] <JEEB> why do you want to install to the /usr prefix btw?
[12:29] <xlinkz0> no particular reason
[12:30] <JEEB> because /usr can generally have packages etc. installed there
[12:30] <JEEB> while /usr/local in general on linux is left for the user to put stuff into
[12:30] <xlinkz0> oh, forgot
[12:30] <xlinkz0> what's there other than /usr/include and /usr/local/include?
[12:31] <xlinkz0> because i still get those errors after i deleted everything in local/include, lib , bin
[12:31] <JEEB> generally libraries go into <prefix>/lib , binaries go into <prefix>/bin and manpages go into <prefix>/shared
[12:32] <xlinkz0> and what prefixes are there?
[12:32] <JEEB> what you install to? it's not a set-in-stone thing. Anyways, I recommend you make clean first because you're at the linking stage right now
[12:32] <JEEB> and it's most probably not going to re-compile any code
[12:33] <JEEB> thus you would still get that error since it just tries to link
[12:33] <JEEB> and possibly re-configure, too
[12:35] <xlinkz0> thanks, it worked :)
[12:35] <JEEB> also I really recommend you use /usr/local unless you really know what you're doing
[12:35] <JEEB> "Oh geez I happened to overwrite a system library"
[12:36] <xlinkz0> understood, is there any way to clean up the stuff i installed to /usr/ ?
[12:36] <JEEB> not any automated way
[12:36] <JEEB> but if you only installed x264
[12:36] <JEEB> x264.h and libx264 dot-so
[12:38] <xlinkz0> thanks
[14:31] <LordDoskias> when i'm muxing something with ffmpeg programatically and i do not set the dts value of the AVPacket could this result in no picture or sound being played when i open the muxed file?
[14:34] <Mavrik> depends on player and format, but mostly yeah
[14:34] <Mavrik> you really can't have a valid mux without dts
[14:35] <Mavrik> you probably got a ton of "non-monotonic timestamp" errors which discarded everything you were writing anyway
[14:35] <LordDoskias> i only got like 10-15 of those
[14:35] <LordDoskias> for the video i only have the pts
[15:02] <LordDoskias> Mavrik, wouldn't the av_write_interleaved function automatically workout the DTS values, what if i do not have them ?
[15:04] <Mavrik> you can't have video without DTS values, c'mon
[15:05] <Mavrik> you MUST know when a frame is displayed
[15:05] <Mavrik> otherwise you have random images, not video.
[15:07] <LordDoskias> why do yoy need dts and pts
[15:07] <LordDoskias> i thought PTS is what is the key value?
[15:21] <burek> LordDoskias, because there are cases when you have to decode frame 10 prior to decoding frame 5,6,7,8 and 9
[15:22] <burek> although its not yet time to display frame 10, you need to decode it before 5,6,7,8,9 because they are referencing frame 10
[15:22] <burek> that's why you need both pts and dts
[15:22] <burek> pts tells you when to show a frame and dts tells you when to decode it
[15:25] <LordDoskias> can't the dts value be inferred?
[15:25] <LordDoskias> i get the non monotonic error on several frames e.g. 10-20 out of a 1.20 minutes video
[15:26] <burek> inferred from where?
[15:27] <LordDoskias> i do not know
[15:27] <LordDoskias> but if i have the dts/pts value of an input stream and then i feed it into a hardware encoder (on a raspberrypi) and i get encoded packets do dts/pts change?
[15:27] <burek> you can arrange your frames in the container in a random way
[15:27] <burek> not neccessarily in PTS order
[15:28] <burek> so you need both for the decoder to know when to do what with each frame
[15:28] <burek> a hardware encoder (on a raspberrypi) - you really don't wanna go that way
[15:29] <LordDoskias> why not?
[15:29] <LordDoskias> that's the specs of the project
[15:29] <LordDoskias> i want to be able to transcode from mpeg2 to mpeg4
[15:29] <LordDoskias> when feeding data into the decoder i can set a timestamp field which is the PTS value and i get that at the encoder's end
[15:29] <burek> you should read more about rpi
[15:30] <LordDoskias> well i do have the transcoding working for just video, now i want to put it into a container with appropriate framerate settings etc
[15:31] <burek> good luck with that
[15:32] <LordDoskias> why?
[15:32] <LordDoskias> apparently some other guy already did that
[15:33] <burek> then you have nothing to worry about
[15:33] <burek> just ignore me :)
[15:34] <LordDoskias> well, i;d like to hear your arguments
[15:34] <burek> RPi has a very weak cpu
[15:34] <burek> and if you wanna use it as an encoder
[15:35] <burek> sooner or later you'll realize that you made a mistake choosing that hardware
[15:35] <LordDoskias> well, that's the thing - the cpu is weak
[15:35] <LordDoskias> the videocore is powerful
[15:35] <LordDoskias> it can play full hd with no problems
[15:35] <burek> not to mention if you want to do any kind of streaming, since it's all usb based
[15:35] <burek> even eth
[15:35] <LordDoskias> i'm using the openmax api's
[15:35] <burek> you'll just experience some random resets and stuff
[15:35] <burek> LordDoskias, playing a HD stream is not a same thing as encoding it
[15:36] <LordDoskias> let'me start the encoding
[15:36] <LordDoskias> and see what the cpu load is
[15:57] <Sevano> HI, I have a problem i want am dumping a stream and want to stream it with ffmpeg when i do this it will be laggy and when i look inside vlc log i see of errors when it will lag. If i unicast and stream i get 0 errors. I think i think streaming will go faster then dumping how i can solve this.
[17:44] <bencc> resampling is a separate process before encoding?
[17:45] <bencc> or is it a part of the encoding
[18:01] <Mavrik> bencc, you can only resample things that are not encoded - so resampling goes after decoding and before encoding :)
[18:11] <bencc> Mavrik: makes sense
[18:12] <bencc> Mavrik: are there cases where I have to resample?
[18:12] <Mavrik> uh
[18:12] <Mavrik> well.
[18:12] <bencc> for example when transcoding speex to mp3
[18:12] <Mavrik> you have to resample when you want output that uses different sampling rate >P
[18:13] <Mavrik> and whether you want output at different sampling rate depends on your wishes and use case.
[18:13] <bencc> are there codecs that only support a specific sample rate?
[18:13] <brontosaurusrex> some lossy encoders will work better with certain input sample rates, also not all sample-rates are supported everywhere
[18:13] <bencc> my use case is to support both Flash (speex) mobile (mp3) and WebRTC users at real time
[18:14] <bencc> brontosaurusrex: ok
[18:15] <Mavrik> and yes, there are formats that support only limited sample rates
[18:15] <Mavrik> as there are players and recorders which also support limited range of sample rates
[18:15] <brontosaurusrex> lame used to be best-tweaked for 44.1 some years ago for example, not sure if that is of any validity today.
[18:17] <bencc> ok
[18:17] <bencc> thanks
[18:27] <brontosaurusrex> also some lossy encoders will auto-magically resample the input to whatever they think they need.
[18:28] <brontosaurusrex> and some will resample input based on requested bitrate (downsample).
[18:28] <bencc> good. I like simple things
[18:31] <brontosaurusrex> iam just being "smart" since i have to do the dishes now.
[19:51] <mark4o> http://ffmpeg.org/faq.html#Why-does-FFmpeg-not-see-the-subtitles-in-my-VOB-file_003f
[19:51] <mark4o> "The size of the initial scan is controlled by two options: probesize (default ~5 Mo) and analyzeduration (default 5,000,000 µs = 5 s). For the subtitle stream to be detected, both values must be large enough."
[19:52] <mark4o> Looks like the web server is misconfigured.  Should be Content-Type: text/html; charset=utf-8
[19:52] <mark4o> It says Content-Type: text/html
[19:53] <mark4o> default is ISO-8859-1
[19:53] <mark4o> Also what is Mo?  MB?
[20:46] <sine``> I have some video footage that says 29fps from a phone. is this exactly 29 frames per second
[20:46] <sine``> and how can i dump this into lossless images
[20:50] <mark4o> sine``: ffmpeg -i inputfile image%3d.png
[20:53] <sine``> thanks
[21:18] <sine``> mark4o:
[21:19] <sine``> do you know how i can do this but at 50% the origional image size
[21:19] <sine``> im doing some video tracking and i want to have a small reference image set for the tracking software, so it will run better
[21:21] <mark4o> sine``: you can specify resolution with -s, or use the scale filter: ffmpeg -i inputfile -vf scale=iw/2:ih/2 image%3d.png
[21:22] <mark4o> that is 50% in both directions
[21:22] <sine``> so vf is video filter
[21:22] <mark4o> yes
[21:22] <sine``> image width divided by 2
[21:22] <sine``> cool cool
[21:23] <sine``> damn ffmpeg is quick
[21:24] <sine``> free software is teh best software
[21:26] <Nicias> Hello, I have a question about using -vf yadif while transcoding from mpeg2 to x264 mkv
[21:27] <Mavrik> yes.
[21:27] <Nicias> Here is the command I am using
[21:28] <Nicias> ffmpeg -report -v 9 -loglevel 99 -i in.mkv -c copy -vf yadif -c:v libx264 -preset veryfast -crf 20 /tmp/out.mkv
[21:28] <Nicias> usually not with the report and loglevel options.
[21:28] <Nicias> I recently upgraded from 0.10.7 to 1.0.7.
[21:28] <sine``> mark4o: is there a way to apply picture edits to the pictures, such as make bw and increase contrast
[21:29] <Nicias> when I was using 0.10.7, I got a line like this in the output
[21:29] <Nicias> [yadif @ 0x75fdbb64a0] mode:0 parity:-1 auto_enable:0
[21:29] <Nicias> now with 1.0.7 that has gone.
[21:29] <Nicias> no mention of yadif in the output at all.
[21:30] <Nicias> it looks to my untrained eye, that it is being deinterlaced, but is the new version just less verbose? Or did it get pickier about where to put the -vf yadif? or something else?
[21:32] <mark4o> sine``: sure there are many filters, check the docs http://ffmpeg.org/ffmpeg-filters.html
[21:32] <mark4o> sine``: colorchannelmixer has a grayscale example, haven't used that
[21:34] <Mavrik> Nicias, no, thats because you're giving conflicting parameters
[21:34] <Mavrik> -c copy == -codec copy
[21:34] <Mavrik> == copy ALL streams
[21:34] <Mavrik> you probably wanted to pass -codec:a copy there right?
[21:34] <Nicias> also a subtitle copy.
[21:35] <Nicias> so change the -c copy to -c:a copy -c:s copy?
[21:35] <Mavrik> mhm
[21:35] <Mavrik> it's possible that the way those things are parsed has changed in 1.0
[21:35] <Mavrik> and you're seeing undefined behaviour in action ;)
[21:36] <Nicias> that makes sense. I assumed that -c copy -c:v foo would use foo for the video and copy the rest, but It might not be defined.
[21:39] <Nicias> ok, so if I change the -c copy to -c:a copy -c:s copy, and then where do I put the -vf yadif?
[21:43] <Mavrik> Nicias, after -i should be enough :)
[21:43] <Nicias> so something like
[21:46] <Nicias> so something like " ffmpeg -i in.mkv -vf yadif -map 0 -c:a copy -c:s copy -c:v libx264 -preset veryfast -crf 20 /tmp/out.mkv "
[21:46] <Nicias> hmm. he left.
[21:47] <Nicias> I tried that still no mention of yadif in the log.
[21:54] <sine``> thanks mark4o
[21:55] <Nicias> Since Mavrik seems to have left, can someone else give my question a look?
[21:59] <mark4o> Nicias: I don't think that it shows the full list of filters that you've applied in the output
[21:59] <Nicias> so it might have just become less verbose?
[22:01] <mark4o> I don't remember it ever showing the full list of filters but it might have
[22:02] <Nicias> ok. thanks.
[22:02] <Nicias> running it both ways now and checking.
[22:02] <mark4o> btw 1.0.7 is still old, last stable release was 1.2.1
[22:04] <Nicias> tell that to my distribution :)
[22:04] <mark4o> ok :P
[22:13] <Nicias> yup, found a more-comby part and it does seem to be doing its job. thanks
[22:20] <mark4o> Nicias: yes it looks like yadif used to have its own custom options parsing which included the message you mentioned, but it was changed to use the standard option parsing which allows e.g. yadif=parity=bff instead of having to know magic numbers
[22:20] <Nicias> mark4o: that is very helpful. where did you find that information?
[22:21] <Nicias> welcome back Mavrik
[22:21] <mark4o> Nicias: http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=7536c671040f1f3ebc9f0d3b7831dac71436b775
[22:24] <Nicias> so since it was now using meaningful options instead of magic numbers it no longer reports its parsing of the magic numbers
[22:25] <Nicias> I had thought that it was just reporting all the filters it was using and their initializations. I liked that behavior. I guess I will have to trust it that it is doing yadif if I ask it to.
[22:26] <mark4o> yes, unlike before, it should now report an error if it is not valid
[22:30] <Nicias> thanks for the help Mavrik and mark4o.
[23:30] <brontosaurusrex> whats "-c:s copy" ?
[23:30] <klaxa> copy the subtitle stream(s)
[23:30] <brontosaurusrex> ok
[00:00] --- Sun Jun 30 2013


More information about the Ffmpeg-devel-irc mailing list