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

burek burek021 at gmail.com
Wed Nov 25 02:05:01 CET 2015


[00:01:15 CET] <pepee> FSpamList says this is spam (...  [100, Email wildcard match ...])   IP 201.236.2.237 blacklisted by Http:BL
[00:01:17 CET] <pepee> ok
[00:58:43 CET] <pepee> furq, https://trac.ffmpeg.org/ticket/5033
[00:59:09 CET] <pepee> I hope I didn't mess up
[01:06:32 CET] <pepee> do I really have to build ffmpeg git/head to add info to the report? :/
[01:07:22 CET] <pepee> nvm, I'll use the static build from http://johnvansickle.com/ffmpeg/
[01:21:43 CET] <pepee> hmm, for https://trac.ffmpeg.org/ticket/5033#comment:1 , how would I test the duration of the output with "-f lavfi -i sine" and "-f s16le -i /dev/zero" as inputs?
[01:22:13 CET] <c_14> iirc the sine filter has a duration option
[01:25:22 CET] <pepee> c_14, what about /dev/zero ?
[01:25:25 CET] <pepee> -t ?
[01:25:42 CET] <c_14> either -t as an input option, or use aevalsrc=0:d=
[01:25:48 CET] <c_14> should be equivalent
[01:29:51 CET] <pepee> thanks c_14
[01:40:47 CET] <pepee> guess I should have been using the git version, there is some difference between input WAV and output AAC, but not a difference of two minutes. MP4s still show a longer duration
[02:37:11 CET] <pepee> how do sine+lavfi and /dev/zero+s16le help with the testing?
[03:11:17 CET] <c_14> Makes it easier for a dev to reproduce/limits the scope of where the problem could be.
[03:46:21 CET] <suprsonic> how can I go about converting a 640x480 4:3 video to view on a wide screen by adding padding on the sides while maintaining the origial video?
[03:48:22 CET] <waressearcher2> suprsonic: -vf scale=640:480,pad=640:540:0:60 ?
[03:48:40 CET] <suprsonic> Ill give that a go
[03:48:51 CET] <suprsonic> shouldnt I have to add the change in aspect ratio?
[03:51:08 CET] <waressearcher2> suprsonic: ich weiß nicht
[04:07:38 CET] <darktoad> anyone tried to compile ffmpeg from linux; succeded but ffmpeg.exe ask for .dll?
[04:07:46 CET] <darktoad> should be static
[04:08:33 CET] <waressearcher2> darktoad: hallo
[04:09:05 CET] <darktoad> hi
[04:09:11 CET] <waressearcher2> darktoad: wie geht's ?
[04:09:46 CET] <darktoad> not german, sorry
[04:21:09 CET] <grumper> greetings
[04:22:26 CET] <grumper> I was wondering how come HEVC is not marked lossless even though it has an option for it: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/codec_desc.c#L1204
[04:22:37 CET] <grumper> as opposed to say h264 https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/codec_desc.c#L209
[06:11:46 CET] <waressearcher2> grumper: hallo
[06:14:12 CET] <visualshockg> What is the difference between these two files? Codec: H264 - MPEG-4 AVC (part 10) (h264)  and  Codec: H264 - MPEG-4 AVC (part 10) (avc1)
[06:16:52 CET] <visualshock> got timed out: What is the difference between these two files? Codec: H264 - MPEG-4 AVC (part 10) (h264)  and  Codec: H264 - MPEG-4 AVC (part 10) (avc1)
[06:20:26 CET] <waressearcher2> visualshock: hallo
[06:20:56 CET] <pepee> lol
[06:21:20 CET] <pepee> is waressearcher2 a bot or something?
[06:21:34 CET] <visualshock> I dont know
[06:21:38 CET] <visualshock> waressearcher2, whats up?
[06:22:36 CET] <pepee> s/he/it is always greeting people in german(?)
[06:24:14 CET] <visualshock> idk
[08:27:56 CET] <Taniey> ask some question
[08:28:21 CET] <Taniey> when I use filter  select
[08:28:30 CET] <Taniey> the command like:
[08:28:39 CET] <Taniey> ffmpeg -y -i input.mp4 -filter_complex select=e=eq(pict_type\,I) -f image2 output_%05d.jpeg
[08:29:02 CET] <Taniey> the input.mp4  fps is 25
[08:29:16 CET] <Taniey> but,the command not only get the I frames to output_%05d.jpeg ,but also duplicate the I frames until reach the fps output.
[08:29:32 CET] <Taniey> how can I make the I frames not duplicated?
[08:54:27 CET] <waressearcher2> Taniey: hallo
[08:56:59 CET] <Taniey> en
[08:58:21 CET] <Taniey> i am here
[10:28:17 CET] <waressearcher2> Taniey: wie geht's ?
[10:28:39 CET] <Taniey> i am here
[10:29:14 CET] <Taniey> but I can't understand your said.
[10:30:02 CET] <Taniey> I only know english and chinese.
[10:31:01 CET] <waressearcher2> so süß
[10:33:00 CET] <Taniey> can you speak English or Chinese?
[10:33:27 CET] <waressearcher2> ja, aber ich will nicht
[10:35:14 CET] <Taniey> I asked the question ,can you find the solution to question?
[10:36:40 CET] <hedi> hi, i try to compile ffmpeg as indicated here: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu but i get an error: at the last step: ERROR: libass not found using pkg-config
[10:36:58 CET] <hedi> but libass and libass-dev are already installed
[10:37:36 CET] <hedi> anyone knows how to solve this?
[10:40:09 CET] <Taniey> Add PKG_CONFIG_PATH to your env
[10:40:48 CET] <JEEB> hedi: pastebin your config.log
[10:40:52 CET] <JEEB> and link it here
[10:40:58 CET] <hedi> ok
[10:41:16 CET] <JEEB> not sure if the libass API has changed at all, but worth a check
[10:41:29 CET] <JEEB> (it could also be a version issue rather than "not at all")
[10:45:29 CET] <hedi> here it is: https://gist.github.com/hedii/8a5c937bd89acb954999
[10:46:06 CET] <JEEB> ok, then you don't have indeed libass in your pkg-config search path
[10:46:38 CET] <hedi> ok, how could i add it to path? i'm on ubuntu server 14.04
[10:47:02 CET] <hedi> sorry, but i'm kind of a newbie with this
[11:13:04 CET] <jonascj_> I have a single frame (a title frame) I would like to make into 5sec of video in a given format.
[11:14:04 CET] <jonascj_> I have tried just specifying the -t option when I do "ffmpeg -i title.jpg -vcodec libx264 -t 00:00:05 title.mp4" but it does not give me 5sec of video
[11:14:24 CET] <jonascj_> I could of course duplicate the title.jpg frame but I am sure it is possible with just specifying options
[11:14:36 CET] <relaxed> you need -loop 1 before the input
[11:15:26 CET] <jonascj_> right, that did it!
[11:16:16 CET] <hedi> JEEB: if i type pkg-config --modversion libass, i get 0.10.1
[11:17:13 CET] <relaxed> hedi: my builds have libass support, http://johnvansickle.com/ffmpeg/
[11:17:42 CET] <jonascj_> thanks, another question now that I am at it. Apart from my title frame I have 140 images that I would like to convert into a 30sec video. That means 140/30 ~ 5 fps. I could specify "-r5" on the output, but that would give me a video with 5fps. What if I want to have the speed appear as 5fps but the video be 24fps (i.e. duplicate frames)?
[11:17:47 CET] <jonascj_> Is it just -r on both input and output?
[11:18:22 CET] <hedi> relaxed: is it based on ffmpeg latest?
[11:18:48 CET] <relaxed> yes, use the git build
[11:19:08 CET] <hedi> ok thanks
[11:19:53 CET] <relaxed> jonascj_: ffmpeg -framerate 5 -i input -r 24 output
[11:22:42 CET] <jonascj_> relaxed: I wasn't aware -framerate was the input version of -r
[11:23:31 CET] <relaxed> ffmpeg -h demuxer=image2
[11:36:47 CET] <jonascj_> Could I hope to specify that I want 3sec of title.png at 24fps before I want my 1.jpg,2.jpg at 24fps? I.e. I can I specify two inputs and loop one of them?
[11:37:27 CET] <jonascj_> "ffmpeg -i title.png -loop 72 -i %d.jpg out.mp4" or similar?
[11:38:35 CET] <relaxed> I think you'll have to run to commands and concat the outputs together
[11:38:42 CET] <relaxed> two*
[11:39:12 CET] <jonascj_> relaxed: but to concat the outputs I'll need to keep things as TS?
[11:39:37 CET] <jonascj_> Disregard the 'but'.
[11:39:58 CET] <jonascj_> I've read in the documentation that concat works at the filelevel so you need a very simple format/codec in order that concatanation to work.
[11:40:06 CET] <jonascj_> But then I could just convert it to mpeg4 afterwards
[11:40:10 CET] <relaxed> ts, matroska, or nut
[11:40:30 CET] <relaxed> there are probably more..
[11:41:20 CET] <jonascj_> "-vcodec libx264 out.mp4" is not suitable, right?
[11:43:20 CET] <relaxed> sure
[12:07:00 CET] <jonascj_> relaxed: sure as in "yes, it is _not_ suitible", or sure as in "sure, it would work"?
[12:08:58 CET] <jonascj_> As response to "Do you mind if I smoke in here?" "sure"  apparently means "No I do not mind, go a head and smoke."
[12:09:58 CET] <relaxed> sure
[12:10:02 CET] <relaxed> :)
[12:10:02 CET] <jonascj_> :P
[12:10:39 CET] <relaxed> did you see https://trac.ffmpeg.org/wiki/Concatenate ?
[12:10:54 CET] <jonascj_> Is "ffmpeg -framerate 5 -i %d.jpg -r 24 out.ts" sufficient to make a transport stream for the use with concatanate?
[12:10:58 CET] <jonascj_> I did see that link yes.
[12:11:46 CET] <jonascj_> apparently "ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg" because mpg is sufficiently simple.
[12:12:25 CET] <jonascj_> Ifyou have mp4 with acc audio they recommend making intermediates: "ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts"
[12:13:10 CET] <jonascj_> but I am not sure how many of the options would be needed if I start creating the TS videos (instead of mp4 -> ts -> mp4)
[12:18:28 CET] <relaxed> well, mux into mp4 as the last step
[12:19:12 CET] <relaxed> start off with -f mpegts output.ts
[12:20:02 CET] <relaxed> or output but to matroska and use "mkvmerge -o combined.mkv 1.mkv +2.mkv"
[12:20:28 CET] <relaxed> both, not but
[13:25:53 CET] <jonascj_> thanks!
[13:59:32 CET] <pkeuter> hi
[13:59:54 CET] <pkeuter> i've got a question about h264 encoding
[14:01:35 CET] <pkeuter> i'm trying to record multiple inputs from a decklink card to mpeg4 files with the main profile, which obviously makes my machine work quite hard. it has 2 xeon2640v2 processors in it though, so I would say it would be able to manage, but it's having a hard time recording 5 1080i streams
[14:02:18 CET] <pkeuter> now i've read something about NVENC and was wondering if that would offload significantly... does anyone know?
[14:04:36 CET] <relaxed> I would think 32 threads would be enough for what you're doing. 6 threads per input
[14:05:49 CET] <pkeuter> Yeah although it sometimes peaks to 800% so I'm afraid it will get into buffer overruns when I cap it to 6 threads
[14:06:10 CET] <pkeuter> and i would really like to keep some space to do transcoding as well
[14:06:48 CET] <relaxed> when you said mpeg4 you meant mpeg4 part 10?
[14:06:58 CET] <pkeuter> yes, h264
[14:07:49 CET] <welpo> Hello there. May I please get some help decoding from AAC or MP3 to WAV outputting the file to standard output?
[14:08:20 CET] <relaxed> welpo: ffmpeg -i input -map 0:a output.wav
[14:08:42 CET] <relaxed> pkeuter: did you try playing with using -threads for decoding?
[14:09:31 CET] <pkeuter> i did, and it quickly gets to buffer overruns
[14:09:41 CET] <welpo> Sorry maybe I wasn't clear, relaxed. I want to output the wav to standard output, so that I can pipe it in to another software (SoX). So there's no actual output.wav, it should go to stdout
[14:10:23 CET] <welpo> Everything I try (using - as output, or pipe:1) outputs: Unable to find a suitable output format for 'pipe:1' pipe:1: Invalid argument
[14:10:31 CET] <relaxed> welpo: ... -f wav -
[14:11:18 CET] <relaxed> pkeuter: with nvenc I think you would need a card for each input
[14:11:36 CET] <pkeuter> oh, god, i don't have so much space, haha
[14:13:45 CET] <pkeuter> is there a way to cap the peak usage of the encoder? only when i also lower the quality, right?
[14:14:06 CET] <relaxed> pkeuter: are you using ffmpeg git master along with libx264 git master?
[14:14:44 CET] <welpo> relaxed: cheers. now to figure out why SoX errors out :)
[14:15:03 CET] <pkeuter> i've built from source last week, so yes. maybe a few commits behind
[14:15:48 CET] <relaxed> close enough, some people come in here using really old versions. So I have to ask :)
[14:16:02 CET] <pkeuter> let me check the versions
[14:16:44 CET] <relaxed> welpo: see if -f s16le - works
[14:17:58 CET] <pkeuter> x264 (2:0.146.2555+git0c21480-1)
[14:18:38 CET] <pkeuter> ffmpeg version 2.7.2-1build1
[14:18:46 CET] <relaxed> both are too old
[14:18:56 CET] <pkeuter> lol alright
[14:19:05 CET] <pkeuter> does it make a big difference?
[14:19:15 CET] <relaxed> I would say you could use my build but it lacks decklink support
[14:19:23 CET] <welpo> relaxed: sox FAIL formats: can't open input  `-': WAVE: RIFF header not found (I am using an argument on sox that specifies the input is wav)
[14:19:39 CET] <pkeuter> i might be able to pipe from bmd
[14:20:01 CET] <welpo> if I use -f wav - and specify on the sox side that it is wav it kind of works, then it says: sox WARN wav: Premature EOF on .wav input file
[14:20:15 CET] <relaxed> welpo: oh! I wrote this down a long time ago, ffmpeg -i test.ac3 -f sox - | sox -p -t wav - ...
[14:21:30 CET] <relaxed> pkeuter: here's the link, http://johnvansickle.com/ffmpeg/ , otherwise follow https://trac.ffmpeg.org/wiki/CompilationGuide
[14:22:17 CET] <pkeuter> ok thanks, let me try
[14:23:09 CET] <welpo> relaxed: hmm doesn't seem to work and I'm not sure why. ffmpeg has no errors but SoX outputs nothing. may be relevant (probably): what I want as output is a spectrogram, which I create on the sox side by using these arguments:   -n remix 1 spectrogram -x 3000 -y 513 -z 120 -w Kaiser -o output_name.png
[14:23:45 CET] <welpo> it creates no file at all, and no errors. before, when it complained about the EOF if would output a spectrogram of only the first frames (maybe even 1 frame, can't tell for sure)
[14:24:01 CET] <relaxed> welpo: maybe sox can't do it through a pipe.
[14:24:21 CET] <pkeuter> relaxed: this doesn't make a significant difference
[14:24:39 CET] <pkeuter> it peaks at around 600%
[14:24:44 CET] <relaxed> pkeuter: did you try with -threads 1 before the input?
[14:24:49 CET] <welpo> I didn't consider that relaxed ... from the docs: SoX can be used in simple pipeline operations by using the special filename    it does say 'in simple pipeline operations' so maybe this isn't considered simple
[14:24:59 CET] <pkeuter> -threads 1 before the input?
[14:25:05 CET] <pkeuter> what does that do?
[14:25:58 CET] <relaxed> by default decoding is multithreaded for h264
[14:26:15 CET] <pkeuter> i'm decoding raw video?
[14:26:22 CET] <relaxed> oh
[14:26:43 CET] <pkeuter> Stream mapping:
[14:26:43 CET] <pkeuter>   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
[14:26:43 CET] <pkeuter>   Stream #0:1 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
[14:27:42 CET] <pkeuter> bmdcapture -C 0 -m 9 -F nut -f pipe:1 | sudo ./ffmpeg -y -threads 1 -i - -pix_fmt yuv420p -movflags frag_keyframe+empty_moov -threads 4 /media/x-disk/test2.mkv
[14:28:03 CET] <pkeuter> the sudo is temporary because else i can't write to the folder
[14:28:27 CET] <pkeuter> threads 4 gets me a overrun within 30 seconds
[14:29:13 CET] <pkeuter> 6 within a minute
[14:29:16 CET] <relaxed> stick around, I know there are some other decklink users that lurk here. Maybe they have an idea.
[14:30:01 CET] <welpo> thanks for your help relaxed, I'll ask about piping spectrograms in the SoX mailing lists
[14:30:07 CET] <iive> pkeuter: how many cores does your system have? 32 (including virtual/ht)
[14:30:43 CET] <pkeuter> yes, 32 threads
[14:32:58 CET] <iive> by default x264 uses num_cores*1.5 for encoding (there is an upper limit, don't remember it).
[14:33:12 CET] <iive> how many inputs do you have?
[14:33:59 CET] <pkeuter> i am able to record 8 inputs, but that is probably a bit too much :-)
[14:35:00 CET] <seseri> hey everyone, the thumbnail video-filter in ffmpeg has "Select the most representative frame in a given sequence of consecutive frames." as describtion, what exactly is ffmpeg thinking by that?
[14:35:34 CET] <seseri> what is the most representative frame?
[14:36:06 CET] <pkeuter> and btw: thanks for the build relaxed, i'm rebuilding myself with decklink support again
[14:38:50 CET] <sg90> Hi, I have a question regarding concat and disk space usage. Is there any way I can concat files A and B directly into A without specifying an additional output file? For instance if all my input files total N GB, I don't want to use 2N of disk space creating an output file. Does a tool like this exist or is it simply too dangerous to write the output file back to an input file? Thanks
[14:41:05 CET] <relaxed> sg90: I don't think that's possible
[14:45:48 CET] <iive> pkeuter: have you tried lowering the -preset in order to get more speed?
[14:47:11 CET] <pkeuter> iive: yes i've tried. the thing is: i rather don't want to give up quality because it's a tv station's log and they want to reuse the material for youtube etc..
[14:48:04 CET] <iive> pkeuter: imho, you should be able to record x8 1080i inputs with 32 cores.
[14:48:36 CET] <pkeuter> do you have a "sweetspot-setting", which would be usable for playing in a chrome html5-player, has a good visual quality and not a very big footprint?
[14:49:55 CET] <pkeuter> oh and i forgot the most important part: does not use a crazy lot of resources
[14:50:06 CET] <pkeuter> well i certainly hope so! but for now i haven't been able to get that to work
[14:50:22 CET] <iive> are you encoding for quality or bitrate?
[14:50:43 CET] <pkeuter> quality is more important
[14:51:05 CET] <pkeuter> but i don't want lossless because it has to be directly playable in a browser
[14:51:23 CET] <BtbN> Well, it's not like lossless wouldn't play.
[14:52:00 CET] <iive> ok, I'm using -preset faster, it is the lowest preset that includes mbree and imho it have most impact.
[14:52:05 CET] <relaxed> with 1080i you'll want to use yadif too
[14:52:20 CET] <pkeuter> haha yeah but you need a fantastic network connection for that
[14:52:38 CET] <pkeuter> yadif doesn't really help performance wise, does it?
[14:52:50 CET] <iive> it actually doubles the framerate
[14:52:53 CET] <BtbN> you realy don't want to deal with interlaced encoding.
[14:53:10 CET] <pkeuter> why can't i keep it interlaced?
[14:53:11 CET] <relaxed> no, but if quality is a concern..
[14:53:19 CET] <iive> pkeuter: you do use interlace flags for x264, do you?
[14:53:26 CET] <pkeuter> source material is interlaced
[14:53:45 CET] <pkeuter> iive: uhm, not that i know of?
[14:53:49 CET] <iive> -flags +ilme+ildct
[14:54:18 CET] <pkeuter> what does this do?
[14:54:21 CET] <iive> if you don't have them it would try encode combing and mice tails as progressive and that makes things a lot harder.
[14:54:45 CET] <iive> h264 format support interlaced encoding, this enables it. MBAFF or something like that
[14:55:45 CET] <pkeuter> let's see what it does
[14:57:44 CET] <pkeuter>  Undefined constant or missing '(' in 'ildc'
[14:57:53 CET] <iive> t
[14:58:02 CET] <iive> il dct
[14:58:34 CET] <iive> InterLaced Descrete Cosine Transformation
[14:58:40 CET] <pkeuter> sorry about that
[14:58:44 CET] <iive> np
[14:58:51 CET] <iive> i make typos all the time.
[14:59:11 CET] <pkeuter> hehe
[14:59:24 CET] <iive> it might use more cpu, but it is faster than doing yadif and progressive encoding.
[14:59:42 CET] <pkeuter> ok i'm having stills now and we're on 500%
[15:00:10 CET] <iive> stills, or stalls?
[15:00:20 CET] <pkeuter> haha stills (visual stills)
[15:00:29 CET] <pkeuter> no stalls yet
[15:00:46 CET] <pkeuter> but i'm waiting for moving visuals
[15:01:09 CET] <iive> oh... the movie scene is not dynamic.
[15:01:31 CET] <pkeuter> exactly
[15:01:41 CET] <pkeuter> now it is and i'm peaking to 1000%
[15:01:42 CET] <pkeuter> lol
[15:01:51 CET] <pkeuter> 1100%
[15:02:06 CET] <pkeuter> i'd say that 11 cores would be a bit too much for 1 stream
[15:02:07 CET] <iive> i thought the image freezed.
[15:02:24 CET] <pkeuter> no i was talking about the source material
[15:02:38 CET] <iive> is that with 1 input?
[15:02:48 CET] <pkeuter> yes
[15:02:56 CET] <iive> and -preset faster?
[15:03:02 CET] <pkeuter> no, wait
[15:03:04 CET] <pkeuter> let me do that
[15:03:06 CET] <pkeuter> sorry
[15:03:15 CET] <furq> pkeuter: http://dev.beandog.org/x264_preset_reference.html
[15:03:20 CET] <iive> np... it is good thing to test options one at a time.
[15:03:38 CET] <pkeuter> that slices the cpu usage in 2
[15:03:55 CET] <pkeuter> so its quite a lot better
[15:04:01 CET] <furq> i wouldn't go any lower than veryfast
[15:04:39 CET] <iive> in my tests, the difference between faster and veryslow (at same quality) gives 5% difference in bitrate.
[15:04:48 CET] <pkeuter> with faster, would i see artifacts?
[15:05:21 CET] <iive> you should never see artifacts
[15:05:31 CET] <pkeuter> i mean encoding blocks
[15:05:41 CET] <pkeuter> like when there's a lower quality
[15:05:47 CET] <furq> if the quality suffers you can use a lower crf to compensate
[15:05:47 CET] <iive> h264 have loopfilter that should smooth them out.
[15:06:29 CET] <iive> pkeuter: if you use crf, you should not be able to spot any difference in visual quality.
[15:07:04 CET] <furq> it doesn't look like you're specifying any bitrate options which means you're defaulting to -crf 23
[15:07:05 CET] <pkeuter> this is my current command:
[15:07:10 CET] <pkeuter> sudo ffmpeg -f decklink -y -threads 1 -i 'DeckLink Mini Recorder at 10' -preset faster -flags ilme+ildct -movflags frag_keyframe+empty_moov /media/x-disk/test2.mkv
[15:07:19 CET] <furq> see above
[15:07:47 CET] <pkeuter> so crf 23 is fine isn't it?
[15:07:57 CET] <furq> only you can tell us that
[15:08:46 CET] <pkeuter> higher crf is worse quality right?
[15:08:49 CET] <furq> right
[15:09:05 CET] <iive> h264 uses logarithmic quantizer. the value of 18 is the same as the value 2 of mpeg2 linear quantizer (lower number, lower loss, better quality)
[15:10:03 CET] <furq> 23 seems a bit high for archival, but the only way to tell is by looking at the output
[15:10:34 CET] <pkeuter> it's not only archive, also rebroadcasting
[15:10:49 CET] <pkeuter> i tried crf 32 and that isn't that good
[15:10:51 CET] <iive> yeh, find some 40" monitor and take a close look :)
[15:11:04 CET] <furq> by high i meant the number, not too high quality
[15:11:10 CET] <furq> it's not confusing at all
[15:11:47 CET] <pkeuter> well let's just say that crf 23 looks quite good and doesn't use very much cpu
[15:12:01 CET] <pkeuter> i did win 700% already so you guys are a big help :-)
[15:12:57 CET] <pkeuter> doesn't use "very much"
[15:13:17 CET] <pkeuter> i have peaks to 550 now
[15:14:33 CET] <pkeuter> would it help to use yuv420p? i use yuv422p now (default)
[15:14:43 CET] <iive> pkeuter: crf 23 shouldn't affect cpu load. Image resolution and complexity does.
[15:15:01 CET] <iive> yes. 420 is for broadcast, 422/444 is for editing
[15:15:51 CET] <iive> with 422 you also avoid some of the big pitfalls of interlace/progressive missmash encoding.
[15:15:54 CET] <pkeuter> how do you mean it wouldn't affect cpu load?
[15:16:04 CET] <iive> (aka having chrome in the wrong field).
[15:17:29 CET] <furq> i'm pretty sure crf does affect cpu usage
[15:17:35 CET] <iive> quantization controls the amount of data loss
[15:18:01 CET] <pkeuter> yeah i see crf affecting the cpu
[15:18:10 CET] <iive> furq: sure, because it changes the image. but it should not be significant
[15:18:44 CET] <pkeuter> when i put it to 5, the cpu usage doubles. but the bitrate gets a factor 10 or something, so it's not that significant
[15:18:58 CET] <furq> yeah i've noticed 10-20% speedups going from 20 to 21
[15:19:07 CET] <furq> it's nowhere near as significant as switching presets
[15:19:08 CET] <iive> oh, that's because of cabac
[15:19:17 CET] <iive> it is because of the increased bitrate.
[15:20:15 CET] <iive> furq: 20% in enormous!
[15:20:41 CET] <furq> it was big enough for me to use 21
[15:21:36 CET] <iive> pkeuter: quant 5 turns off loopfilter, that also improves speed. and it produces huge bitrate.
[15:22:34 CET] <iive> huge bitrate-> lower speed / more cpu usage.
[15:23:31 CET] <iive> furq: i'll test that on my own...
[15:23:42 CET] <pkeuter> quant 5?
[15:23:46 CET] <pkeuter> ah crf
[15:23:47 CET] <pkeuter> sorry
[15:24:49 CET] <pkeuter> well if there is any more to win here, i'll be glad to hear :-)
[15:24:51 CET] <pkeuter> haha
[15:25:22 CET] <furq> higher crf values will use less cpu but will have a direct influence on visual quality
[15:25:49 CET] <furq> it's something worth tuning if you're hitting the limit
[15:26:21 CET] <pkeuter> it's strange, we've got an old logsystem with a decklink card and ffmpeg library which creates avc .ts files, but for some reaosn it doesn't use all that much cpu
[15:26:45 CET] <iive> pkeuter: numa might compilcate things
[15:26:59 CET] <iive> since you are using 2 separate cpu's
[15:27:14 CET] <pkeuter> numa?
[15:27:31 CET] <furq> https://en.wikipedia.org/wiki/Non-uniform_memory_access
[15:27:52 CET] <furq> it could be using something like x264 -ultrafast
[15:28:10 CET] <pkeuter> well i've got 64gb so that would be strange
[15:28:14 CET] <pkeuter> 32gb per core
[15:28:23 CET] <iive> it doesn't work like this
[15:28:45 CET] <pkeuter> oh
[15:28:53 CET] <iive> on a single cpu, all cores share the cache
[15:29:52 CET] <iive> on real smp, the processors should communicate in order to prevent stepping on each-other toes.
[15:30:43 CET] <pkeuter> the strange thing is, the other machine has 16.5MBPS bitrate and my current setting has 'variable'
[15:31:16 CET] <iive> crf is fixed quality , variable bitrate
[15:31:34 CET] <furq> if it's proper cbr then it won't be using x264
[15:33:19 CET] <pkeuter> AVC Main at L4.0, with CABAC, GOP M=1, N=15, Reframes = 2, YUV420, interlaced at 25fps
[15:33:48 CET] <pkeuter> it is using ffmpeg, but i can't see the settings it is using
[15:33:56 CET] <pkeuter> it renders a .ts file
[15:34:28 CET] <pkeuter> audio = mp2 256kb/s 48khz stereo
[15:35:03 CET] <pkeuter> so that looks like libx264, doesn't it?
[15:35:19 CET] <iive> x264 is the avc encoder
[15:35:33 CET] <furq> if it's using ffmpeg then i guess so
[15:35:49 CET] <pkeuter> but how can it be using that much cpu
[15:36:16 CET] <iive> imho, it uses all 32 cores, and maybe some more :)
[15:36:34 CET] <pkeuter> i'm sorry... i mean: how can this other encoder use this much less cpu
[15:37:03 CET] <pkeuter> it's an i7 with 8 threads and using 8% CPU
[15:37:07 CET] <pkeuter> for 2 recordings
[15:37:14 CET] <iive> 1080i?
[15:37:16 CET] <pkeuter> yep
[15:37:23 CET] <furq> does it secretly have a bunch of nvidia gpus in there
[15:37:32 CET] <arpu> hello @all is it possible to stream more inputfiles to a rtmp server without restart ?
[15:37:35 CET] <pkeuter> not that i know, but let me check
[15:37:48 CET] <arpu> maybe with a fifo buffer?
[15:37:51 CET] <iive> 8% is way too low...
[15:37:57 CET] <pkeuter> nope. onboard video
[15:38:06 CET] <furq> yeah that makes me think it's doing some kind of hardware encoding
[15:38:30 CET] <iive> or using ultrafast with cavlc :)
[15:38:38 CET] <furq> 14:33:20 ( pkeuter) AVC Main at L4.0, with CABAC, GOP M=1, N=15, Reframes = 2, YUV420, interlaced at 25fps
[15:38:39 CET] <pkeuter> it has no special devices besides the decklink duo
[15:38:54 CET] <pkeuter> which can't h264 encode
[15:38:54 CET] <iive> pkeuter: can you check what options are used for it?
[15:39:03 CET] <pkeuter> no i can't because it's closed source :(
[15:39:25 CET] <VooDoovood> Hi guys, i've spen one week browsing forum, and at this moment, i am out if ideas
[15:39:28 CET] <iive> no ffmpeg/x264 on it?
[15:39:58 CET] <VooDoovood> anybody, who knows something abou scaler?
[15:40:28 CET] <pkeuter> it has ffmpeg but uses the libary
[15:40:35 CET] <pkeuter> so i can't see the command that has been called
[15:40:38 CET] <pkeuter> and it is windows
[15:40:51 CET] <pkeuter> the settings i can change are these:
[15:40:52 CET] <iive> pkeuter: does it produce h264/avc ?
[15:41:00 CET] <pkeuter> video: HD1080i50
[15:41:05 CET] <pkeuter> bitrate: 15000kbit/s
[15:41:11 CET] <pkeuter> audio bitrate: 256kbit/s
[15:41:13 CET] <pkeuter> GOP 15
[15:41:16 CET] <iive> VooDoovood: don't ask to ask, just ask.
[15:41:21 CET] <pkeuter> GOP distance: 1
[15:41:23 CET] <pkeuter> VBR
[15:41:28 CET] <pkeuter> That's everything
[15:42:25 CET] <pkeuter> but it's strange. It's on VBR and i can set a CBR
[15:43:23 CET] <VooDoovood> I'am trying to feed the ffserver with ffmpeg compiled on arm. There is UVC webcam feeding the ffmpeg with MJPEG at 640x480, but FFMPEG still wants to  - decompress mjpeg -> scale ([scaler for output stream 0:0 @ 0x5ce50] w:640 h:480 fmt:yuvj422p sar:0/1 -> w:640 h:480 fmt:yuvj422p sar:0/1 flags:0x4 ) and encode back to mjpeg
[15:44:18 CET] <VooDoovood> this is not acceptable for CPU i'am running, on, and i don't know why the ffmpeg need to recompress mjpeg stream to mjpeg stream...
[15:44:30 CET] <iive> VooDoovood: -v:c copy
[15:44:36 CET] <VooDoovood> is
[15:44:37 CET] <VooDoovood> yes
[15:44:38 CET] <iive> ops
[15:44:43 CET] <iive> -c:v copy
[15:44:50 CET] <VooDoovood> i am using ing
[15:44:51 CET] <VooDoovood> it
[15:44:53 CET] <VooDoovood>  ffmpeg  -f v4l2 -input_format mjpeg -r 10 -s 640x480 -i /dev/video0 -c:v copy -f ffm http://192.168.100.220:8090/feed1.ffm
[15:45:04 CET] <VooDoovood> this is my command line
[15:45:13 CET] <VooDoovood> Input #0, video4linux2,v4l2, from '/dev/video0':   Duration: N/A, start: 7780.938908, bitrate: N/A     Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, -1 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
[15:45:27 CET] <pkeuter> would cpu usage get lower when i switch from vbr to cbr?
[15:45:32 CET] <furq> iirc -f ffm will ignore the parameters you set in favour of the ones you receive from ffserver
[15:45:38 CET] <VooDoovood> Output #0, ffm, to 'http://192.168.100.220:8090/feed1.ffm':   Metadata:     creation_time   : now     encoder         : Lavf56.15.102     Stream #0:0: Video: mjpeg, yuvj422p(pc), 640x480, q=2-31, 7000 kb/s, 10 fps, 1000k tbn, 10 tbc     Metadata:       encoder         : Lavc56.13.100 mjpeg Stream mapping:   Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
[15:46:05 CET] <VooDoovood> okeo oke, tnaks
[15:47:02 CET] <iive> VooDoovood: furq seems to know more on the subject. read again what he said.
[15:47:31 CET] <furq> emphasis on "iirc" because i haven't used ffserver in years
[15:47:53 CET] <furq> but i'm pretty sure it forces you to reencode
[15:48:11 CET] <furq> you might be better off using a dumb rtmp server
[15:48:31 CET] <furq> s/rtmp/rtsp/
[15:48:41 CET] <VooDoovood> furq - a have also used parameter -override_ffserver
[15:49:39 CET] <VooDoovood> furq - ive found in documentation that the maxrate parameter forces to reencode - in ffserver i use NoDefault,  and in ffmpeg -override_ffserver
[15:49:48 CET] <VooDoovood> furq: there is output from ffmpeg: http://pastebin.com/D4Q7NfFT
[15:53:28 CET] <furq> https://trac.ffmpeg.org/ticket/1496
[15:53:44 CET] <furq> it doesn't look like stream copying is supported at all
[15:55:48 CET] <pkeuter> furq, or iive: for some reason it looks like the field order got messed up. do you guys have an idea?
[16:12:06 CET] <iive> pkeuter: there is filter to change that
[16:19:13 CET] <VooDoovood> furq, okay, a am able to feed the stream, from ffmpeg to ffplay with -vcodec copy.... it is any possibility to feed ffserver with ffplay?
[16:30:01 CET] <pkeuter> alright thanks iive
[16:30:37 CET] <iive> pkeuter: in theory the order should also be passed by the input...
[16:30:55 CET] <iive> pkeuter: though i don't know if it is ffmpeg or driver fault for not passing it along.
[16:36:12 CET] <VooDoovood> And it is some one able to explain me what is flags:0x4  in video format?
[16:38:54 CET] <pkeuter> im unable to see the fieldorder in the metadata
[16:39:22 CET] <pkeuter> so i'm unable to tell if it's being copied
[16:41:27 CET] <pkeuter> i'm just comparing the .ts file and my mkv file and the framerate looks way different
[16:41:54 CET] <pkeuter> like its stuttering more
[16:42:04 CET] <pkeuter> missing frames
[17:09:53 CET] <Viresh> hi i need help regarding compiling ffmpeg as dynamic library for iOS, can some one help me
[17:11:00 CET] <Viresh> or atleast redirect me to any good resource available
[17:48:29 CET] <visualshock> What is the best way to convert a video file with: H264 - MPEG-4 AVC (part 10) (h264)
[17:48:56 CET] <visualshock> to a mp4 playable by html5 <video>? Using least cpu as possible
[17:49:56 CET] <BtbN> No need to convert h264 to anything. mp4 is perfectly fine with it.
[17:49:58 CET] <furq> html5 video tags can already play avc
[17:50:02 CET] <furq> s/tags//
[17:50:15 CET] <furq> you probably just need to remux it to mp4
[17:51:54 CET] <visualshock> furq, what do you mean with remux?
[17:52:13 CET] <furq> copy the video and audio streams into an mp4 container
[17:52:39 CET] <furq> assuming your audio is aac or mp3
[17:52:57 CET] <visualshock> audio is aa
[17:52:58 CET] <visualshock> c
[17:53:11 CET] <furq> is your source an mp4 file
[17:53:15 CET] <furq> if so then you don't need to do anything
[17:53:27 CET] <visualshock> No, it is a .ts file
[17:53:38 CET] <furq> ffmpeg -i source.ts -c copy dest.mp4
[17:55:19 CET] <visualshock> Thanks! Is there any way to optimize it? I have a lot of files to convert
[17:55:35 CET] <furq> optimise how
[17:55:55 CET] <furq> if you mean conversion speed then there's nothing there to optimise
[17:55:58 CET] <visualshock> make it use less system resources so I can parallell it more
[17:56:01 CET] <kepstin> that's literally just copying the streams without re-encoding, it's not gonna get any faster
[17:56:13 CET] <visualshock> ok thanks guys!
[17:56:34 CET] <furq> i guess you could buy faster disks
[17:57:48 CET] <visualshock> if it is only copying then I guess my ssd will be fine, i thought it would use a lot of my CPU.
[18:08:37 CET] <chungy> Nah, that's about as optimal as it gets. You could change the niceness to give ffmpeg higher or lower priority from other processes, but even then it probably won't be a big deal with -c copy
[19:23:29 CET] <tcell> hi all - i'm on OS X 10.10.9 trying to compile ffmpeg with libmp3lame support built in. I recompiled lame and libmp3lame but ffmpeg ./configure still fails
[19:23:44 CET] <tcell> i'll make a pastebin of the compile outputs
[19:23:52 CET] <JEEB> config.log
[19:23:56 CET] <JEEB> is the file you want to pastebin
[19:24:10 CET] <JEEB> and how you compiled and installed liblamemp3
[19:24:23 CET] <tcell> ok thanks!
[19:25:48 CET] <tcell> http://pastebin.com/Neuni2Uu
[19:26:04 CET] <tcell> config.log from ffmpeg build
[19:27:36 CET] <tcell> and http://pastebin.com/daxQwGA9 - config.log from libmp3lame
[19:29:23 CET] <JEEB> in ffmpeg try with --extra-cflags="-I/usr/include" --extra-ldflags="-L/usr/lib"
[19:29:41 CET] <tcell> libmp3lame compiled without problems - i installed it to /usr/local (default) and /usr but ffmpeg configure still doesn't find it, even with CFLAGS="-I /usr"
[19:29:49 CET] <JEEB> also wtf
[19:30:11 CET] <JEEB> --host-cflags= --host-ldflags= <- what were you expecting to achieve with this
[19:30:31 CET] <tcell> i copied the config line from the one Homebrew was using
[19:30:45 CET] <tcell> with brew install ffpmeg --build-from-source --verbose
[19:30:51 CET] <tcell> i'll take those flags out
[19:31:17 CET] <JEEB> but yeah, the error at the end is pretty clear :P it's as if you haven't installed LAME in the search path
[19:31:30 CET] <JEEB> which is why I recommended the extra cflags and ldflags that I mentioned
[19:32:04 CET] <ChocolateArmpits> Hello, I have encoded a 1 second long aac stream with the sine filter as the source. When played back, looped or encoded to pcm there is a short (unwanted) silence at the beginning of it.
[19:32:04 CET] <ChocolateArmpits> Here's my command output: http://pastebin.com/5y9HHsVZ
[19:32:41 CET] <dantti> is there some example to encode frames to h264 to stream with mpegts?
[19:33:05 CET] <JEEB> ChocolateArmpits: if you are decoding with ffmpeg (cli) then there's the issue that containers that don't support negative timestamps will just have the first timestamp made to be zero
[19:33:11 CET] <JEEB> some of which are WAV and such
[19:33:33 CET] <JEEB> also I hope you used a container where you actually can reflect the encoder delay
[19:33:49 CET] <JEEB> API usage will let you do it correctly, or you file a bug against it :P
[19:34:13 CET] <JEEB> if you want ffmpeg cli to cut off audio samples with negative timestamps instead of "normalizing" them to zero with containers that don't support <0 timestamps
[19:34:33 CET] <ChocolateArmpits> JEEB: Well I encoded straight to .aac , the silence "happens" to be during playback of the file too, if I concatenate it multiple times
[19:34:43 CET] <JEEB> well duh
[19:34:51 CET] <JEEB> raw aac bit stream doesn't have that information
[19:35:09 CET] <JEEB> try an mp4 derivative
[19:35:18 CET] <JEEB> that has support for encoder delay signaling
[19:35:30 CET] <ChocolateArmpits> so m4a?
[19:35:34 CET] <JEEB> for example, yes
[19:35:47 CET] <JEEB> you have to encode it though
[19:36:01 CET] <JEEB> after you have already encoded aac into raw bit stream the needed metadata is already gone
[19:36:30 CET] <JEEB> most of the world actually rolls around every vendor using some predetermined amount and everyone hoping nobody actually notices :P
[19:36:36 CET] <tcell> JEEB: thanks so much - it's working now after using the extra-cflags and extra-ldflags pointing to the correct places
[19:36:43 CET] <JEEB> tcell: np
[19:36:52 CET] <ChocolateArmpits> JEEB: Do I have to specify something additionally for the muxer ?
[19:37:21 CET] <JEEB> no, just make sure you're encoding and not remuxing, because as I said you lose metadata the moment you encode into a format that doesn't keep the information
[19:38:05 CET] <JEEB> and as I said, ffmpeg cli is kind of weird with that stuff + you have to make sure that the player you use correctly uses the encoder delay data
[19:38:09 CET] <ChocolateArmpits> Well that's what I'm doing using the since source filter, however encoding to aac and muxing to m4a makes no difference, the silence is still there
[19:38:15 CET] <ChocolateArmpits> sine*
[19:38:23 CET] <JEEB> don't encode -> mux
[19:38:27 CET] <llogan> tcell: since you're compiling, consider throwing away libvo (garbage) and use libfdkaac
[19:38:27 CET] <JEEB> do it in the same comment
[19:38:29 CET] <JEEB> *command
[19:38:43 CET] <ChocolateArmpits> JEEB: that's I'm doing. My command: "ffmpeg -f lavfi -i sine=frequency=1000:sample_rate=48000:duration=1 -acodec aac -strict -2 -b:a 128k -y D:\scripts\20151120logdepot\test_1.m4a"
[19:38:50 CET] <JEEB> ok, just wanted to make sure
[19:38:59 CET] <JEEB> and yes, that should now have the metadata in there
[19:39:12 CET] <JEEB> now you just have to use something that uses the API correctly to play it
[19:39:32 CET] <JEEB> since the decoder should give negative timestamps for the X first decoded audio samples
[19:39:51 CET] <JEEB> which means that the thing using the decoded samples should drop them
[19:40:13 CET] <ChocolateArmpits> ok seems like the negative timestamps are there  "audio", "stream_index": 0, "pts": -1024, "pts_time": "-0.021333", "dts": -1024, "dts_time": "-0.021333"
[19:40:49 CET] <ChocolateArmpits> Then I guess  ffplay does "correctly" process negative timestamps ?
[19:40:49 CET] <JEEB> and as I said, ffmpeg cli itself doesn't do that but rather decides it wants to keep it all if you output to wav or raw pcm or whatever
[19:40:58 CET] <JEEB> I have no idea what ffplay does
[19:41:00 CET] <ChocolateArmpits> does not*
[19:41:05 CET] <JEEB> it's a proof of concept thing
[19:41:07 CET] <ChocolateArmpits> Well it's sticking the silence in
[19:41:30 CET] <JEEB> but yeah, I wouldn't be surprised
[19:41:32 CET] <tcell> llogan: thanks i'll do that
[19:41:45 CET] <JEEB> if it just output everything :P
[19:41:57 CET] <tcell> really glad it works now - it broke youtube-dl
[19:42:48 CET] <JEEB> ChocolateArmpits: you can btw guess how simple it was to prove to a certain audio player developer community that FFmpeg (the project) was doing it right while ffmpeg (cli) wasn't doing what you'd expect when outputting to WAV :D
[19:43:21 CET] <JEEB> you at least could check with ffprobe I guess that the timestamps were actually negative and thus the delay was properly propagated
[19:43:37 CET] <JEEB> such mess this is :/
[19:45:36 CET] <JEEB> and I think the best part is that as I said vendors most often just hope you don't notice or that your player and the encoder implementation agree on the amount of samples for the encoder delay :)
[19:45:59 CET] <JEEB> (as it's most often not noted *anywhere*)
[19:46:09 CET] <ChocolateArmpits> JEEB: welp, ffmpeg isn't reading it correctly either: using concat demuxer I placed multiple links to the file, the silence is still rendered
[19:46:24 CET] <JEEB> ok, concat is a whole separate bag of shit
[19:47:10 CET] <JEEB> no idea how it deals with n'th file having nonzero starting timestamps
[19:47:43 CET] <JEEB> I wouldn't be surprised if it just took the last timestamp of previous + length as the starting point of the first sample of the second one
[20:14:16 CET] <Prelude_Zzzzz> hey everyone.. question " 704x480 [SAR 40:33 DAR 16:9]  " so i have that as the input and it has the two bars on the left and right side.. i have tried the -vf field,setvar=1/1,setdar=16/9 but i can't seem to get it to go full screen
[20:14:18 CET] <Prelude_Zzzzz> any input ?
[20:20:33 CET] <ChocolateArmpits> Prelude_Zzzzz: You wan the sides croppped?
[20:20:35 CET] <kepstin> Prelude_Zzzzz: if your input video says DAR 16:9 but you have black bars on the sides, then my guess is that the bars are actually encoded into the video and might have to be cropped out.
[20:20:51 CET] <Prelude_Zzzzz> ya i guess maybe i have to crop it
[20:20:54 CET] <Prelude_Zzzzz> how do i crop it ?
[20:21:08 CET] <ChocolateArmpits> Using the crop filter :)
[20:21:11 CET] <kepstin> with the crop filter, handily documented on the ffmpeg website.
[20:21:34 CET] <c_14> Combining it with cropdetect would probably make it easier.
[20:22:24 CET] <Prelude_Zzzzz> k.. let me look.. never used that
[20:27:29 CET] <Prelude_Zzzzz> is there a way to cropdetect and crop simultaniously without pipe ?
[20:27:54 CET] <c_14> cropdetect,crop iirc
[20:28:02 CET] <c_14> eeh
[20:28:04 CET] <c_14> although
[20:28:19 CET] <kepstin> you should really do it as two passes
[20:28:48 CET] <kepstin> run an encode with cropdetect, let it go until the output stabilizes, copy the parameters to a crop filter, and run the full encode with that
[20:33:49 CET] <Prelude_Zzzzz> more cpu power :(
[20:44:48 CET] <Prelude_Zzzzz> hum.. my width is good
[20:45:01 CET] <Prelude_Zzzzz> its my height... how do i set hight * 2 after i take out the field
[21:30:37 CET] <jasom> Prelude_Zzzzz: scale='iw:2*h' should work
[21:31:37 CET] <jasom> Prelude_Zzzzz: correction scale='iw:2*ih'
[21:36:28 CET] <jasom> Prelude_Zzzzz: but then you'll need to make sure you set the dar after that filter
[23:07:02 CET] <Amnez777> i need to list of all combination from multiple lists how can i do this?
[23:42:48 CET] <waressearcher2> Amnez777: hallo
[00:00:00 CET] --- Wed Nov 25 2015



More information about the Ffmpeg-devel-irc mailing list