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

burek burek021 at gmail.com
Thu Apr 16 02:05:01 CEST 2015


[00:01:34 CEST] <kyleogrg> How could using yadif speed up the video?  It shouldn't change the number of frames or the framerate right?
[00:02:02 CEST] <lordkrondor> just my experience where the video ended before audio
[00:02:07 CEST] <lordkrondor> I didn't try to figure it out
[00:02:16 CEST] <kyleogrg> hmm ok
[00:11:03 CEST] <kyleogrg> -vf "fps=30000/1001,fieldmatch,yadif=deint=interlaced,decimate"
[00:11:23 CEST] <kyleogrg> What does "yadif=deint=interlaced" mean?
[00:11:39 CEST] <c_14> Only deinterlace frames that are marked as interlaced
[00:11:42 CEST] <c_14> iirc
[00:12:26 CEST] <kyleogrg> ok.  and why is the fps part necessary?
[00:12:29 CEST] <kepstin-laptop> that looks like it should in theory give you a vfr video with detelecined and deinterlaced sections as appropriate
[00:13:17 CEST] <kepstin-laptop> kyleogrg: dunno, but it might be required on dvd-video sources, which switch between 30 and 24 fps.
[00:13:44 CEST] <kepstin-laptop> (ideally, you'd be applying softpulldown telecine to the video rather than duplicating frames, imo)
[00:13:54 CEST] <kyleogrg> kepstin-laptop: all right.  well, what i have is an edited dvd of a 24p film.
[00:14:21 CEST] <kyleogrg> so there was (i think) a telecined dvd which somebody edited *again*
[00:14:46 CEST] <kyleogrg> and made an edited dvd version.  so it's still telecined, but with no consistent pattern.
[00:14:51 CEST] <kyleogrg> now I want to detelecine
[00:14:57 CEST] <kepstin-laptop> it's very common for animated stuff to have additional edits being made after the telecine was done :/
[00:15:08 CEST] <kyleogrg> and this isn't animation...
[00:16:01 CEST] <kyleogrg> So I'm looking for a smart way to detelecine, then deinterlace the remaining interlaced frames...
[00:16:50 CEST] <kepstin-laptop> detelecine then deinterlace remaining frames, you mean?
[00:17:17 CEST] <kyleogrg> yes, i guess.  but obviously to only deinterlace frames which need it
[00:19:38 CEST] <kepstin-laptop> kyleogrg: then the filterchain you wrote there is probably one of the better ways to do it in ffmpeg
[00:20:27 CEST] <kepstin-laptop> kyleogrg: might also be worth considering 'pullup,idet,yadif=deint=interlaced'
[00:21:00 CEST] <kepstin-laptop> pullup uses future context, so it's sometimes better in wonky edited content than the fieldmatch filter
[00:22:05 CEST] <kepstin-laptop> hmm. probably want to throw a dejudder on the end of that too, if you're using pullup
[00:22:35 CEST] <kyleogrg> hmm i need to think for a sec
[00:23:10 CEST] <kepstin-laptop> hmm. I should try "pullup,idet,yadif=deint=interlaced,dejudder" on some of my problematic samples
[00:23:44 CEST] <kepstin-laptop> I honestly kept a copy of mencoder around just so I could use its 'filmdint' filter before ffmpeg grew additional detelecining stuff...
[00:25:36 CEST] <kyleogrg> so what is dejudder?
[00:26:25 CEST] <kyleogrg> i can google
[00:26:43 CEST] <kepstin-laptop> kyleogrg: filter that fixes the timestamps of detelecined edited video to be constantish, rather than do something like 1, 2, 3, missing, 5,
[00:26:53 CEST] <kyleogrg> "May change the recorded frame rate of the container. Aside from that change, this filter will not affect constant frame rate video. "
[00:27:08 CEST] <kyleogrg> Can this mess with the pace or framerate of the movie?
[00:28:22 CEST] <kepstin-laptop> it fixes "judder", which is when you see e.g. a smooth horizontal pan and it looks like it moves smoothly for a few frames then jumps, moves smoothly for a few frames, jums, repeated.
[00:28:55 CEST] <kepstin-laptop> which can happen with some detelecine filters, particularly on edited video
[00:28:59 CEST] <kyleogrg> how does it know when to fix this, though?
[00:29:52 CEST] <kepstin-laptop> kyleogrg: it basically looks for a sequence of frames where e.g. one in five frames has double the pts different from the others, then spreads those out evenly.
[00:30:06 CEST] <kyleogrg> ok.  whats pts?
[00:30:23 CEST] <kepstin-laptop> frame play timestamp
[00:30:41 CEST] <kyleogrg> hmm. ok, i'll try this!
[00:31:00 CEST] <kepstin-laptop> I'm heading home now, i should try some of these filters on a few of my problematic sources
[00:31:05 CEST] <kyleogrg> with that sequence you gave (pullup,idet,yadif=deint=interlaced,dejudder), should I customize this at all?
[00:31:14 CEST] <kyleogrg> any special settings for yadif, for instance?
[00:31:15 CEST] Action: kepstin-laptop has some fun anime dvds with horribly broken telecine patterns.
[00:31:20 CEST] <kyleogrg> haha
[00:31:39 CEST] <kepstin-laptop> kyleogrg: if you like; but make sure yadif is running in a one-frame-in,one-frame-out mode.
[00:32:02 CEST] <kepstin-laptop> you can play around with the thresholds and edge exclusion in pullup, and the idet thresholds too
[00:32:09 CEST] <kyleogrg> ok.  just one more question:  how do i put this in your sequence?
[00:32:19 CEST] <kyleogrg> like yadif=3:0:0 or something
[00:32:33 CEST] <kyleogrg> yadif=3:0:0=deint....?
[00:32:42 CEST] <kepstin-laptop> kyleogrg: you start by reading the 'ffmpeg-filters' document to see what the syntax for ffmpeg filter chains is ;)
[00:32:48 CEST] Action: kepstin-laptop is off now.
[00:32:53 CEST] <kyleogrg> ok, thanks!
[00:33:52 CEST] <kepstin-laptop> but you can't mix the two parameter formats, you can either use "yadif=foo=10:bar=20" or "yadif=10:20"
[00:34:03 CEST] <kepstin-laptop> well, you can, but it's confusing.
[00:34:07 CEST] <kepstin-laptop> so I don't do that ;)
[02:29:36 CEST] <FedoraUser> I am trying to open analog tv with ffmplay under linux, but I can't seem to find enough information on how to parse options (such as input and frequency)
[02:30:47 CEST] <FedoraUser> 'ffplay -f v4l2 -standard PAL-BG /dev/video0' produces black picture
[02:31:58 CEST] <FedoraUser> is there a documentation that I'm missing that someone can point me to?
[02:41:28 CEST] <Prelude2004c> hey guys.. anyone now how nvenc will select a GPU to use ? i have  2 ( k4200 ) cards and its only using the one card not both
[02:41:33 CEST] <Prelude2004c> anyone know why?
[03:02:36 CEST] <FedoraUser> I'll be lurking here for a while, because I'm really stuck, so if you see my question later on don't hesitate to answer :)
[03:32:02 CEST] <kyleogrg> how can i set a volume level for all of the audio channels?
[03:32:22 CEST] <kyleogrg> it's a 5.1 surround sound video, and i need to be able to change the volume or silence it
[03:32:42 CEST] <kyleogrg> not individual tracks -- i mean the all the audio tracks
[03:35:06 CEST] <kyleogrg> never mind -- i think i got it
[04:23:57 CEST] <Prelude2004c> hey guys.. anyone now how nvenc will select a GPU to use ? i have  2 ( k4200 ) cards and its only using the one card not both
[05:42:06 CEST] <Prelude2004c> can anyone help with nvenc ?
[08:06:42 CEST] <gridtank> Tying to set Scan type to Interlaced. using recommended -flags +ildct in ffmpeg. The source is Upperfield and the target is DNxHD MXF. But media info reports back Scan type: Progressive and so does th Avid Mediacomposer. What am i doing wrong.    SAMPLE:   ./ffmpeg -i OLLETEST_MANSZELM_ANIMATION.mov -timecode 00:10:00:00 -threads 16 -map 0:0 -map 0:1 -map 0:1 -map_channel 0.1.0:0.1 -map_channel 0.1.1:0.2 -vcodec dnxhd -
[08:06:42 CEST] <gridtank> b 120M -acodec pcm_s24le -ar 48000  -flags +ildct -y test.mxf
[08:07:43 CEST] <gridtank> -b:v 120M offcourse
[09:38:40 CEST] <GuiToris> is there anybody here who knows how to use the deshake with ffmpeg?
[12:43:09 CEST] <d3fault_> Say you have a folder of N audio and video(only) files. The audio files came from one device and the video files from another. If the timestamps of the files are accurate (pointing to when the media file BEGAN), this tool I wrote can stitch togetether all of the intersecting timeapspans of audio/video. It can do multiple audio files per video (inserting silence as needed), and there's even a mode to interactively calculate +/- audio delays (with 15 
[12:43:20 CEST] <d3fault_>  second previews). It obviously uses ffmpeg. https://github.com/d3faultdotxbe/autobackup/tree/master/Projects/DirectoriesOfAudioAndVideoFilesMuxerSyncer/src
[12:48:05 CEST] <sleepypikachu> I'm trying to look up what I want to do but having a little bit of trouble expressing it. I have a directory containing images and a wav audio file, I want to create a video which cross fades between the images in a loop for as long as the wav file is (with the wav file as the background audio)
[12:50:57 CEST] <c_14> Possible, but very fiddly with the commandline tools.
[12:51:52 CEST] <sleepypikachu> c_14: Something else I considered was just calculating the length of time each image would need to be on screen for to fill the whole wav file
[12:52:25 CEST] <c_14> Both versions are possible, but would need the support of a scripting language.
[12:52:33 CEST] <c_14> Well.
[12:52:43 CEST] <c_14> If you only want to do it once you can also do the calculations manually.
[12:53:04 CEST] <sleepypikachu> Sadly no, I'm doing it more than once
[12:53:21 CEST] <c_14> Then you'll need a scripting language of some sort.
[12:53:21 CEST] <sleepypikachu> Guess I could just use python?
[12:53:42 CEST] <sleepypikachu> either with an explicit exec or some kind of binding
[12:53:53 CEST] <c_14> Popen is usually the method of choice
[12:54:23 CEST] <c_14> Which version would you prefer (each image has constant length, or only one loop)?
[12:54:50 CEST] <sleepypikachu> Probably constant length, if the wav is long and the number of images is low it would look strange
[12:55:26 CEST] <c_14> Right. So first you'll want to create a video clip that represents "single-loop"
[12:56:30 CEST] <sybariten> hey, can ffmpeg be run with a sort of short script as input as opposed to command line parameters, and could it make things clearer?   :)
[12:57:29 CEST] <sleepypikachu> sybariten: You could create a script which has access to a sub set of the options and then calls with the command line parameters for you
[12:57:47 CEST] <sleepypikachu> sybariten: Or you can write a program which binds to the library directly using libav but I've done that and it's horrible.
[12:58:39 CEST] <c_14> With 2 images the command would look kinda like: ffmpeg -loop 1 -i image1.png -loop 1 -i image2.png -filter_complex '[0]trim=duration={time},fade=in=0:{fade_in_time},fade=out:{first frame to start fading out}:{number of frames to fade out}[v1];[1]{as_above}[v2];[v1][v2]concat=n=2:v=1:a=0[v]' -map '[v]' outvideo
[12:59:38 CEST] <c_14> Then you need to find the length of the video; concat that video with itself duration/video_length times (rounded up) with -shortest as an output option and add the wav audio.
[13:00:18 CEST] <sleepypikachu> -shortest?
[13:00:36 CEST] <c_14> Stops producing output when the shortest input (in this case the wav) ends.
[13:01:03 CEST] <sleepypikachu> ah. gotcha
[13:04:47 CEST] <sybariten> sleepypikachu: thanks for the insigt. Bummer that it's not a more established method
[15:26:33 CEST] <Popara> Hello
[15:26:49 CEST] <Popara> I'm trying to make FFmpeg to keep original timestamps and not to correct anything
[15:27:09 CEST] <Popara> I'm using this: ffmpeg -async -1 -vsync 0 -copyts -start_at_zero -i "stream" ...
[15:27:31 CEST] <Popara> Is that good? And also is there anything needed to put after the INPUT? or is ok as it is?
[17:47:53 CEST] <Popara> anyone?
[17:50:24 CEST] <capradmar> I handle timestamp like this: ffmpeg -i input.m4v -metadata timecode=10:00:00:00 output.m4v
[17:59:47 CEST] <Prelude2004c> good day everyone. Tried yesterday but got no responses. Can someone point me in the right direction please. I am using NVENC to encode and i ahve 2 cards in my system. I don't know the flag to have the system load balance between both cards as right now it is only using 1 GPU
[17:59:51 CEST] <Prelude2004c> can anyone help?
[18:16:10 CEST] <kyleogrg> I am experimenting with libx265, placebo.  (I know it's super slow.)  I am coverting DVD VOBs (originally 24p movies, now 30i) to 24p detelecined MKV.
[18:16:33 CEST] <kyleogrg> My question is, is there a film "tune" setting for libx265?
[18:17:43 CEST] <kyleogrg> Also, I am using crf 23.  What other settings would (theoretically, not practically) improve the output quality (not size per se)?
[18:19:06 CEST] <RobotsOnDrugs> if you want quality nad don't care about size, there's a lossless option
[18:19:13 CEST] <RobotsOnDrugs> and*
[18:19:46 CEST] <kepstin-laptop> kyleogrg: all the options that really matter in regards to quality should be covered by the -preset
[18:20:10 CEST] <kepstin-laptop> other than that, it's just picking the quality vs. file size tradeoff, which you do with crf.
[18:20:15 CEST] <kyleogrg> okay, but i was reading about x264 (maybe that's a different animal) and folks were recommending a tune setting as well
[18:20:49 CEST] <kepstin-laptop> kyleogrg: x265 doesn't have particularly great psy optimizations yet, so afaik it doesn't have as many tune-type options as x264.
[18:21:15 CEST] <kyleogrg> ok, thanks
[18:21:38 CEST] <kepstin-laptop> (they are completely different projects, of course; the x265 people just picked the name for marketting reasons ;)
[18:23:28 CEST] <kyleogrg> ahhh yes
[18:23:45 CEST] <kyleogrg> well, there is apparently a tune grain setting, but not tune film.
[18:24:02 CEST] <kyleogrg> "--tune grain tries to improve the retention of film grain in the reconstructed output. It helps rate distortion optimizations select modes which preserve high frequency noise:"
[18:24:26 CEST] <kyleogrg> Could this be good if my source is a DVD?
[18:24:52 CEST] <kepstin-laptop> only if the source has heavy film grain that you want to preserve
[18:25:10 CEST] <kyleogrg> it is film
[18:25:19 CEST] <kyleogrg> or it was before it was telecined
[18:25:38 CEST] <kepstin-laptop> sue, but a) does it have heavy film grain in the video, and b) do you want to preserve this, rather than smooth it out?
[18:25:40 CEST] <kyleogrg> but you're saying it's not important unless it has unusually heavy grain?
[18:25:42 CEST] <kepstin-laptop> sure*
[18:25:50 CEST] <RobotsOnDrugs> DVDs usually mess up grain anyway
[18:26:11 CEST] <kepstin-laptop> yeah, dvd is pretty low res for any sort of decent looking film grain
[18:26:21 CEST] <RobotsOnDrugs> MPEG2, especially at DVD standards, is not efficient
[18:26:31 CEST] <kyleogrg> yes
[18:26:34 CEST] <kyleogrg> i was thinking that
[18:27:23 CEST] <kyleogrg> so is that a good reason to preserve whatever grain is left?
[18:27:23 CEST] <RobotsOnDrugs> i personally treat it as noise
[18:27:41 CEST] <RobotsOnDrugs> it's a personal preference
[18:27:59 CEST] <RobotsOnDrugs> watch the video and decide for yourself
[18:28:22 CEST] <kepstin-laptop> the main reason to preserve film grain (particularly "artificial" grain on high-def sources) is that it can mask banding in some cases.
[18:28:26 CEST] <kepstin-laptop> imo
[18:28:33 CEST] <RobotsOnDrugs> heh
[18:28:40 CEST] <kepstin-laptop> other than that, it's just personal taste
[18:28:50 CEST] <kyleogrg> ok
[18:29:00 CEST] <kepstin-laptop> and if you really like grain, but want efficient encoding, you can always use a video filter after decoding to add fake grain :)
[18:29:08 CEST] <RobotsOnDrugs> are you sure that the banding isn't caused by trying to filter out the grain?
[18:29:41 CEST] <RobotsOnDrugs> (or by smoothing it out in the lossy encoding process)
[18:30:06 CEST] <kepstin-laptop> the banding is caused by the limited bit depth of the colour; the grain sort of acts like dithering.
[18:30:33 CEST] <kyleogrg> ok
[18:30:41 CEST] <kyleogrg> if i want to use tune grai, how do i?
[18:30:43 CEST] <RobotsOnDrugs> depends on the source i guess
[18:31:02 CEST] <kyleogrg> how do i do it with -x265-params?
[18:31:26 CEST] <kepstin-laptop> kyleogrg: don't need to, x265 takes a -tune avoption
[18:31:42 CEST] <kyleogrg> ok
[18:33:12 CEST] <kepstin-laptop> I'm kind of surprised that there's no avoption for crf.
[18:34:25 CEST] <kyleogrg> after cropping the vob, the resolution is 707x461.  Then I scale it to 706x460.  I then set aspect ratio to 1.85.  is this good/safe in your opinion?
[18:35:22 CEST] <kepstin-laptop> kyleogrg: probably better to round the crop to a multiple of 8 or 16, then don't scale.
[18:35:23 CEST] <Mavrik> might wanna crop it instead of scaling it
[18:36:02 CEST] <kepstin-laptop> most  sd content you'll want to crop to a width of 704, and high varies based on content :/
[18:36:15 CEST] <kyleogrg> argh, but then i have to either lose video information or have a black border somewhere :)
[18:36:43 CEST] <kepstin-laptop> kyleogrg: yeah, well, someone watching on a television has overscan anyways, so you're already ahead :)
[18:36:50 CEST] <kyleogrg> yeah haha
[18:37:04 CEST] <kepstin-laptop> you're basically cropping off bits that aren't intended to be seen.
[18:37:35 CEST] <kepstin-laptop> you shouldn't have to manually set aspect ratio at any time; ffmpeg will propagate that through if the source is correct.
[18:38:23 CEST] <kyleogrg> that's another thing
[18:38:31 CEST] <kyleogrg> 1.85:1 is very close to 16:9
[18:38:51 CEST] <kepstin-laptop> dvd video isn't exactly 16:9 to start with, because of all the overscan and stuff.
[18:39:12 CEST] <kepstin-laptop> you just want to make sure the pixel aspect ratio is correct, then the video is whatever size it is.
[18:39:12 CEST] <kyleogrg> This film was 1.85 according it imdb
[18:40:09 CEST] <kyleogrg> well, the par is not square pixels, but when i set aspect ratio to 1.85 it looks ok
[18:40:11 CEST] <kepstin-laptop> that might explain why you're having to crop off the top and bottom, that's not needed on most content
[18:40:42 CEST] <kepstin-laptop> you shouldn't have to set the aspect ratio, ffmpeg will keep the par throughout and it'll just work.
[18:41:05 CEST] <kepstin-laptop> is this ntsc or pal source?
[18:41:06 CEST] <kyleogrg> but vlc doesn't display it correctly unless i do so
[18:41:23 CEST] <kepstin-laptop> hmm, they you might need to throw a setsar in the filter chain
[18:41:26 CEST] <kyleogrg> it's concatenated VOB files
[18:41:42 CEST] <kepstin-laptop> yes, but is it ntsc or pal video standard?
[18:41:53 CEST] <kyleogrg> ntsc
[18:42:38 CEST] <kepstin-laptop> right, throw a "setsar=40:33" at the start of your filter chain, and it should be good
[18:42:57 CEST] <kepstin-laptop> but that really should work automatically, if the vob files are correct :/
[18:43:04 CEST] <kyleogrg> http://pastebin.com/XaqimjzN
[18:43:22 CEST] <kyleogrg> ok.
[18:43:41 CEST] <kyleogrg> i don't know *exactly* what you mean.  can you edit my paste?
[18:44:12 CEST] <kyleogrg> also, the "-tune grain" gives me an error: "Invalid preset or tune."
[18:44:30 CEST] <kepstin-laptop> kyleogrg: you take the filter "setsar=40:33" and put it at the start of your filter chain in the -vf option
[18:44:35 CEST] <kepstin-laptop> kyleogrg: don't bother with the tune.
[18:44:56 CEST] <kepstin-laptop> (also, drop the -aspect option if you add the setsar filter)
[18:44:56 CEST] <kyleogrg> and what is setsar?
[18:45:02 CEST] <kepstin-laptop> it sets the sample aspect ratio
[18:45:19 CEST] <kepstin-laptop> 40:33 is the nominal shape of a pixel in ntsc anamorphic widescreen video
[18:46:07 CEST] <kyleogrg> ok i'll try this
[18:46:16 CEST] Action: kepstin-laptop is off for lunch, back in a while.
[18:46:30 CEST] <kyleogrg> thanks, bye
[19:26:34 CEST] <jc0n> a quick ffserver question, I am useing ffmpeg to configure a ton of settings that ffserver also configures, should I copy all of the settings from ffmpeg to ffserver?
[19:26:56 CEST] <jc0n> things like audio rate, video and autio bitrate, etc
[19:44:15 CEST] <sfan5> jc0n: iirc ffmpeg automatically uses all the settings set in the ffserver configuration when you stream to ffserver
[19:44:40 CEST] <jc0n> sfan5: shouldn't it work when I use NoDefaults though?
[19:45:00 CEST] <jc0n> also it shows messages like Setting default value for audio bit rate when I already have it set
[19:45:09 CEST] <sfan5> shouldn't what work?
[19:45:14 CEST] <jc0n> ffserver
[19:45:41 CEST] <sfan5> ffserver wants to have configuration which is why it complains when you use NoDefaults and don't set the needed values
[19:46:26 CEST] <jc0n> oh do those get overridden by the ffmpeg command?
[19:46:35 CEST] <sfan5> not sure
[19:47:01 CEST] <c_14> ffserver ignores settings from ffmpeg (unless you add the override switch)
[19:47:07 CEST] <sfan5> you have NoDefaults in your ffserver configuration and pass a/v settings to ffmpeg?
[19:47:23 CEST] <jc0n> from ffmpeg
[19:48:06 CEST] <jc0n> ah the override switch
[19:48:09 CEST] <jc0n> perfect
[19:49:21 CEST] <jc0n> one last thing, I'm trying to add a Launch command to the Feed section of my conf and I have like 40 options to pass
[19:49:32 CEST] <jc0n> newlines break it
[19:49:57 CEST] <jc0n> is there some xml tag to escape the newlines?
[19:50:17 CEST] <jc0n> or should I flatten the whole thing into a huge line
[19:51:00 CEST] <jc0n> assuming the  conf is aprsed as xml that is idk what the formatting is
[19:51:04 CEST] <sfan5> i would just do the latter
[19:51:15 CEST] <jc0n> alrighty then 0_0
[19:54:47 CEST] <jc0n> one last thing would you use http or rtp to stream locally
[19:57:07 CEST] <sfan5> i heard rtp performs better for streaming than http
[19:57:16 CEST] <sfan5> but that could be entirely wrong
[19:57:22 CEST] <sfan5> I'd suggest you to try what works best for you
[19:57:26 CEST] <kepstin-laptop> well, if you need low latency, rtp will normally be better
[19:57:28 CEST] <jc0n> alright thanks
[19:57:33 CEST] <kepstin-laptop> http might be easier to set up.
[19:57:42 CEST] <kepstin-laptop> depends.
[19:57:54 CEST] <jc0n> local network
[20:13:24 CEST] <Jackster22> Hi all! I need to copy a RTMP stream without bitrate loss
[20:13:32 CEST] <Jackster22> I have tried -copy but it changes things
[20:14:57 CEST] <kepstin-laptop> Jackster22: you mean -c copy?
[20:20:24 CEST] <Jackster22> yea something like that
[20:22:25 CEST] <kepstin-laptop> well, it can't be something like that, it has to be exactly that...
[20:22:41 CEST] <kepstin-laptop> (or, you know, -codec copy or one of the aliases, or with stream selection).
[20:25:00 CEST] <Jackster22> I don' have tjhe code right this min
[20:26:12 CEST] <kepstin-laptop> well, to dump the audio/video from an rtmp stream into a file, it should be as simple as "ffmpeg -i rtmp://example.com/whatever -c copy  outputfile.mkv"
[20:26:39 CEST] <Jackster22> I am doing RTMP > RTMP
[20:26:50 CEST] <Jackster22> And that always results i n a lower quality stream
[20:27:40 CEST] <kepstin-laptop> how do you mean lower quality? is it getting corrupted?
[20:28:03 CEST] <Jackster22> It goes from 1mbps to 300k with -c copy
[20:28:13 CEST] <kepstin-laptop> ffmpeg doesn't reencode anything if you use -c copy, so the output quality is exactly the same.
[20:28:19 CEST] <Jackster22> It was a while sionce I have done it, just about to try again and probably will be the same
[20:28:22 CEST] <Jackster22> Ill try
[20:29:03 CEST] <kepstin-laptop> (make sure you actually look at the streams to compare; it's quite possible that a nominally "1mbit" source video actually has lower bitrate in some sections...)
[20:35:20 CEST] <pmlamotte> hello, I have an mp4 file that encounters an error when played through ie11 on windows 7 (but oddly enough, not windows 8 with the same windows media player and IE version). I ran it through ffmpeg and came across an error message and was curious what it meant.
[20:35:27 CEST] <pmlamotte> pastbin here: http://pastebin.com/6H2L9YJU
[20:35:46 CEST] <pmlamotte> relevant error is at line 95, the "non monotonically increasing" error
[20:41:20 CEST] <Jackster22> So I tried copy http://pastebin.com/K4K68Kyr
[20:41:52 CEST] <Jackster22> That was "ffmpeg -i rtmp://server/app/stream -c copy -f flv "rtmp://server/app/key""
[20:43:01 CEST] <Jackster22> not had that before
[20:43:45 CEST] <kepstin-laptop> not really enough context there for those messages to be meaningful.
[20:51:12 CEST] <jc0n> hey what stream format should I choose?
[20:51:14 CEST] <jc0n> avi?
[20:51:19 CEST] <jc0n> for audio and video
[21:04:04 CEST] <kepstin-laptop> jc0n: depends, what software do you want to be able to play it?
[21:04:50 CEST] <kepstin-laptop> i'd suggest avoiding avi for newer video codecs, it handles those poorly. mkv is a generally ok popular modern format.
[21:05:29 CEST] <jc0n> kepstin-laptop: for the stream format in ffserver
[21:06:31 CEST] <kepstin-laptop> jc0n: doing an http stream?
[21:06:40 CEST] <kepstin-laptop> what software are you using as the player?
[21:06:52 CEST] <jc0n> mpv
[21:07:07 CEST] <jc0n> yeah http or rtsp im experimenting
[21:07:18 CEST] <jc0n> looks like avi is the best video option but cant be sure
[21:07:43 CEST] <kepstin-laptop> i'd use mkv, probably for that case, it supports streaming fine.
[21:07:51 CEST] <jc0n> is that an option?
[21:08:05 CEST] <jc0n> it gives a list of formats in the example.conf
[21:08:13 CEST] <jc0n> that isn't one of them 0_0
[21:08:55 CEST] <kepstin-laptop> i wouldn't suggest using avi, but it might work if you don't need seeking, i dunno.
[21:09:24 CEST] <jc0n> if mkv is an option ill use it let me test it
[21:18:38 CEST] <DeadSix27> is there a way to make ffmpeg use a soundfont when converting midis?
[21:19:48 CEST] <kepstin-laptop> i'm not sure what you mean... ffmpeg can't play midi afaik...
[21:20:14 CEST] <DeadSix27> huh
[21:20:35 CEST] <DeadSix27> ffmpeg.exe -i "test.mid" -c:a flac test.flac
[21:20:36 CEST] <DeadSix27> worked tho.
[21:21:16 CEST] <DeadSix27> guess it uses timidiy
[21:21:29 CEST] <DeadSix27> as i get (on a windows machine) load_pat > can not open /usr/local/share/timidity/timidity.cfg, use environment variable MMPAT_PATH_TO_CFG for the directory
[21:23:40 CEST] <kepstin-laptop> that's pretty strange, standard ffmpeg builds don't do midi at all.
[21:23:57 CEST] <DeadSix27> its zeranoe's build
[21:24:07 CEST] <DeadSix27> maybe its compiled different, idk
[21:24:52 CEST] <kepstin-laptop> DeadSix27: what does the configure line on ffmpeg -version say?
[21:26:04 CEST] <kepstin-laptop> the zeranoe website doesn't list timidity as one of the bundled packages or anything.
[21:26:11 CEST] <DeadSix27> kepstin-laptop: http://pastebin.com/YKc2PJTn
[21:26:40 CEST] <kepstin-laptop> hmm.
[21:26:47 CEST] <kepstin-laptop> i wonder if it's something in libgme
[21:27:05 CEST] <DeadSix27> well, i aint mad
[21:27:23 CEST] <DeadSix27> would be nice to define soundfonts though
[21:27:55 CEST] <kepstin-laptop> you could just use e.g. timidity++ or fluidsynth or something directly to render the midi to a wave file with options of your choice.
[21:29:49 CEST] <DeadSix27> lets see
[21:34:57 CEST] <jc0n> woohoo its working
[21:35:06 CEST] <jc0n> ffserver -formats helped, format is 'matroska'
[21:35:20 CEST] <jc0n> last step is to get this playing on my rpi
[21:35:37 CEST] <jc0n> and voila drm free netflix streaming with pipelight
[22:15:14 CEST] <kyleogrg> hey
[22:15:48 CEST] <kyleogrg> I'm converting VOB files to MKV to watch on a laptop.  Should I change the color space?
[22:18:40 CEST] <kepstin-laptop> probably not
[22:19:47 CEST] <kyleogrg> it's yuv420
[22:20:07 CEST] <kyleogrg> is that sort computer rgb?
[22:20:18 CEST] <kyleogrg> sort of
[22:20:29 CEST] <kepstin-laptop> no, but yuv420 is what the codecs can efficiently compress
[22:20:46 CEST] <kepstin-laptop> it's converted back to rgb in the player after decoding, usually on the graphics card.
[22:20:47 CEST] <kyleogrg> ok, so it's very common
[22:21:05 CEST] <kyleogrg> so VLC is converting it to computer RGB?
[22:21:32 CEST] <kepstin-laptop> either vlc is doing it, or vlc is sending the yuv420 stream to the gfc card and telling the gfx card to do it.
[22:22:02 CEST] <kyleogrg> cool, thanks
[22:24:11 CEST] <BtbN> You should be able to convert vob to mkv without re-encoding. Will still be mpeg2 then.
[22:24:22 CEST] <BtbN> And propably quite big, but without any quality loss.
[22:25:16 CEST] <kepstin-laptop> BtbN, kyleogrg is doing detelecineing, so it has to be reencoded anyways.
[23:10:06 CEST] <kyleogrg> Yeah, and I've been testing libx265, and I'm impressed by how SLOW it is.
[23:10:14 CEST] <kyleogrg> I'm using placebo.
[23:10:17 CEST] <kyleogrg> It's SO SLOW
[23:11:14 CEST] <kyleogrg> But can deliver impressive results at smaller file sizes than x264
[23:18:59 CEST] <klaxa> it's next gen, so obviously it's slower but better
[23:19:45 CEST] <kyleogrg> yes
[23:19:58 CEST] <kyleogrg> are there any tricks to make ffmpeg faster?
[23:20:23 CEST] <c_14> Don't use placebo?
[23:20:27 CEST] <kyleogrg> is it using all the cores in my processer?
[23:20:38 CEST] <kyleogrg> I mean without changing the encoding
[23:20:43 CEST] <c_14> Depends on the filters you're using.
[23:20:49 CEST] <c_14> You can always optimize the codepaths.
[23:20:59 CEST] <kyleogrg> you mean optimize my command line/
[23:21:00 CEST] <kyleogrg> ?
[23:21:53 CEST] <c_14> I meant the source code. If I can't see your command line I don't know if you could make it better.
[23:24:16 CEST] <kyleogrg> Here's my command line: http://pastebin.com/sXMSrgTA
[23:24:47 CEST] <kyleogrg> Idk if you see anything that can be optimized?
[23:25:18 CEST] <c_14> mhm, iirc scale doesn't thread very well. Should still be faster than the encoding though so unlikely to be the limiting factor
[23:25:53 CEST] <c_14> x265 is probably stealing all the cpu time
[23:26:09 CEST] <kyleogrg> yup
[23:26:16 CEST] <kyleogrg> super duper slow
[23:26:30 CEST] <kyleogrg> it's been going like 15 hours and has encoded about 8 minutes
[23:27:23 CEST] <kyleogrg> it's just a test anyway.  this probably can't go any faster with my settings.
[23:27:36 CEST] <kyleogrg> Can ffmpeg use server farms?
[23:27:41 CEST] <kyleogrg> i mean render farms
[23:28:08 CEST] <c_14> You can cut the video up into tiny chunks, encode each of the chunks, then concat them together.
[23:28:34 CEST] <kyleogrg> oh?  can you pretty much concat any codec like that?
[23:28:39 CEST] <kyleogrg> without problems
[23:29:30 CEST] <kyleogrg> i've wondered about that
[23:30:28 CEST] <c_14> Most.
[23:31:40 CEST] <kyleogrg> i wonder if there's any relatively easy way to use ffmpeg that way
[23:32:03 CEST] <kyleogrg> if there's a gui that will take an input video and split it up among many computers
[23:32:55 CEST] <c_14> https://github.com/klaxa/Distributed-encoding
[23:32:58 CEST] <c_14> ^may or may not work
[23:33:01 CEST] <c_14> It used to work.
[23:33:04 CEST] <klaxa> huh what?
[23:33:05 CEST] <klaxa> lol
[23:33:06 CEST] <klaxa> maybe
[23:33:15 CEST] <c_14> You can look at it for ideas though.
[23:33:19 CEST] <klaxa> i should probably do some stuff with it
[23:33:22 CEST] <c_14> Not sure if there's a gui for something like taht.
[23:33:36 CEST] <klaxa> not yet
[23:33:41 CEST] <c_14> *that
[23:33:43 CEST] <kyleogrg> THE klaxa?
[23:33:54 CEST] <klaxa> it's basically map-reduce with a server-client model
[23:34:11 CEST] <kyleogrg> what's map-reduce
[23:34:15 CEST] <klaxa> by now i would probably rewrite it from scratch
[23:34:27 CEST] <klaxa> https://en.wikipedia.org/wiki/MapReduce
[23:34:49 CEST] <kyleogrg> that would be cool if you rewrote it
[23:34:54 CEST] <kyleogrg> i'd test it for you
[23:35:56 CEST] <kyleogrg> so it would split a video, distribute it among the clients, and stitch it together?
[23:38:21 CEST] <klaxa> yeah pretty much
[23:39:04 CEST] <kyleogrg> Hmm, so if I wrote something like this
[23:39:28 CEST] <kyleogrg> on the client end, i could just have ffmpeg encode the vob chunk given to it
[23:39:47 CEST] <kyleogrg> as a x265 stream file
[23:40:16 CEST] <kyleogrg> the server would encode the audio, stitch the video chunks, and mux it
[23:40:37 CEST] <klaxa> no reason to not let the client encode audio too
[23:40:46 CEST] <klaxa> the server can be a client too connecting to itself
[23:41:39 CEST] <kyleogrg> yeah
[23:43:20 CEST] <kyleogrg> I guess the source video needs to be copied to all the clients?
[23:45:20 CEST] <c_14> only the parts that the client will be encoding
[23:45:50 CEST] <kyleogrg> but would the server simply break the file
[23:46:20 CEST] <kyleogrg> if the source video is a vob, will the server break the vob into binary chunks?
[23:48:16 CEST] <kyleogrg> because i wonder if ffmpeg would ever have trouble with a broken chunk of a video file
[23:49:48 CEST] <c_14> It should be fine so long as you split at i-frame boundaries
[23:50:10 CEST] <kyleogrg> ahh, so this isn't going to be simple for me
[23:50:26 CEST] <kyleogrg> because i don't know how to do that
[23:50:37 CEST] <klaxa> check the code i wrote, maybe there are hints
[23:50:46 CEST] <klaxa> i don't remember what i did, but i split at i-frames
[23:51:03 CEST] <kyleogrg> ok, and i don't even really know what i-frames are
[23:51:10 CEST] <c_14> klaxa: you used mkvinfo/mkvmerge so that wouldn't work in the general non-mkv case
[23:51:14 CEST] <kyleogrg> which codecs have them?
[23:51:15 CEST] <klaxa> oh yeah
[23:51:31 CEST] <klaxa> but you can put basically anything into mkv
[23:52:13 CEST] <klaxa> kyleogrg: basically all codecs if i'm not horribly mistaken
[23:52:35 CEST] <kyleogrg> haha
[23:52:37 CEST] <klaxa> an i-frame (or in this case more specifically an IDR-frame) is a frame at which a decoder can start decoding
[23:52:53 CEST] <klaxa> it's a full frame and no frame at a later point references a frame before the i-frame
[23:53:10 CEST] <kyleogrg> hmm, but the decoder wants to decode all frames right?
[23:53:35 CEST] <kyleogrg> ok, so it's like a chapter marker?
[23:58:54 CEST] <kyleogrg> ok, googled it
[23:59:16 CEST] <kyleogrg> but i need to know technically how to find idr frames in a mpeg2 stream
[23:59:32 CEST] <klaxa> https://en.wikipedia.org/wiki/Group_of_pictures
[23:59:58 CEST] <klaxa> well i went the way of muxing it to mkv and then using mkvtoolnix because it can output them in a simple format
[00:00:00 CEST] --- Thu Apr 16 2015


More information about the Ffmpeg-devel-irc mailing list