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

burek burek021 at gmail.com
Thu Jul 21 02:05:01 CEST 2016


[00:23:23 CEST] <CFS-MP3> I'm experimenting a bit with complex filters... anyway, I have a large (well, 4x2) mosaic that shows 8 TV channels at the same time
[00:23:31 CEST] <CFS-MP3> it works OK, except that it hiccups from time to time
[00:24:02 CEST] <CFS-MP3> ffmpeg says speed 0.8 or so, which I guess means it can't keep up
[00:24:16 CEST] <CFS-MP3> but system load is around 40%, and I'm OK using 100% for it
[00:24:26 CEST] <CFS-MP3> input and output are network streams, nothing goes to disk
[00:24:31 CEST] <CFS-MP3> Any suggestion?
[00:25:49 CEST] <furq> decoding multiple inputs is done sequentially iirc
[00:26:24 CEST] <furq> i don't think there's a way to do it in parallel short of spawning multiple processes
[00:30:02 CEST] <klaxa> and then? pass the decoded raw stream as a pipe to another instance to unify it? will that really speed it up? or am i misunderstanding?
[00:30:14 CEST] <furq> https://trac.ffmpeg.org/ticket/1663
[00:30:15 CEST] <furq> oh well that's fun
[00:30:31 CEST] <klaxa> hmm, decoding is slower than muxing so it probably will
[00:30:52 CEST] <furq> i'm not sure how you'd work around it if that bug is still unfixed
[00:31:33 CEST] <klaxa> huh? i am pretty sure i used multiple named pipes with ffmpeg
[00:31:34 CEST] <klaxa> let me check
[00:33:40 CEST] <klaxa> https://klaxa1337.blogspot.de/2012/09/streaming-videos-over-http-while.html
[00:33:48 CEST] <klaxa> too bad i didn't put any output to see the version i used
[00:33:53 CEST] <klaxa> but this was late 2012
[00:36:21 CEST] <furq> i wonder if it's an issue with multiple outputs on named pipes
[00:36:54 CEST] <c_14> it is
[00:37:18 CEST] <c_14> At least, I've run into the same issue in several cases.
[00:38:27 CEST] <furq> http://vpaste.net/96A4T
[00:38:32 CEST] <furq> i guess something like that should work then
[00:38:36 CEST] <furq> it's worth a try anyway
[00:41:09 CEST] <CFS-MP3> furq was this "decoding multiple inputs is done sequentially iirc" addressed to me? If it was I'm sorry
[00:41:14 CEST] <furq> es
[00:41:16 CEST] <furq> yes
[00:41:19 CEST] <CFS-MP3> OK
[00:41:19 CEST] <furq> all of this was addressed to you
[00:41:35 CEST] <CFS-MP3> Thanks, I saw klaxa reply to something so I wasn't sure
[00:43:04 CEST] <furq> if you have 40% cpu usage but ffmpeg isn't keeping up with the inputs then either decoding or filtering is to blame
[00:43:15 CEST] <furq> splitting that across multiple processes might help
[00:43:26 CEST] <furq> if it works at all, that is
[00:43:46 CEST] <CFS-MP3> furq I don't know if it's the inputs, or the output, or maybe the network... can be anything I guess. That's what I'd like to figure out
[00:43:58 CEST] <furq> i guess it could be the network too
[00:44:09 CEST] <furq> but yeah try what i pasted
[00:44:16 CEST] <CFS-MP3> I mean, if replacing the i5 with a i7 is the simplest solution I can do that
[00:45:15 CEST] <CFS-MP3> Your solution is more fun though
[00:45:20 CEST] <furq> http://vpaste.net/ng93U
[00:45:21 CEST] <furq> or that, even
[00:45:37 CEST] <furq> if it works then you can send me the i7
[00:47:35 CEST] <CFS-MP3> I'll get your shipping details in a bit
[00:48:37 CEST] <CFS-MP3> anyway this takes 4 input files and sends the decoded that to a pipe how? I mean, is the data separate in different streams?
[00:49:21 CEST] <furq> https://ffmpeg.org/ffmpeg-filters.html#hstack
[00:49:29 CEST] <furq> pipe1 is the top row, pipe2 is the bottom row
[00:50:56 CEST] <furq> if you need padding or something then it gets a bit more complicated
[00:52:23 CEST] <CFS-MP3> I don't need padding, but I'm overlays subtitles in each of the videos
[00:53:00 CEST] <CFS-MP3> This is what I have at the moment
[00:54:10 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:10 CEST] <CFS-MP3> -i udp://239.168.100.1:5000?fifo_size=1000000 \
[00:54:10 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:10 CEST] <CFS-MP3> -i udp://239.168.100.2:5000?fifo_size=1000000 \
[00:54:10 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:10 CEST] <CFS-MP3> -i udp://239.168.100.4:5000?fifo_size=1000000 \
[00:54:11 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:11 CEST] <CFS-MP3> -i udp://239.168.100.7:5000?fifo_size=1000000 \
[00:54:12 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:12 CEST] <CFS-MP3> -i udp://239.168.100.8:5000?fifo_size=1000000 \
[00:54:13 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:13 CEST] <CFS-MP3> -i udp://239.168.100.9:5000?fifo_size=1000000 \
[00:54:14 CEST] <CFS-MP3> -thread_queue_size 512  \
[00:54:14 CEST] <CFS-MP3> -i udp://239.168.100.10:5000?fifo_size=1000000 \
[00:54:40 CEST] <CFS-MP3> admitedly I just started today playing with this stuff and I pasted from tutorials
[00:54:47 CEST] <CFS-MP3> anyway that works except for what I said
[00:56:47 CEST] <furq> http://vpaste.net/lJK5u
[00:56:51 CEST] <furq> something like that then
[00:58:31 CEST] <CFS-MP3> Damn, looks so simple
[00:58:39 CEST] <CFS-MP3> Let's try
[01:00:05 CEST] <furq> http://vpaste.net/f5l5n
[01:00:07 CEST] <furq> or that
[01:06:01 CEST] <CFS-MP3> I need my subs from DVB though (instead of file) so I do have to use that overlay first
[01:07:31 CEST] <CFS-MP3> $ ffmpeg -i udp://239.168.100.1:5000?fifo_size=1000000 -i udp://239.168.100.2:5000?fifo_size=1000000 -i udp://239.168.100.4:5000?fifo_size=1000000  -i udp://239.168.100.7:5000?fifo_size=1000000  -filter_complex "[0:v]overlay[out1]; [1:v]overlay[out2]; [2:v]overlay[out3]; [3:v]overlay[out4]; [out1][out2][out3][out4] hstack=inputs=4 [out]" -c:v rawvideo /tmp/pipe1 &
[01:07:37 CEST] <CFS-MP3> Does that look reasonable to you?
[01:08:15 CEST] <furq> overlay takes two inputs
[01:08:32 CEST] <furq> i assume it'd be [0:v][0:s] overlay [out1] etc
[01:08:38 CEST] <CFS-MP3> ah yes
[01:08:39 CEST] <CFS-MP3> thanks
[01:15:54 CEST] <CFS-MP3> [NULL @ 0x38af100] Unable to find a suitable output format for '/tmp/pipe1'
[01:16:01 CEST] <CFS-MP3> I must say I cheated
[01:16:12 CEST] <CFS-MP3> ah, the -c:v must be
[01:16:34 CEST] <CFS-MP3> ah no, it's there
[01:16:36 CEST] <CFS-MP3> ffmpeg -i udp://239.168.100.1:5000?fifo_size=1000000 -i udp://239.168.100.2:5000?fifo_size=1000000 -i udp://239.168.100.4:5000?fifo_size=1000000  -i udp://239.168.100.7:5000?fifo_size=1000000  -filter_complex "[0:v][0:s]overlay[out1]; [1:v][0:s]overlay[out2]; [2:v][2:s]overlay[out3]; [3:v][3:s]overlay[out4]; [out1][out2][out3][out4] hstack=inputs=4 [out]" -c:v rawvideo /tmp/pipe1
[01:17:25 CEST] <CFS-MP3> trying with pipe1.ts
[01:17:47 CEST] <furq> -f nut /tmp/pipe1
[01:18:18 CEST] <CFS-MP3> File '/tmp/pipe1.ts' already exists. Overwrite ? [y/N] Not overwriting - exiting
[01:18:33 CEST] <CFS-MP3> let me try  -f nut
[01:25:51 CEST] <CFS-MP3> OK so two things are ahppening, one that it asks about overwritting the pipe, and the second it that it says that hstack has an unconnected output
[01:26:00 CEST] <CFS-MP3> I guess the 2nd one I can solve with -map [out]
[01:39:37 CEST] <CFS-MP3> about pipe, someone suggests to use pipe:// in a forum but my terminal went apeshit :-)
[04:14:53 CEST] <jrm> Hi.  I have a old script I use for screencasts: http://ftfl.ca/paste/screencast.html.  I just ran it for the first time in a long time and I noticed x11grab wasn't compiled in, so when I tried to recompile, I got a not about x11grab begin "legacy".  What should I be using instead of x11grab?
[04:16:04 CEST] <jrm> s/not/note/ s/begin/being/
[05:53:56 CEST] <Plan_B> How to save EIA_608 subtitles in encoded video (h264.ts) please?
[07:00:46 CEST] <Ashish_> Hello All
[07:01:10 CEST] <Ashish_> Myself Ashish and i need help to install FFMPEG on centos server.
[07:02:24 CEST] <Ashish_> i am installing ffmpeg on centos on root account. i can install it successfully. but when i check on cpanel sub accounts of server, ffmpeg is not installed on it
[07:03:27 CEST] <Ashish_> can anyone help me on how to migrate ffmpeg on my cpanel sub accounts.
[07:05:17 CEST] <relaxed> Ashish_: where did you install the ffmpeg binary?
[07:08:13 CEST] <Ashish_> i am installing it using root ssh account
[07:08:24 CEST] <Ashish_> so installed in root accounts.
[07:08:41 CEST] <Ashish_> so installed in root account
[07:09:24 CEST] <relaxed> did you compile it yourself?
[07:09:32 CEST] <Ashish_> Yes
[07:09:57 CEST] <Ashish_> i have follow this tutorial. https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
[07:10:09 CEST] <relaxed> where is the ffmpeg binary?
[07:11:42 CEST] <relaxed> ls -l $HOME/ffmpeg_build/bin/ffmpeg
[07:11:52 CEST] <relaxed> what does that return ^^^ ?
[07:13:44 CEST] <Ashish_> No such file or directory
[07:16:10 CEST] <relaxed> The guide says to use "--prefix="$HOME/ffmpeg_build" when compiling ffmpeg. Did you follow the guide?
[07:17:49 CEST] <Ashish_> Yes
[07:18:33 CEST] <Ashish_> i can't see ffmpeg in ffmpeg_build/bin directory
[07:19:17 CEST] <relaxed> look in the ffmpeg source dir
[07:20:43 CEST] <Ashish_> Where i can see or find this directory.
[07:24:08 CEST] <relaxed> ffmpeg_sources/ffmpeg
[07:24:50 CEST] <relaxed> I'm guessing in /root
[07:25:44 CEST] <Ashish_> Yes it is
[07:25:54 CEST] <Ashish_> what should i do here ?
[07:26:58 CEST] <relaxed> run /root/ffmpeg_sources/ffmpeg/ffmpeg
[07:29:14 CEST] <Ashish_> What will this do ?
[07:29:23 CEST] <relaxed> run ffmpeg if it's there
[07:30:20 CEST] <relaxed> or try /root/ffmpeg_build/bin/ffmpeg
[07:31:11 CEST] <Ashish_> it is working fine. but how to run it on my sub accounts of server.
[07:31:38 CEST] <relaxed> what is working fine?
[07:32:03 CEST] <Ashish_> when i run ffmpeg on root ssh account then it is giving version information.
[07:33:04 CEST] <Ashish_> so ffmpeg commands are working fine in root ssh account. but it is giving command not found error when i run it from server sub accounts.
[07:35:26 CEST] <relaxed> Ashish_: run this--> whereis ffmpeg
[07:37:45 CEST] <Ashish_> ffmpeg: /usr/bin/ffmpeg /usr/local/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
[07:44:36 CEST] <limbo> and what is it when you run it from the subaccounts?
[07:45:13 CEST] <limbo> also, does it run when you use the full path? What's the other account's PATH variable set to?
[07:46:24 CEST] <Ashish_> it is giving same output when run from
[07:46:29 CEST] <Ashish_> it is giving same output when run from sub accounts
[07:48:54 CEST] <limbo> can you put the output of this command on a pastebin?
[07:49:02 CEST] <limbo> ls -lah /usr/bin/ffmpeg /usr/local/bin/ffmpeg /usr/share/ffmpeg
[07:49:16 CEST] <Ashish_> ffmpeg: /usr/bin/ffmpeg /usr/local/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
[07:49:46 CEST] <relaxed> maybe you have to give cpanel the absolute path to ffmpeg
[07:51:00 CEST] <Ashish_> can you show us how ?
[07:51:55 CEST] <relaxed> is there an input box in cpanel where you can add ffmpeg's location?
[07:52:33 CEST] <Ashish_> i think no. we have follow this tutorial https://trac.ffmpeg.org/wiki/CompilationGuide/Centos to compile it manually
[07:53:43 CEST] <Anonaly> hi, I have a question regarding these instructions on how to install FFMPEG
[07:53:44 CEST] <Anonaly> https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
[07:54:05 CEST] <Anonaly> the final install ends up in my home directory  (/home/me/bin)  ?
[07:54:27 CEST] <Anonaly> should I move that to my /usr/bin  folder ?
[08:09:19 CEST] <darkapex> Anonaly: Rather than polluting your /usr/bin which used system-wide and which might interfere with your package manager, I suggest just add /home/me/bin to your $PATH
[08:10:12 CEST] <Anonaly> ok
[08:14:49 CEST] <Ashish_> any one can help on my issue ?
[08:26:32 CEST] <Ashish_> anyone can let me know how to uninstall ffmpeg installed it using this tutorial ? https://trac.ffmpeg.org/wiki/CompilationGuide/Centos#FFmpeg
[08:29:49 CEST] <darkapex> Ashish_: Try to run `make uninstall` from the directory you ran the installation from
[11:21:05 CEST] <whald> is there some function which allows me to tell a freshly av_frame_alloc'd AVFrame apart from an AVFrame which actually holds some data (aka buffers)? i'm currently doing this with my own flag an wonder if I can get rid of it.
[11:22:16 CEST] <whald> something like av_frame_has_buffers or the like, or do i have to poke into the avframe myself?
[14:40:39 CEST] <friki2015> hi, i'm testing ffmpeg to encode 1080p50 live video (h264 at 5mbps). After some tests I can't get a good quality output. Is there any tip?
[14:43:00 CEST] <friki2015> It seems that ffmpeg only use 12 of 24 CPU
[14:46:26 CEST] <BtbN> That's barely enough bitrate for that resolution and framerate.
[14:46:34 CEST] <BtbN> Some atrifacts are to be expexted.
[14:48:48 CEST] <friki2015> i think the result is worst than a 250kbps... i'll try 10mbps
[14:49:00 CEST] <iive> friki2015: try to encode based on quality - qp or crf . find what number looks ok (lower number -> better picture, bigger bitrate).
[14:49:55 CEST] <iive> this way you can find the bitrate that looks good. round it up.
[14:50:20 CEST] <iive> also, i hope you do use libx264 encoder, it's the best encoder outthere
[14:52:33 CEST] <iuppiter> got it
[14:54:05 CEST] <friki2015> fixing -qp 24 result in 20mbps
[14:56:47 CEST] <friki2015> in fact the original video signal is h264 20mbps 1080i
[15:00:32 CEST] <friki2015> BtbN iive: thanks, i'll keep working on it
[16:13:12 CEST] <Mutantebirl> hi everyone
[16:13:16 CEST] <Mutantebirl> i need a little help
[16:14:32 CEST] <Mutantebirl> i cant convert to mp3 in ffmpeg, give me a error of codec
[16:14:36 CEST] <Mutantebirl> "Encoder (codec mp3) not found for output stream #0:0"
[16:15:02 CEST] <Mutantebirl> i get the same error in youtube-dl when i try to download the sound of video in mp3
[16:15:15 CEST] <DHE> ffmpeg doesn't directly include an MP3 encoder. it uses lame as a helper library. your copy wasn't built with it
[16:15:16 CEST] <Mutantebirl> "ERROR: audio conversion failed: Unknown encoder 'libmp3lame'"
[16:15:39 CEST] <Mutantebirl> yeah DHE, this happen after the update i made yeasterday
[16:15:43 CEST] <Mutantebirl> in arch linux
[16:17:03 CEST] <Mutantebirl> i think thats happens when updatede ffmpeg and not compile limmp3lame together
[16:18:01 CEST] <Mutantebirl> can you help me?
[16:18:42 CEST] <DHE> if you did a package manager upgrade and lame broke like that, I'm thinking it's an Arch issue
[16:19:42 CEST] <Mutantebirl> i think it is, i just upgrade whit pacman... do you know what can i do to compile that again?
[16:20:09 CEST] <furq> Mutantebirl: https://wiki.archlinux.org/index.php/Arch_Build_System
[16:21:22 CEST] <Mutantebirl> thanks, i will search about it, and try in my other arch
[16:21:41 CEST] <furq> https://www.archlinux.org/packages/extra/x86_64/ffmpeg/
[16:21:48 CEST] <furq> that says it depends on lame, so maybe something else is broken
[16:22:25 CEST] <furq> ffmpeg -version | grep libmp3lame
[16:22:27 CEST] <furq> does that return anything
[16:25:31 CEST] <iive> isn't mp3 patent supposed to expire soon?
[16:26:33 CEST] <furq> decoding is already patent-free apparently
[16:26:38 CEST] <furq> encoding in 2017
[16:26:49 CEST] <furq> http://en.swpat.org/wiki/Mp3#Final_expiration:_2015_or_2017
[16:27:43 CEST] <Mutantebirl> oh, thanks everyone
[16:27:48 CEST] <Mutantebirl> thats is a upgrade error
[16:28:05 CEST] <Mutantebirl> in my ohter arch i just dont dont update and test, and work fine
[16:28:27 CEST] <Mutantebirl> and now i update him and get the same issue, i will get that to the arch forum
[16:28:29 CEST] <Mutantebirl> :) thanks
[16:28:36 CEST] <furq> https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/ffmpeg
[16:28:43 CEST] <furq> that sure looks like it's including lame
[16:29:17 CEST] <Mutantebirl> yes, i see... i will make some tests here
[16:31:47 CEST] <Mutantebirl> strange... now i see and work fine in ohter arch
[16:32:37 CEST] <iive> 30 dec 2017 ... for standard published 1991
[16:33:09 CEST] <furq> just be glad it wasn't invented by walt disney
[16:40:04 CEST] <Mutantebirl> thanks everyone
[17:58:44 CEST] <Threads> was wondering is it possible to start encoding from a second input time but use the first as a jump point
[17:59:25 CEST] <Threads> lets say video starts at 00:07:52.00 but i have to keep adding 2seconds to get it on point
[17:59:44 CEST] <Threads> could i do -ss 00:05:52.00 -ss 00:00:02.00
[18:00:02 CEST] <Threads> could i do -ss 00:07:52.00 -ss 00:00:02.00
[18:08:21 CEST] <kepstin> Threads: no, you can't use -ss multiple times (if you do, I think the later one just overwrites the earlier one)
[18:09:08 CEST] <kepstin> well, I suppose you can use both -ss as an input option and as an output option, which would sort of do that, but it's not quite the same thing (the output version behaves differently)
[18:39:46 CEST] <soulshock> when generating PSNR, is there a reason most guides use "-f mp4 /dev/null" ? I mean it would be a lot faster using "-f rawvideo /dev/null"
[18:40:25 CEST] <soulshock> calculating PSNR on an already encoded file that is
[18:41:07 CEST] <kepstin> well, fastest is using "-f null" :)
[18:41:52 CEST] <kepstin> but if you're doing encoding and psnr measuring in one command, the overhead of putting stuff in a container is probably pretty minimal
[18:42:28 CEST] <soulshock> yeah. I was trying to calculate PSNR after encoding, but I guess I might as well do it while encoding
[18:43:15 CEST] <kepstin> hmm. actually.. i don't think you can measure it while encoding in ffmpeg
[18:43:23 CEST] <kepstin> it'll have to be a separate step after
[18:44:06 CEST] <soulshock> ah ok. so -f null it is
[18:45:02 CEST] <DHE> psnr is a filter. it gets 2 input decoded (raw) video frames to compare. what you do with the output is arbitrary, right?
[18:45:42 CEST] <soulshock> that's my understanding
[18:45:55 CEST] <soulshock> but you have to specify an output
[18:45:59 CEST] <kepstin> keep in mind that -f null still needs a filename, you can use anything, it's just ignored (/dev/null is fine)
[18:46:14 CEST] <DHE> actually, is the nullsink "filter" usable here? discard the video, then have it just pass audio through?
[18:46:54 CEST] <DHE> never used nullsink and the description says its mainly intended for C programming use, so this might not be practical
[18:47:09 CEST] <kepstin> the issue with using '-f mp4 /dev/null' when measuring psnr between two input videos is that it'll re-encode the video afterwards with x264 before throwing out the output
[18:47:14 CEST] <kepstin> so it'll be slower :/
[18:47:51 CEST] <soulshock> -i result.mp4 -i source.mov -filter_complex "scale=1920:1080,format=yuv420p,psnr" -f null -an NUL does indeed work
[18:58:08 CEST] <soulshock> seems like it can actually calculate psnr during encoding
[19:00:09 CEST] <DHE> libx264 does have an option to do that and output it to the log
[19:03:30 CEST] <soulshock> yeah ffmpeg supports it with -psnr
[19:28:35 CEST] <CFS-MP3> What's the option to ignore a missing stream? I'd swear I saw it somewhere but I can't find it
[19:28:52 CEST] <CFS-MP3> I mean, as if you have 3 input streams from UDP but one of htem is down and you want to just display the other 2
[19:29:00 CEST] <CFS-MP3> instead of having the whole output down
[19:44:52 CEST] <DelphiWorld> yo
[19:45:00 CEST] <DelphiWorld> will CUDA help with live stream transcoding?
[19:45:57 CEST] Action: DelphiWorld still dreaming QSV
[19:46:24 CEST] <basisbit> what does "yo" mean?
[19:46:45 CEST] <DelphiWorld> basisbit: still trying to make quickSync work on linux but no luck
[19:47:13 CEST] <basisbit> :-\
[19:51:26 CEST] <kepstin> in most cases, CUDA is unused for video transcoding; on nvidia cards, you normally use 'nvenc', which uses a dedicated video codec block rather than compute resources.
[19:52:16 CEST] <DelphiWorld> kepstin: ok, and how many stream do you think i can transcode
[19:52:38 CEST] <furq> two if you use nvenc unless you buy a quadro
[19:52:41 CEST] <kepstin> DelphiWorld: depends on the card. Consumer nvidia cards are limited - iirc to 2 streams?
[19:52:46 CEST] <furq> ^
[19:52:53 CEST] <DHE> most nvidia GPUs are locked to 2 streams. but it'll do two 1080p streams without issue
[19:53:00 CEST] <DHE> realtime at 30fps
[19:53:10 CEST] <furq> not sure if quicksync is artificially limited
[19:53:16 CEST] <furq> other than the fact that nobody seems to be able to get it to work
[19:53:22 CEST] <DHE> even the quadros require a high-end variant. usually they cost $1000 or more for unlocked streams
[19:53:24 CEST] <DelphiWorld> fuck quicksync
[19:53:26 CEST] <kepstin> i've gotten it working, but only via the vaapi interface
[19:54:04 CEST] <kepstin> and the benefits were... well, it's a bit faster than x264 ultrafast on my laptop, i guess?
[19:54:43 CEST] <DelphiWorld> kepstin: so you saying i could just use libx264?
[19:54:48 CEST] <DHE> x264's opencl support is hit and miss as to whether it will speed up encoding. sometimes it slows it down
[19:55:03 CEST] <DelphiWorld> ...
[19:55:07 CEST] <furq> doesn't it cause a slight quality hit as well
[19:55:10 CEST] <DHE> at the end of the day, x264 provides the best quality. if image quality matters, use it.
[19:55:22 CEST] <DHE> yes, it does. most video cards only support 32-bit floating point numbers
[19:55:38 CEST] <kepstin> yeah. only use a hardware encoder if your cpus are busy doing something else :/
[19:55:42 CEST] <furq> ^
[19:56:04 CEST] <furq> if x264 ultrafast isn't good enough for you in terms of quality then you're going to be disappointed by quicksync/nvenc anyway
[19:56:42 CEST] <furq> i guess it might be useful for decoding
[19:56:45 CEST] <DHE> that said, nvenc is handled by dedicated video encoding hardware. the CPU only has to copy the frames into the video cards and collect the encoded output. and when you're doing shadowplay even the first step is handled by the GPU
[19:56:52 CEST] <DelphiWorld> furq:  i want max number of stream with basic quality, i dont  want holywood style movi
[19:57:33 CEST] <DHE> then you'll be spending a grand on a Quadro video card. I estimate you'll get around 5 distinct 1080p30 encodes running on it at once for fairly minimal CPU
[19:58:03 CEST] <furq> you could probably get more than that for less money from an 8-core xeon
[19:58:04 CEST] <DHE> power usage should be fairly low since you won't be using the compute features
[19:58:07 CEST] <DelphiWorld> DHE: what about several 720x576 stream?
[19:58:24 CEST] <jkqxz> QuickSync is useful for low-power cases as well - you can transcode 300fps or so of 1080p with negligible power overhead.
[19:58:29 CEST] <DHE> that low? suddenly I'm disappointed
[19:58:37 CEST] <kepstin> or just get some big intel multi-core cpus, and use a bunch of x264 ultrafasts. You shouldn't have any issue doing (possibly even more than one) stream per core at SD resolution...
[19:58:56 CEST] <furq> yeah
[19:59:05 CEST] <DelphiWorld> hold on guys, rebooting
[19:59:08 CEST] <DHE> I've got a first gen e5-2690 which will easily run 10 at that resolution. and the new chips are only better
[19:59:29 CEST] <DHE> not talking about the 2698v4 capabilities. :)
[19:59:42 CEST] <furq> i get 300fps with 576p at ultrafast on a first gen i7
[19:59:54 CEST] <DHE> sounds about right
[20:00:03 CEST] <furq> a recent 8-core xeon should be pushing 20 streams easily
[20:00:27 CEST] <DHE> with hyperthreading it actually improves reasonably well.
[20:01:11 CEST] <jkqxz> Output from ultrafast is significantly worse than quicksync/nvenc will do, though.  Compare to superfast/veryfast.
[20:01:14 CEST] <furq> does x264 use avx at all
[20:01:36 CEST] <furq> or any of the new features since sandy bridge
[20:02:18 CEST] <DelphiWorld> back
[20:02:21 CEST] <DelphiWorld> so DHE ?
[20:02:39 CEST] <furq> 19:00:03 ( furq) a recent 8-core xeon should be pushing 20 streams easily
[20:02:43 CEST] <furq> that is the conclusion we came to
[20:02:59 CEST] <DHE> source code says yes, it has avx1 and 2 support
[20:03:00 CEST] <furq> if the power bill isn't a concern then just buy a fast xeon and use x264
[20:03:08 CEST] <kepstin> i'm pretty sure x264 uses some avx and/or avx2 stuff now
[20:03:11 CEST] <furq> and if you can get qsv working then great
[20:03:55 CEST] <DelphiWorld> furq: ok, what about a I7 6700 ?
[20:04:14 CEST] <furq> that's quad-core
[20:05:16 CEST] <kepstin> yeah, just checked, x264 has a pretty significant amount of avx2 assembly versions of prediction and quantization functions.
[20:05:22 CEST] <furq> how annoying
[20:05:56 CEST] <furq> i might finally have a reason to upgrade then
[20:07:32 CEST] <jkqxz> A 6700 should be somewhere close in total performance to an original E5-2690.
[20:08:35 CEST] <jkqxz> (Half as many cores which are close to twice as fast.  The worse memory and cache might pull it down for this, though.)
[20:08:47 CEST] <DHE> furq: the 2698 v4. crazy expensive, but very good.
[20:08:57 CEST] <furq> jkqxz: it's 2.9ghz vs 3.4ghz
[20:09:27 CEST] <furq> those sandy bridge xeons are pretty cheap now
[20:09:43 CEST] <DHE> yeah but cache support is important. I spent a lot of time with `perf` before I came to the conclusion that my server vendor screwed up
[20:10:11 CEST] <DHE> okay, that was more RAM than cache, but still
[20:10:19 CEST] <furq> it's not going to be twice as fast though
[20:10:31 CEST] <furq> IPC hasn't improved that much since sandy bridge
[20:10:41 CEST] <jkqxz> AVX2 as well.
[20:11:09 CEST] <kepstin> an annoying thing about avx2 is that the bigger xeon chips have to downclock when running lots of avx2 stuff because of power consumption :/
[20:11:12 CEST] <DHE> furq: in my case the vendor had put 1 stick of RAM in. memory access performance was a bottleneck. I got +30% improvement just by adding a second stick. and it wasn't caused by actually running out of RAM
[20:11:33 CEST] <jkqxz> And at comparable power (135W) the desktop one will run a lot faster than 3.4GHz.
[20:12:18 CEST] <furq> are sandy bridge xeons locked for overclocking
[20:12:19 CEST] <JEEB> hmm, so far I've heard that AVX2 in general requires downclock, which is why writing AVX2 optimizations is harder, since even if you save in cycles it doesn't help if the CPU has to downclock
[20:12:35 CEST] <furq> i know that westmere xeons aren't but that was before intel realised they could charge extra for it
[20:12:46 CEST] <JEEB> so you have to make sure your optimizations are actually faster by some amount or more
[20:13:20 CEST] <furq> yeah it'd be nice to see some benchmarks of how much difference avx2 actually makes with x264
[20:14:08 CEST] <JEEB> the optimizations that got into mainline x264 are faster in general I would guess, since x264 actually had nice review around there
[20:14:23 CEST] <JEEB> I think x265 was the project where they merged some AVX2 optimizations and then reverted them :D
[20:14:40 CEST] <JEEB> because while they were faster, they weren't faster enough
[20:14:48 CEST] <JEEB> (to actually make the whole thing faster with the downclock)
[20:14:51 CEST] <furq> http://www.newegg.com/Product/Product.aspx?Item=9SIA75M3GE9839
[20:14:55 CEST] <furq> that is really cheap though
[20:15:06 CEST] <furq> you could probably get a pair of those and a dual-socket board for roughly the same money as a new unlocked i7 and board
[20:15:14 CEST] <furq> assuming you hate your power company
[20:15:38 CEST] <Sirisian|Work> Is there a command in ffmpeg to take a jpg or png and reencode it stripping everything unneeded. I have a jpg that renders in the browser, but can't load it into a WebGL program. Hundreds of other jpgs work fine. I need a kind of clean command. (I tried 'convert' and even going from jpg to png then png back to jpg using -strip and it seems to preserve a kind of artifact that breaks this WebGL program).
[20:16:43 CEST] <furq> Sirisian|Work: jpegtran -copy none
[20:17:47 CEST] <kepstin> regarding avx2 in x264, dark shikari wrote some stuff: https://mailman.videolan.org/pipermail/x264-devel/attachments/20130423/ffd6bfb6/attachment-0001.pdf (pdf direct link)
[20:17:54 CEST] <jkqxz> Dual-socket boards are still pretty expensive.  The rush of Sandy Bridge generation servers being retired is pretty much upon us, though, so wait a bit and you will be able to get a silly machine on ebay for that sort of price.  (Or if you go now then big Nehalems are pretty much free.)
[20:17:57 CEST] <furq> i'm not sure what the cool kids are using for png these days, i use advpng because i usually have it installed
[20:18:20 CEST] <furq> and yeah someone in here linked a dual-socket westmere-ep board with 2x6-core xeons for like $350
[20:18:29 CEST] <furq> granted it was on ebay
[20:18:41 CEST] <furq> i think it had a bunch of sas disks bundled as well
[20:18:45 CEST] <furq> which is good if you want some nice magnets
[20:18:49 CEST] <DelphiWorld> DHE: i'll past you my transcoding cmd and tel me if i'm doing something bad
[20:19:18 CEST] <jkqxz> ebay will give you a whole server with that and >100GB of RAM in for that price now.
[20:19:27 CEST] <furq> i think this was an entire server
[20:19:33 CEST] <furq> it had a case and psu but no ram iirc
[20:19:46 CEST] <kepstin> interesting, looks like the avx2 optimizations for x264 were developed on prerelease hardware under nda, so they'd be ready when the chips were released.
[20:19:49 CEST] <furq> ddr3-1333 is plenty cheap though
[20:20:19 CEST] <DelphiWorld> guys
[20:20:44 CEST] <DelphiWorld> i'm wondring why no one from the ffmpeg dev didnt take any action into integrating ffmpeg with MumuDVB?
[20:21:11 CEST] <JEEB> nobody cared
[20:21:15 CEST] <DelphiWorld> the code is pretty old
[20:21:29 CEST] <DHE> necessity is the mother of invention. nobody with coding experience needs it, doesn't happen
[20:21:43 CEST] <JEEB> ^this
[20:22:06 CEST] <DelphiWorld> ;)
[20:22:07 CEST] <DHE> speaking of which, I have 2 bugfixes in my name in the git tree because my company needed them.
[20:22:19 CEST] <DelphiWorld> DHE: mumudvb or ffmpeg?
[20:22:22 CEST] <DHE> ffmpeg
[20:22:48 CEST] <DHE> which describes an alternative: pay someone to do it.
[20:23:52 CEST] <JEEB> also usually there tend to be other ways of doing things, and the thing you came up with just happens to be one of many possibilities
[20:32:06 CEST] <Sirisian|Work> furq, Didn't work. This is the strangest thing.
[20:37:55 CEST] <thebombzen> huh. FFmpeg 3.1.1 is now in the Arch repos. someone gonna change the #ffmpeg title?
[20:38:14 CEST] <thebombzen> it says "FFmpeg 3.0 is released" which seems a bit out of date, n'est-ce pas?
[20:38:32 CEST] <JEEB> that's just how much the people care about this channel's topic ;)
[20:38:53 CEST] <DHE> 5 months old now
[20:49:24 CEST] <furq> if the topic is being updated then ffmpeg is also in debian testing and stable backports now
[20:59:11 CEST] <DelphiWorld> back guys
[20:59:21 CEST] <DelphiWorld> see my current FFline:
[20:59:32 CEST] <DelphiWorld> ffmpeg  -i udp://@239.100.1.8:1234 -acodec libfdk_aac -ac 2 -ab 64k -ar 48000 -s 720x576 -r 29.97 -vcodec libx264 -vb 1000k -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709:fullrange=off  -vprofile  baseline -level 3.1 -f flv rtmp://myCDN.net/live/echorouktv
[21:00:01 CEST] <DelphiWorld> any commant?
[21:00:26 CEST] <CFS-MP3> furq, could you test this stream if you have a minute? http://54.73.134.173//live/Mosaic.stream/playlist.m3u8
[21:00:45 CEST] <CFS-MP3> I'm trying to find out where the hiccup comes from... I thought it was load but it isn't
[21:00:55 CEST] <CFS-MP3> I thought it could be network but that doesn't seem to be the case either
[21:01:08 CEST] <CFS-MP3> asking you since you assisted a bit yesterday
[21:07:18 CEST] <DelphiWorld> CFS-MP3: using wowza?
[22:13:04 CEST] <shincodex> um
[22:13:06 CEST] <shincodex> how to send
[22:13:11 CEST] <shincodex> fpic to ffmpeg configure
[22:13:35 CEST] <JEEB> --enable-pic I think
[22:13:48 CEST] <JEEB> although usually when you are getting that error it's your dependencies that have to be PIC'd :P
[22:15:41 CEST] <shincodex> no
[22:15:44 CEST] <shincodex> its cause i take ffmpeg
[22:15:48 CEST] <shincodex> shove em all in statics
[22:15:55 CEST] <shincodex> then make a C++ code around it
[22:16:04 CEST] <shincodex> make it exportable and wala libffmpeg.so
[22:16:16 CEST] <shincodex> i just set fpic on it and was like why no ffmpeg work oh...
[22:16:18 CEST] <shincodex> no fpic
[22:17:11 CEST] <CFS-MP3> Are named piped known to work? All info I find online is contradictory
[22:17:18 CEST] <shincodex> i couldnt find it cause i kept looking for fpic
[22:17:23 CEST] <shincodex> instead of pic
[22:17:51 CEST] <shincodex> boom mess compiles
[22:18:33 CEST] <DHE> CFS-MP3: named pipes work, but not all formats support streaming without seek capability
[22:18:51 CEST] <shincodex> great
[22:18:57 CEST] <shincodex> This program has stopped working
[22:18:59 CEST] Action: shincodex suicides
[22:19:48 CEST] <CFS-MP3> DHE: What I'm trying to do is create a mosaic of 9 channels in a 3x3 grid
[22:20:04 CEST] <DHE> --enable-pic is needed. extra-cflags isn't enough because the ASM needs it as well
[22:20:06 CEST] <CFS-MP3> in theory it works, but the playback hiccups a lot
[22:20:17 CEST] <DHE> live channels? oh dear...
[22:20:30 CEST] <CFS-MP3> DHE yes
[22:20:58 CEST] <DHE> just opening 9 inputs and analyzing them might take long enough that your buffers might overflow
[22:20:58 CEST] <CFS-MP3> furq suggested to split the work into 3 ffmpeg streams (one for each row) and then combine the output with another one
[22:21:06 CEST] <DHE> that might help
[22:21:08 CEST] <shincodex> might I ask
[22:21:22 CEST] <shincodex> Why use the tool pr? when mingw msys dont include this tool?
[22:21:39 CEST] <shincodex> i get yasm not being includeing and fetching it
[22:21:42 CEST] <CFS-MP3> DHE so the idea is to use named pipes between the first 3 ones and the final one
[22:21:58 CEST] <CFS-MP3> you can check the stream here: http://54.73.134.173//live/Mosaic.stream/playlist.m3u8
[22:22:01 CEST] <CFS-MP3> it more or less works
[22:22:12 CEST] <CFS-MP3> except when it hiccups which is quite often
[22:23:08 CEST] <DHE> not bad, but yeah I've seen codec glitches
[22:24:25 CEST] <CFS-MP3> that's just one ffmpeg
[22:24:28 CEST] <CFS-MP3> 25275 captions  20   0 2508828 1.457g  14552 R 150.7  9.4  16:34.16 ffmpeg
[22:24:32 CEST] <CFS-MP3> 150.7
[22:24:41 CEST] <CFS-MP3> the CPU is a quadcore i5
[22:25:06 CEST] <DHE> that's a very large process memory footprint
[22:25:06 CEST] <CFS-MP3> so I'm hopeful that I can somehow improve the usage...
[22:25:15 CEST] <DHE> and that's 2 instances of ffmpeg you've pasted already using the majority of your CPU time
[22:25:46 CEST] <CFS-MP3> 2?
[22:26:03 CEST] <DHE> well, at 150% CPU I'm extrapolating
[22:26:11 CEST] <DHE> i5 maxes out at 400%
[22:26:38 CEST] <CFS-MP3> Yes of course...
[22:26:50 CEST] <CFS-MP3> 150% comes from one ffmpeg doing 6 channels plus the final encode
[22:27:04 CEST] <DHE> hmm... that seems more reasonable then
[22:27:06 CEST] <CFS-MP3> With 3 it goes to 80% or so
[22:27:18 CEST] <furq> does either method work
[22:28:14 CEST] <CFS-MP3> furq my attempts yesterday with pipes didn't work - I tried pipe:// but output went to terminal (?)
[22:28:34 CEST] <furq> what happens without it
[22:28:45 CEST] <CFS-MP3> without pipe:// it tries to overwrite the pipe with a regular file
[22:29:06 CEST] <DHE> a named pipe isn't significantly different from a file. make it with mkfifo and just point to it as if it were a file
[22:29:38 CEST] <furq> are you sure it's overwriting it
[22:29:58 CEST] <furq> it always prompts if the output filename exists
[22:30:03 CEST] <CFS-MP3> DHE that was what I did yesterday but let me retry, I was tired so maybe I made a mistake
[22:31:04 CEST] <furq> failing that then -f nut - > /tmp/pipe1
[22:35:18 CEST] <CFS-MP3> File '/tmp/fifo1' already exists. Overwrite ? [y/N]     Last message repeated 7 times
[22:35:18 CEST] <CFS-MP3> N
[22:35:18 CEST] <CFS-MP3> Not overwriting - exiting
[22:35:48 CEST] <furq> what happens if you say yes
[22:35:50 CEST] <CFS-MP3> Let's see if I say Y :-)
[22:36:02 CEST] <furq> i've never needed to do it but you get the same prompt if you write to /dev/null
[22:36:18 CEST] <CFS-MP3> trying... it takes a while to ask though since it has to open all input files
[22:38:40 CEST] <CFS-MP3> OK, with y it seems to be writing to the fifo, not replacing it with a regular file
[22:39:52 CEST] <CFS-MP3> let's add -y somewhere...
[22:42:36 CEST] <CFS-MP3> OK... so that seems to work...
[22:43:58 CEST] <CFS-MP3> what's the most logical output for the first ffmpeg to send to the fifo?
[22:44:20 CEST] <CFS-MP3> I currently have         -vcodec libx264 -g 60 -vprofile main -vbsf h264_mp4toannexb -strict experimental -preset ultrafast -threads 0 -deinterlace -f mpegts /tmp/fifo1
[22:44:33 CEST] <CFS-MP3> which is just what I need for the final thing
[22:49:41 CEST] <CFS-MP3> With this
[22:49:42 CEST] <CFS-MP3>         c:v rawvideo /tmp/fifo1
[22:50:03 CEST] <CFS-MP3> I get [NULL @ 0x3463600] Unable to find a suitable output format for 'c:v'
[22:50:03 CEST] <CFS-MP3> c:v: Invalid argument
[22:50:28 CEST] <furq> you forgot a -
[22:51:08 CEST] <furq> and don't use x264 for the intermediate files, you'll need to reencode to use hstack at the end
[22:51:55 CEST] <Bray90820_> Can someone tell me why I'm getting this error?
[22:51:55 CEST] <Bray90820_> http://pastebin.com/raw/ctw9EahT
[22:52:30 CEST] <furq> [mp4 @ 0x7fc51a822c00] Could not find tag for codec wmav2 in stream #1, codec not currently supported in container
[22:52:35 CEST] <furq> you can't store wma in mp4
[22:53:05 CEST] <CFS-MP3> furq, for now I just want to feed the fifo with the raw video :-)
[22:53:16 CEST] <furq> -c:v rawvideo
[22:53:22 CEST] <furq> and yeah that's what you should use anyway
[22:53:25 CEST] <CFS-MP3> furq yes, have that
[22:53:33 CEST] <Bray90820_> furq: Can I convert the audio to something else?
[22:53:44 CEST] <furq> CFS-MP3: you're missing the - before c:v
[22:53:46 CEST] <CFS-MP3> how do I pick the labeled stream I want to copy?
[22:53:49 CEST] <furq> Bray90820_: -c:a aac
[22:53:52 CEST] <CFS-MP3> furq, yes, I added that
[22:53:58 CEST] <CFS-MP3> so now I have
[22:54:15 CEST] <CFS-MP3> Filter scale has an unconnected output
[22:54:22 CEST] <furq> pastebin the full command
[22:54:23 CEST] <Bray90820_> furq: -c:a "video.mp4?
[22:54:34 CEST] <furq> what
[22:55:35 CEST] <Bray90820_> Sorry that was a little botched would I put -c:a acc before the output file?
[22:55:38 CEST] <CFS-MP3> furq: http://pastebin.com/8Sd6L9QE
[22:55:52 CEST] <furq> Bray90820_: yes
[22:55:55 CEST] <Bray90820_> Ok thanks
[22:55:59 CEST] <furq> replace -c:a copy with -c:a aac
[22:56:40 CEST] <Bray90820_> Sorry is it aac or acc
[22:56:44 CEST] <furq> aac
[22:56:56 CEST] <Bray90820_> Thanks
[22:57:02 CEST] <furq> CFS-MP3: that looks like it should work
[22:57:17 CEST] <furq> although you can just do
[22:57:22 CEST] <Bray90820_> it seems to be working now thanks
[22:57:35 CEST] <furq> [out0][out1][out2] hstack=inputs=3,scale=w=iw/2:h=ih/2 [out]
[22:57:37 CEST] <CFS-MP3> Filter scale has an unconnected output
[22:58:39 CEST] <CFS-MP3> Yes I have lots of intermediate stuff... for clarity (for myself, since I'm learning). I'll get rid of that a bit later
[22:59:58 CEST] <kepstin> it might be worthwhile to use something like '-f nut' rather than e.g. '-f rawvideo' so you don't have to manually specify the video size and codecs on the next ffmpeg in the chain.
[23:03:54 CEST] <CFS-MP3> thanks kepstin
[23:03:57 CEST] <CFS-MP3> so:
[23:03:58 CEST] <CFS-MP3> http://pastebin.com/b40bZ8BJ
[23:04:00 CEST] <CFS-MP3> that seems to work
[23:04:31 CEST] <CFS-MP3> so part two - take that as input and generate the output... let's see if I can get it to work
[23:04:44 CEST] <kepstin> you might have to manually specify -c:v rawvideo
[23:04:56 CEST] <kepstin> it'll default to encoding to mpeg4, probably not what you want :)
[23:07:01 CEST] <CFS-MP3> yes, I'm horrified at the current quality
[23:07:52 CEST] <CFS-MP3> but even though it looks horrible, it's reading from the pipe
[23:07:55 CEST] <CFS-MP3> and encoding it
[23:07:58 CEST] <CFS-MP3> so that's quite progress
[23:10:18 CEST] <CFS-MP3> OK, got it with raw video... now I'm at the point in which I'm getting excited
[23:23:12 CEST] <CFS-MP3> OK, so it's working, but I have the same hiccup problem
[23:23:20 CEST] <CFS-MP3> is this warning serious?
[23:23:21 CEST] <CFS-MP3> [mpegts @ 0x4359ae0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 32)
[23:23:21 CEST] <CFS-MP3> [graph 0 input from stream 0:3 @ 0x4480b60] Changing frame properties on the fly is not supported by all filters.
[23:23:21 CEST] <CFS-MP3>     Last message repeated 2 times
[23:23:21 CEST] <CFS-MP3> [mpegts @ 0x43c5360] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[23:23:27 CEST] <CFS-MP3> I mean could that explain it?
[23:25:40 CEST] <furq> you need to increase it once per input
[23:26:52 CEST] <CFS-MP3> furq I just did (to 512) and I still get the warning
[23:34:43 CEST] <CFS-MP3> OK so now I have 3 ffmpegs
[23:34:45 CEST] <CFS-MP3> 16058 captions  20   0 1181832 448504  13808 R  73.9  2.7   3:21.51 ffmpeg
[23:34:45 CEST] <CFS-MP3> 15999 captions  20   0 1190588 617964  13668 R  73.6  3.8   3:38.90 ffmpeg
[23:34:45 CEST] <CFS-MP3> 16135 captions  20   0  681052 326332  13580 S  35.1  2.0   1:36.43 ffmpeg
[23:34:59 CEST] <CFS-MP3> all of them below 100%, and the server itself is below 300% at all times
[23:35:03 CEST] <CFS-MP3> which seems quite good
[23:35:13 CEST] <CFS-MP3> but the video still stutters...the bastard
[23:36:22 CEST] <Jpacker> Hello, I'm using FFMPEG to Mix Two Audio files but there is a very small delay with the two. I've read that -itsoffset only applies to Video streams, is there any other workaround to get the audio synced?
[23:40:10 CEST] <thebombzen> Jpacker: if you use the "-ss" option /before/ the input, it'll only seek that one stream.
[23:40:37 CEST] <furq> CFS-MP3: does it stutter with fewer inputs
[23:40:39 CEST] <thebombzen> so if you have ffmpeg -i first.wav -ss 0.5 -i second.wav, it'll seek to 0.5 seconds in second.wav, but it'll start first.wav as normal.
[23:40:46 CEST] <furq> in particular with one input
[23:41:16 CEST] <furq> actually, before you test that
[23:41:23 CEST] <furq> does it stutter if you output to a file instead of to hls
[23:42:10 CEST] <Jpacker> Thank you for such a fast response! Going to try that now.
[23:43:01 CEST] <CFS-MP3> furq no, if I just take each of the streams individually and encode them they play perfectly
[23:45:02 CEST] <CFS-MP3> furq you can check this out: http://54.73.134.173/live/ngrp:sub_BBC_One.stream_all/playlist.m3u8
[23:45:12 CEST] <CFS-MP3> that plays perfectly all the time
[23:46:04 CEST] <thebombzen> furq: CFS-MP3: is there any reason not to do all that in a filtergraph?
[23:46:14 CEST] <thebombzen> like why do you need 3 FFmpegs
[23:47:05 CEST] <Jpacker> I'm getting an unrecognized option thebombzen, if I wanted to seek the first wav I would call ffmpeg -ss 0.5 -i first.wav?
[23:47:19 CEST] <thebombzen> yea
[23:47:40 CEST] <CFS-MP3> thebombzen yes, I couldn't get one single ffmpeg instance to take all the CPU
[23:48:06 CEST] <CFS-MP3> so I thought (but I might be wrong) that was causing the stuttering
[23:48:15 CEST] <thebombzen> ah
[23:48:22 CEST] <thebombzen> stupid question:
[23:48:25 CEST] <thebombzen> did you try -threads?
[23:48:46 CEST] <CFS-MP3> Yes, with lots of different values and even positions in the command line :-)
[23:48:52 CEST] <thebombzen> Jpacker: not sure what you mean by unrecognized option, cause -ss works. see: https://ffmpeg.org/ffmpeg.html#Main-options for details with -ss
[23:49:13 CEST] <thebombzen> CFS-MP3: huh. I don't like named pipes just because there's a large pipe-wait. but then again if your cpu is the limiting factor I guess not...?
[23:50:31 CEST] <CFS-MP3> thebombzen I can live with the pipe-wait, I mean, I don't care that instead of live is now live +3 seconds
[23:50:40 CEST] <CFS-MP3> it's the stuttering that is annoying me
[23:51:45 CEST] <Jpacker> I believe it worked thebombzen, had an extra space in there. Thank you :)
[23:51:53 CEST] <thebombzen> Jpacker: yw :D
[23:52:00 CEST] <thebombzen> CFS-MP3: what do you mean by stuttering?
[23:52:07 CEST] <thebombzen> do you mean, like, FFmpeg is blocking on input?
[23:52:45 CEST] <thebombzen> cause that's what I mean by pipe-wait. named pipes have very small buffers so if you transcode through a pipe, frequently you'll get I/O blocking
[23:53:12 CEST] <thebombzen> I tried the filtergraph -lavfi '[0:v] [1:v] [2:v] hstack=inputs=3 [row1], [3:v] [4:v] [5:v] hstack=inputs=3 [row2], [6:v] [7:v] [8:v] hstack=inputs=3 [row3], [row1] [row2] [row3] vstack=inputs=3 [v]' -map '[v]' and that worked with a test
[23:53:22 CEST] <thebombzen> although didn't do any profiling.
[23:54:15 CEST] <thebombzen> CFS-MP3: try doing this ffmpeg -i <inputs> <conversion> -f matroska - 2>/dev/null | ffmpeg -f matroska -i - -c copy out.file
[23:54:17 CEST] <CFS-MP3> thebombzen stuttering as in playback the video stops for a second or two from time to time and then continues happily for a bit, etc
[23:54:34 CEST] <CFS-MP3> the inputs are UDP streams and so is the output
[23:54:42 CEST] <thebombzen> then the second ffmpeg process will print a "playback speed" in units of times. i.e. 1.5x speed, etc.
[23:55:10 CEST] <thebombzen> if it's lower than 1.0x speed, then try it without doing a pipe. and see if it's lower than 1.0. if htere's a difference, the I/O blocking is likely.
[23:55:39 CEST] <CFS-MP3> playback is over 1x at all times (now, but with just one graph doing all 9 inputs it was around 0.6)
[23:56:11 CEST] <thebombzen> so when you play the stream it stutters. okay.
[23:56:17 CEST] <thebombzen> stupid question: did you try another player like MPV?
[23:57:23 CEST] <thebombzen> also it's possible that it's a networking problem. i.e. there's a UDP bottleneck somewhere
[23:57:55 CEST] <thebombzen> and that it's not FFmpeg's fault. haven't done much UDP programming other than sending video packets over UDP
[23:58:17 CEST] <thebombzen> wait that's relevant haha. but not really the same application
[23:59:08 CEST] <CFS-MP3> the thing is that only this stream is having the problem
[23:59:31 CEST] <CFS-MP3> all others are working fine, but they come from ffmpeg just transcoding
[23:59:39 CEST] <CFS-MP3> can mpv play a network stream?
[23:59:50 CEST] <furq> yeah
[00:00:00 CEST] --- Thu Jul 21 2016



More information about the Ffmpeg-devel-irc mailing list