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

burek burek021 at gmail.com
Mon Jun 2 02:05:01 CEST 2014


[01:02] <kippi> hey
[01:04] <kippi> is there a history of this channel? I had a great answer to a issue I was having but lost my hard drive, would love to be able to go back
[01:05] <another> there are public logs somewhere
[01:05] <another> http://lists.ffmpeg.org/pipermail/ffmpeg-devel-irc/
[01:12] <kippi> is there away to do scene detection in ffmpeg? I have a live feed and I want to be able to tell if the video has paused?
[10:36] <ztane> hi, we have a following problem with ffmpeg/ffserver, using ffserver to stream video with libx264, framerate 30, videobitrate 2000k, videokeyframeinterval 1 (!!), the video size is drifting very fast up from the original framerate
[10:36] <ztane> this is an embedded device used for screen capture, we do not mind bad quality but we need keyframes and we need the bitrate to stay constant... how to fix?
[10:40] <ztane> that is, what options coudl we try in ffserver config to force the bitrate to be kept / quality dropped
[10:40] <ztane> (and yes we really need keyframes at 1 second)
[10:52] <Mavrik> ztane, set vbv parameters for libx264 if you want it to keep tighter bitrate
[10:53] <Mavrik> but relying on your video being a constant bitrate size is mostly a design failure
[10:53] <ztane> it is not about it being constant bitrate,
[10:53] <ztane> it is about it getting to 5Mbit in 1 minute :(
[10:54] <ztane> the 2mbit quality would be good enough as in the beginning of the file
[10:57] <ztane> that is, if we stream 30 minutes of data, the resulting stream will be on avg ~6-7Mbit/sec as opposed to the 2M :D
[11:02] <Mavrik> ztane, vbv parameters :)
[11:02] <Mavrik> ztane, vbv-maxrate and vbv-bufsize are required so x264 does bitrate control more tightly: http://mewiki.project357.com/wiki/X264_Settings#vbv-maxrate
[11:04] <ztane> okie will try
[13:36] <ztane> hmm how do i specify x264opts in ffserver.conf
[15:51] <ZjP> I'm try to change left/right volume separately with: "channelsplit=channel_layout=stereo[L][R]; [L]volume=0.5[Lmod]; [R]volume=2.0[Rmod]; [Lmod][Rmod]amerge", but this doesn't seem to work. What am I doing wrong?
[16:40] <Jaex_> where can i find x264 preset settings, searched in google but can't find
[16:41] <Jaex_> x264 --fullhelp not works
[16:42] <sruli> hi everyone, I encode everyday some videos from my helmet camera from MOV to mp4 h264 codec, I use -preset veryslow, can someone tell me if there is a real difference between veryslow and slow?
[16:45] <sacarasc> sruli: Find a bit with a lot of movement on it, and do a 10 second encode of both, compare quality and size and see if the extra time is worth it for you.
[16:45] <Jaex_> reason why im searching for preset setting list is, trying to figure out what is default -bufsize value
[16:45] <Jaex_> because when recording screen videos becoming fast because of fps drops
[16:45] <Jaex_> so im hoping maybe higher buffer size can solve it
[16:46] <sruli> its all alot of movement, i tried it i encode @ 10000k when using veryslow i get 10002k for same file size, but to my naked eye i cannot see any difference
[16:47] <sruli> sacarasc: can i upload 2 short vids and you tell me if you see a differnce?
[16:47] <sacarasc> I have terrible eyes.
[16:47] <sacarasc> But if you can't see the difference, then why not go for the quicker?
[16:47] <sruli> lol, anyone around with a good set of eyes!?
[16:48] <sruli> because I also dont have a good set of eyes when it comes to seeing minor difference in quality
[16:52] <Jaex_> also im wondering is rtbufsize different than bufsize?
[16:52] <Jaex_> cant find much info about these in documents
[16:54] <Mavrik> bufsize isn't set in presets
[16:54] <JEEB> <Jaex_> reason why im searching for preset setting list is, trying to figure out what is default -bufsize value <- VBV settings have no defaults
[16:54] <Mavrik> presets don't set quality sizes.
[16:54] <JEEB> -bufsize and -maxrate
[16:54] <Mavrik> *quality parameters
[16:54] <JEEB> and yes, you need both for working VBV
[16:55] <Jaex> This is default settings in my software: https://dl.dropboxusercontent.com/u/14076298/ShareX/2014/06/JAsYGAywGJ.png
[16:55] <Jaex> but many peoples reporting videos becoming very fast
[16:55] <Jaex> but i can't reproduce it because my computer not bad
[16:56] <Jaex> so im thinking maybe i should set -bufsize and -rtbufsize?
[16:56] <JEEB> rtbufsize is something completely different
[16:56] <Jaex> because they must keep getting buffer size error which causing frame drops
[16:56] <JEEB> bufsize and maxrate are the VBV settings in the libx264 wrapper
[16:56] <JEEB> anyways, I'm pretty sure that's not the case, it shouldn't cause "becoming very fast" :P
[16:57] <JEEB> that sounds like timestamps going wrong and setting VBV probably isn't going to help
[16:58] <Jaex> becoming very fast happens because video expects 30 frames per second but when 5 frame lose then 25 frame per second + 5 frame in next second in output video so video becomes 1.16x more faster
[16:58] <JEEB> yes, and that just means the encoding is too slow
[16:58] <JEEB> nothing to do with VBV
[16:58] <JEEB> VBV is needed when you need to push the output straight through a limited bandwidth thing (read: network or media)
[16:58] <Jaex> i don't know what is VBV by the way, searched in google and as always can't find it
[16:58] <JEEB> it's a buffering model basically
[16:59] <JEEB> if they successfully get a too fast video, it means that whatever they're doing they're getting the video read fast enough
[16:59] <JEEB> so what should be done is getting proper timestamps instead of hardcoding 30fps
[16:59] <JEEB> or well, X fps
[16:59] <JEEB> I have no idea if you can get that with the DShow screen capture stuff
[17:00] <Jaex> yea it is the problem
[17:00] <JEEB> I mean, yes, DShow has timestamps
[17:00] <Jaex> there is no c# wrapper for ffmpeg
[17:00] <Jaex> therefore im completely rely on cli
[17:00] <Jaex> for screen recording and real time encoding
[17:00] <Jaex> so i dont have full control
[17:00] <JEEB> uhh
[17:00] <JEEB> why do people always want pre-made wrappers
[17:00] <JEEB> it's not like using native libraries is /hard/
[17:00] <JEEB> anyways, even with cli
[17:00] <JEEB> you could just fix the DShow input to do it like you want to
[17:00] <Jaex> it is must hard therefore there isnt single open source exist :D
[17:01] <JEEB> ...
[17:01] <JEEB> can I facepalm?
[17:01] <JEEB> I've written code in various languages that uses C libraries and it really is not hard, and I've used the libav* libraries in C
[17:01] <JEEB> the reason why there is no wrapper is because the API changes so often
[17:02] <JEEB> so you'd have to maintain the wrapper if it was a separate one
[17:02] <JEEB> rather everyone just use the libraries in their own project
[17:02] <JEEB> anyways, just fix the dshow input module if you want it to be properly fixed
[17:02] <Jaex> dshow codes here: https://dl.dropboxusercontent.com/u/14076298/ShareX/2014/06/ShareX_JKCMaiSeuc.png
[17:02] <Jaex> what you mean fix?
[17:03] <JEEB> fix the dshow input module in libavformat
[17:03] <JEEB> so that it takes the input timestamps properly
[17:03] <JEEB> and if that thing already does that, then you make the screen-capture-recorder DShow filter handle timestamps properly
[17:04] <JEEB> you are setting -r 30 on both sides right now and that is just *dumb*
[17:04] <JEEB> because it leads to your exact problem
[17:05] <Jaex> where i found this open source dshow filter, they were suggesting using -r for both input and output :(
[17:05] <JEEB> then you look at its code
[17:05] <JEEB> and see if it handles frame rate drops properly
[17:05] <JEEB> it's not rocketry. You've already gotten this far :P
[17:06] <Jaex> their codes c++
[17:06] <Jaex> my software is c# :(
[17:06] <JEEB> who cares?
[17:06] <JEEB> you go and read their shit if you depend on it
[17:06] <JEEB> welcome to reality
[17:06] <Jaex> i cant suddenly be very knowledgeable with c++
[17:07] <JEEB> of course not
[17:07] <JEEB> but you should be able to grasp the gist
[17:07] <JEEB> you can't fix your shit unless you fix the whole chain
[17:08] <JEEB> 1) check the dshow input module that it uses timestamps properly 2) check that screen capture dshow filter that it properly handles timestamps in case of stuff not going fast enough
[17:09] <JEEB> you'd have to fix both of those anyways even when using them via the library :P
[17:09] <Jaex> when using library i thought i would handle frame skips myself
[17:09] <Jaex> like if cant capture in time then will skip frame
[17:10] <JEEB> you shouldn't have to handle that in the lavf/lavc level, it should already be noted at that point
[17:10] <JEEB> esp. if you are using a pre-made capture thing
[17:10] <JEEB> you definitely can control a lot of stuff more directly via the APIs, but in this case you shouldn't have to poke the timestamps there.
[17:20] <Jaex> when cpu in use by game now i can reproduce that fast video problem: https://dl.dropboxusercontent.com/u/14076298/ShareX/2014/06/LQam4ak11O.mp4
[17:20] <Jaex> also audio very out of sync in end :(
[17:21] <Jaex> video ends but audio continue
[17:21] <Jaex> because video ends faster
[17:21] <JEEB> well you know why it happens, now go fix it :P stop hardwiring a frame rate, and properly let the input pass out timestamps for eff's sake
[17:22] <JEEB> lavf/lavc support it just fine, you just have to stop being a retard
[17:22] <JEEB> in other words, check if the DShow input handles the case fine
[17:22] <Jaex> i have no idea why it happens i dont think it is to do with directshow c++ codes after all it is supposed to use other things too like camera etc. are those need their own custom made dshow filters too?
[17:22] <JEEB> after that, check if the DShow filter you're using handles it fine
[17:23] <Jaex> im planning to email who made this dshow filter but dunno what to write to him :P
[17:23] <JEEB> "Does your filter support capture with proper timestamps instead of a hardcoded frame rate (and possibly a frame rate maximum)"
[17:23] <Jaex> okey thanks
[17:24] <JEEB> also go look at the dshow input code in FFmpeg
[17:24] <JEEB> basically get off your lazy fucking ass and start reading code
[17:24] <JEEB> if you don't understand something, you ask about it in relevant places. But trying to give up or say you have no idea is just going to get you hated everywhere.
[17:25] <Jaex> let me try with gdigrab so this will eliminate that fault is to do with dshow ?
[17:25] <JEEB> I have no idea how the gdigrab thing works, you basically have to check all of the input things in libavformat etc for how they handle the timestamps
[17:25] Action: JEEB sighs
[18:10] <user3> question
[18:10] <user3> I'm using this to extract the sound from a mp4 file and that works fine "ffmpeg.exe -i mymusic.mp4 -vn mymusic.mp3" but it's rather verbose with lots of details. is there a quiet/silent option? I'm still interested to hear about the errors if there's any during the conversion
[18:14] <sacarasc> -loglevel fatal
[18:14] <sacarasc> I think.
[18:15] <user3> that will still output the error messages?
[18:15] <sacarasc> Look for -loglevel here: http://ffmpeg.org/ffmpeg-all.html
[18:21] <bryancp> Is there a way to set the sample rate for a stream without using avformat_find_stream_info?
[18:27] <user3> "-loglovel warning" is pretty good, but it disables all statistics so I added -stats to get some back which is now a bit too much. is there a way to reduce -stat's output somewhat?
[18:30] <ZjP> Note to anyone googler's having running across the question in the log: I found that the join filter was more flexible and worked
[19:29] <sfan5> It is not possible to mux dvbsub subtitles into an .mp4 file, is it?
[19:32] <JEEB> no
[19:32] <JEEB> the only subtitle format that "mp4" supports officially is timed text (a la 3gpp timed text)
[19:33] <JEEB> everything else is a hack
[19:36] <sfan5> I can't convert dvbsub to something mp4 supports either, can I?
[19:37] <JEEB> it's pictures and you'd need text
[19:38] <JEEB> so yeah, nope.avi
[19:38] <sfan5> :(
[19:39] <JEEB> see if subtitle edit or something can OCR them?
[19:39] <JEEB> https://code.google.com/p/subtitleedit/
[19:39] <sfan5> that's too much work
[19:40] <ubitux> use mkv, or burn them
[19:40] <ubitux> not sure you could have dvb actually
[19:40] <sfan5> all I want is to preserve (optional) subtitles when converting from .ts to <anything my TV can read>
[19:40] <ubitux> probably only dvd
[19:43] <sfan5> my TV supports mkv, I'll use that
[19:43] <sfan5> thanks for the hlep
[19:43] <sfan5> help*
[19:46] <ubitux> ...but you probably can't put dvb in it.
[19:46] <ubitux> at least i'm not sure our muxer supports it
[22:07] <ztane> I guess it is not possible to use the -f segment and make it generate files with timestamp
[22:08] <ztane> instead of sequence number
[23:23] <malcie> Can someone help with the correct inputs to the amerge filter, I have a XDCAM HD422 video with 6 audio streams that I am transcoding to a single AAC 5.1 stream, here are the
[23:23] <malcie> command:
[23:24] <malcie> ffmpeg -i audio/ch1.wav -i audio/ch2.wav -i audio/ch3.wav -i audio/ch4.wav -i audio/ch5.wav -i audio/ch6.wav -i audio/test.mov \
[23:24] <malcie> > -map 6:0:v -c:v:0 copy  -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a] amerge=inputs=6[audio]" -strict experimental -c:a libfdk_aac -b:a 384k -map '[audio]' -shortest audio/video_split.mov
[23:24] <malcie> ffmpeg version git-2014-05-08-6c23a85 Copyright (c) 2000-2014 the FFmpeg developers
[23:24] <malcie>   built on May  8 2014 12:44:32 with gcc 4.8.2 (GCC) 20131212 (Red Hat 4.8.2-7)
[23:24] <malcie>   configuration: --prefix=/home/ec2-user/ffmpeg_build --extra-cflags=-I/home/ec2-user/ffmpeg_build/include --extra-ldflags=-L/home/ec2-user/ffmpeg_build/lib --bindir=/home/ec2-user/bin --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264
[23:24] <malcie>   libavutil      52. 82.100 / 52. 82.100
[23:24] <malcie>   libavcodec     55. 60.103 / 55. 60.103
[23:24] <malcie>   libavformat    55. 37.102 / 55. 37.102
[23:24] <malcie>   libavdevice    55. 13.101 / 55. 13.101
[23:24] <malcie>   libavfilter     4.  5.100 /  4.  5.100
[23:24] <malcie>   libswscale      2.  6.100 /  2.  6.100
[23:24] <malcie>   libswresample   0. 18.100 /  0. 18.100
[23:24] <malcie>   libpostproc    52.  3.100 / 52.  3.100
[23:24] <malcie> Input #0, wav, from 'audio/ch1.wav':
[23:24] <malcie>   Metadata:
[23:24] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #1, wav, from 'audio/ch2.wav':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #1:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #2, wav, from 'audio/ch3.wav':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #2:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #3, wav, from 'audio/ch4.wav':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #3:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #4, wav, from 'audio/ch5.wav':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #4:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #5, wav, from 'audio/ch6.wav':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, bitrate: 1152 kb/s
[23:25] <malcie>     Stream #5:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s32, 1152 kb/s
[23:25] <malcie> Input #6, mov,mp4,m4a,3gp,3g2,mj2, from 'audio/test.mov':
[23:25] <malcie>   Metadata:
[23:25] <malcie>     major_brand     : qt
[23:25] <malcie>     minor_version   : 512
[23:25] <malcie>     compatible_brands: qt
[23:25] <malcie>     encoder         : Lavf55.37.102
[23:25] <malcie>   Duration: 00:05:00.00, start: 0.000000, bitrate: 50011 kb/s
[23:25] <malcie>     Stream #6:0(eng): Video: mpeg2video (4:2:2) (xd5c / 0x63356478), yuv422p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 50008 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
[23:25] <malcie>     Metadata:
[23:25] <malcie>       handler_name    : DataHandler
[23:25] <malcie>       encoder         : XDCAM HD422 1080i50
[23:25] <malcie>       timecode        : 01:00:00:00
[23:25] <malcie>     Stream #6:1(eng): Data: none (tmcd / 0x64636D74)
[23:26] <malcie>     Metadata:
[23:26] <malcie>       handler_name    : DataHandler
[23:26] <malcie>       timecode        : 01:00:00:00
[23:26] <malcie> [Parsed_amerge_0 @ 0x3e4f7a0] No channel layout for input 1
[23:26] <malcie> [Parsed_amerge_0 @ 0x3e4f7a0] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
[23:26] <malcie> Output #0, mov, to 'audio/video_split.mov':
[23:26] <c_14> waaaah, pastebin. Please use a pastebin service
[23:26] <malcie>   Metadata:
[23:26] <malcie>     encoder         : Lavf55.37.102
[23:26] <malcie>     Stream #0:0(eng): Video: mpeg2video (xd5c / 0x63356478), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 50008 kb/s, 25 fps, 12800 tbn, 12800 tbc (default)
[23:26] <malcie>     Metadata:
[23:26] <malcie>       handler_name    : DataHandler
[23:26] <malcie>       encoder         : XDCAM HD422 1080i50
[23:26] <malcie>       timecode        : 01:00:00:00
[23:26] <malcie>     Stream #0:1: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 48000 Hz, 5.1, s16, 384 kb/s (default)
[23:26] <malcie> Stream mapping:
[23:26] <malcie>   Stream #0:0 (pcm_s24le) -> amerge:in0
[23:26] <malcie>   Stream #1:0 (pcm_s24le) -> amerge:in1
[23:26] <malcie>   Stream #2:0 (pcm_s24le) -> amerge:in2
[23:26] <malcie>   Stream #3:0 (pcm_s24le) -> amerge:in3
[23:26] <malcie>   Stream #4:0 (pcm_s24le) -> amerge:in4
[23:26] <malcie>   Stream #5:0 (pcm_s24le) -> amerge:in5
[23:26] <malcie>   Stream #6:0 -> #0:0 (copy)
[23:26] <malcie>   amerge -> Stream #0:1 (libfdk_aac)
[23:26] <malcie> Press [q] to stop, [?] for help
[23:26] <malcie> frame= 7500 fps=116 q=-1.0 Lsize= 1845646kB time=00:04:59.98 bitrate=50400.2kbits/s
[23:26] <malcie> video:1831373kB audio:14064kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.011295%
[23:26] <malcie> sorry, was not a friendly dump
[23:36] <malcie> ffmpeg amerge command and output: http://pastebin.com/TaYxwRWk Question I had was what additional settings I need to remove the No channel layout warning from amerge filter. And sorry again for the copy paste carnage.
[00:00] --- Mon Jun  2 2014


More information about the Ffmpeg-devel-irc mailing list