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

burek burek021 at gmail.com
Fri Feb 17 03:05:01 EET 2017


[00:00:32 CET] <vlad_> faLUCE: the only issue now is that the video never ends...
[00:01:16 CET] <vlad_> do I still need to send a null frame?
[00:01:44 CET] <faLUCE> vlad_: it's not clear what you are trying to do. Explain better
[00:03:19 CET] <vlad_> faLUCE: I am trying to edit this code to use h264 codec: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/VideoCommon/AVIDump.cpp
[00:04:32 CET] <faLUCE> vlad_: you have to explain what you want to obtain, not what you are modifying
[00:05:32 CET] <faLUCE> are you trying to make a h264 avi file?
[00:13:34 CET] <ranamat> llogan: yes that's correct
[00:20:26 CET] <vlad_> faLUCE: the goal is to produce an h264-encoded flv frame by frame
[00:20:39 CET] <vlad_> without knowing when the stream will end
[00:21:36 CET] <faLUCE> vlad_: then leave that code
[00:21:43 CET] <faLUCE> and use the api doc examples
[00:22:54 CET] <faLUCE> in doc/examples/you can find decoding-encoding.c
[00:24:38 CET] <vlad_> faLUCE: well I need to embed into that codebase, and that file already does exactly what I want with a different codec
[00:25:07 CET] <faLUCE> vlad_: pvt msg
[00:30:16 CET] <jarkko> any idea if there are new ways to make these ffmepg x264 and x265 still better?
[00:34:23 CET] <klaxa> define "better"?
[00:35:07 CET] <jarkko> better compression ratio, better looking in visual
[00:35:13 CET] <jarkko> something like that
[00:36:15 CET] <JEEB> if you are talking about code-wise improvements then there's *always* ways to make something better. with x264 it generally tends to be less obvious than with something newer like x265 :P
[00:36:29 CET] <JEEB> if you area talking about parameters then both in theory can be maxed out with -preset placebo
[00:36:37 CET] <JEEB> (and by setting a very long keyint)
[00:37:30 CET] <JEEB> I think I already once went through this earlier :P
[00:37:59 CET] <jarkko> i tried that placebo once and its too slow...
[00:38:10 CET] <JEEB> well, d'uh
[00:38:53 CET] <jarkko> slower and slowest modes arent so bad
[00:39:23 CET] <klaxa> it's code not magic
[00:39:30 CET] <JEEB> as some people say in Finland, "ihan kuin olisit yllättyny että kovemmat algoritmit ja vähempi asioiden (mahdollisuuksien) skippailu on hitaampaa kuin vähemmät optimit algoritmit tai enempi skippailua"
[00:40:15 CET] <JEEB> of course, nothing stops someone from writing more asm or coming up with optimizations that don't cost the compression ratio
[00:40:40 CET] <jarkko> nojoo mutta se on yllätävää hitaammalla alcolla pääsee melkein samaan lopputulokseen kuin niillä hitaimmilla
[00:40:47 CET] <faLUCE> hello. With snd_pcm_hw_params_set_period_size_near() (alsa) I set how many audio samples to read at each interrupt. Then I read all of them with snd_pcm_readi() (alsa too). This means that the buffer size must be a multiple of the value set with snd_pcm_hw_params_set_period_size_near(). Now, if I want to encode them, every encoder wants another buffer of samples for each encode() call. Then I ask: do I have to set the
[00:40:49 CET] <faLUCE> samples' buffer size of the input with a value that depends of the chosen encoder (so that the encoder's buffer_size is a multiple of the input buffer_size)? Otherwise, to which value can I set the input's buffer size regardless of the encoder that I will choose later? (I don't want to solve that by making copies of the samples)
[00:41:24 CET] <JEEB> jarkko: that's the beauty of optimization :P you learn where you can skip or not do full search etc
[00:41:52 CET] <JEEB> x264 has what, like 13 years behind it now?
[00:42:10 CET] <JEEB> plus CPUs have become faster quite a bit
[00:42:38 CET] <jarkko> but resolutions are also higher now
[00:42:57 CET] <JEEB> but the general complexity of the format doesn't change
[00:43:10 CET] <jarkko> but its more pixels...
[00:43:19 CET] <JEEB> and of course some stuff is just SIMD - if you get new instructions in CPUs that let you do things even faster, if you make software use it - it goes faster
[00:43:30 CET] <jarkko> i got kaby lake
[00:43:42 CET] <jarkko> and its quite fast encoding with ffmeg
[00:43:44 CET] <JEEB> SSE2, SSSE3, AVX2 are some of the things used quite a bit in x264
[00:44:34 CET] <JEEB> anyways, I really don't know what you want to achieve by asking those theoretical questions
[00:44:53 CET] <jarkko> theoretical answers
[00:45:10 CET] <jarkko> i just wonder how much we can improve from here
[00:45:25 CET] <JEEB> we can't really calculate that now can we
[00:45:42 CET] <JEEB> because there's factors like age of software and how motivated people used to be
[00:45:52 CET] <JEEB> how motivated are people now
[00:45:54 CET] <JEEB> etc
[00:46:19 CET] <JEEB> but theoretical limit there is none with the improvement in computing
[00:47:24 CET] <jarkko> but there is somekind of limits how you can store information
[00:47:35 CET] <jarkko> unless you build some decoding info on players
[00:48:04 CET] <JEEB> yes, there's compression limits with lossless compression
[00:48:48 CET] <JEEB> and with lossy you have the minimum bit rate of a stream defined by how much overhead comes from the NAL units themselves
[00:48:56 CET] <JEEB> (in case of AVC and HEVC)
[00:49:07 CET] <JEEB> but that is stuff related to the format, not the encoders
[00:49:18 CET] <jarkko> how low those values can be
[00:49:27 CET] <JEEB> thus you asking about x264|x265 is not correct, you would be asking about AVC|HEVC or H.264|H.265
[00:50:16 CET] <jarkko> but the libraries at compile time are x264 and x265
[00:50:25 CET] <JEEB> yes, those are implementations of a format
[00:50:30 CET] <JEEB> IMPLEMENTATIONS
[00:50:32 CET] <JEEB> software
[00:50:34 CET] <klaxa> you could calculate the information entropy for a video
[00:50:42 CET] <klaxa> and that would be the minimum amount of bits for that video
[00:50:45 CET] <JEEB> they implement a format specified in a standard
[00:50:58 CET] <JEEB> klaxa: true, limited to that specific clip on some level
[00:51:00 CET] <klaxa> for a perfect coder without loss
[00:51:05 CET] <JEEB> yes, lossless
[00:51:31 CET] <jarkko> there was a site that i read some years back doom9.org any idea what happened to it
[00:51:31 CET] <JEEB> as I noted, lossless has that stuff - lossy is a much more hairy piece of discussion
[00:51:33 CET] <klaxa> that's the most theoretical answer i can come up with
[00:51:34 CET] <jarkko> it doesnt update anymore
[00:52:00 CET] <JEEB> doom9 is around, for years the forum has been the only active place
[00:52:14 CET] <jarkko> but he updated the news section frequently
[00:52:24 CET] <jarkko> not anymore in years
[00:52:35 CET] <JEEB> the swede stopped caring :P
[00:52:44 CET] <jarkko> got jailed on piracy?
[00:52:46 CET] <JEEB> no?
[00:52:55 CET] <JEEB> just stopped caring about that side of the site
[00:53:12 CET] <JEEB> since the forums were the primary thing in there for a very, very long time
[00:53:13 CET] <jarkko> i think he had compression tests of formats
[00:53:19 CET] <JEEB> well yes
[00:53:22 CET] <jarkko> lots of pictures
[00:53:33 CET] <JEEB> but that's not theoretical and tests implementations. with caveats
[00:53:51 CET] <JEEB> you don't get your answer of "how far can you optimize this shit" from there
[00:54:41 CET] <JEEB> depending on what exactly was tested and with what kind of content, you can gain a specific view of how some encoders perform
[01:09:43 CET] <lops> Hello channel. Im playing with ffmpeg and i have a question: what does -x264opts do?
[01:09:45 CET] <lops> thank you
[01:10:58 CET] <ranamat> it's used to overwrite default presets used for libx264
[01:11:36 CET] <jarkko> https://github.com/chenm001/x266 ??
[01:12:13 CET] <JEEB> jarkko: that guy also before had something called x265 and there is no next-gen format yet from ISO/IEC or ITU-T
[01:12:23 CET] <JEEB> lops: it's a worse version of -x264-params
[01:12:48 CET] <lops> so better use -x264-params ?
[01:12:53 CET] <JEEB> yes
[01:12:58 CET] <JEEB> basically -x264-params passes key=value pairs straight to the libx264 library instead of someone having to add an option for something
[01:13:36 CET] <JEEB> lops: if I recall correctly x264opts had its own list of what it decided to pass to libx264, while x264-params doesn't try to limit things to a random list
[01:14:07 CET] <JEEB> lops: generally you shouldn't have to use either unless you have some very specific thing that you can't set through the libx264 avcodec wrapper's options
[01:15:06 CET] <lops> like constant bit rate. At first i was trying to get a constant bit rate of 10000k but the output was much less, even when using mminrate maxrate and bufsize
[01:15:12 CET] <jarkko> does anyone anymore use divx or xvid?
[01:15:42 CET] <lops> I used may ffmpeg gui's to get the bitrate i want but the output result was with much less bitrate
[01:16:13 CET] <JEEB> lops: minrate is a hack so you shouldn't be used, maxrate and bufsize should be set'able from the avcodec wrapper
[01:16:59 CET] <lops> So if i want 10000Kbps just with maxrate is enough?
[01:17:16 CET] <JEEB> with bufsize and matching rate control parameter
[01:17:33 CET] <JEEB> <main rate control> + VBV/HRD <maxrate|bufsize>
[01:17:37 CET] <JEEB> this is the general thing
[01:18:02 CET] <JEEB> if you do not get correct maxrate over bufsize then you just tell with the main rate control parameter that you want more bits to be used
[01:18:22 CET] <JEEB> the only thing I'm not sure if the avcodec wrapper does with a "proper" option is the stuffing mode
[01:18:35 CET] <lops> like this: ffmpeg -i Untitled.avi -preset:v veryslow -profile:v high -c:v libx264 nal-hrd=cbr:force-cfr=1 -b:v 10000k  -maxrate 10000k -bufsize 10000k out.mp4 ?
[01:18:44 CET] <JEEB> drop the profile:v high
[01:19:02 CET] <JEEB> that does nothing since that's the default and libx264 will drop the profile if you're not using any features from high profile
[01:19:42 CET] <JEEB> and yes, if you really need that stuffing crap then -x264-params "nal-hrd=cbr:force-cfr=1" might be needed :P
[01:20:04 CET] <JEEB> I'd rather just set rate control higher to be honest
[01:20:11 CET] <JEEB> as in, using more bits
[01:20:24 CET] <JEEB> which mode (CRF or bit rate based) is up to you
[01:20:40 CET] <JEEB> oh
[01:20:50 CET] <JEEB> lops: also I think the stuffing is not compatible with mp4
[01:20:55 CET] <JEEB> so don't do that
[01:21:16 CET] <JEEB> if you really need that stuffing crap you output either to a raw AVC bit stream or MPEG-TS or something
[01:21:27 CET] <lops> stuffing? what is that?
[01:21:37 CET] <JEEB> nal-hrd=cbr
[01:21:43 CET] <JEEB> that's stuffing if I recall correctly
[01:21:55 CET] <JEEB> so if the encoder uses less bits, the encoder will STUFF SHIT IN THERE
[01:22:03 CET] <JEEB> to hit your maxrate over bufsize
[01:22:15 CET] <JEEB> it's of very limited use
[01:24:07 CET] <JEEB> oh right
[01:24:20 CET] <JEEB> yea, I remembered correctly :P
[01:24:59 CET] <lops> so what to used instead of all that crap?
[01:24:59 CET] <JEEB> there's a separate option for it as well, but the explanation notes it "--filler                Force hard-CBR and generate filler (implied by --nal-hrd cbr)"
[01:25:40 CET] <llogan> why do you want that?
[01:26:06 CET] <jarkko> what audio codec should i use for speech in animation
[01:26:11 CET] <jarkko> stereo mode
[01:27:34 CET] <thebombzen> jarkko: if you're encoding lossy stuff there's really no reason not to use opus, unless whoever you're encoding it for doesn't support it
[01:27:49 CET] <thebombzen> if you're encoding speech tho you might just wanna use flac
[01:28:25 CET] <jarkko> is this opus new codec or an old?
[01:28:35 CET] <jarkko> i have only see it mentioned only few days ago
[01:28:59 CET] <JEEB> lops: there's a really hard question I need to ask you to be able to help you
[01:29:07 CET] <JEEB> "what is it that you actually want"
[01:29:23 CET] <JEEB> not what you're currently doing with your parameters, but what is the end result you want
[01:31:04 CET] <lops> Well im just playing around to get to know more ffmpeg and bitrate manipulation. All came when using vegas pro to encode a video and gave me a big (bit rate) output when usiing cbr but when using other encoders like handbrake, avidemux i was not able to hit for example 10 mbps even when the 10000k bit rate was set
[01:32:53 CET] <JEEB> if all you care is an average bit rate over the whole file, you use 2pass (two runs, one with -pass 1 and one with -pass 2 with just -preset slowest_preset_you_can_take and -b:v YOUR_BIT_RATE)
[01:33:12 CET] <JEEB> if you don't care about the bit rate but you care about the quality, 1pass and CRF is your choice
[01:33:33 CET] <JEEB> in which case you encode, say, 2500 frames of the source clip at different CRF values
[01:33:43 CET] <JEEB> start at 23 and go down if it looks bad, go up if it looks good
[01:33:56 CET] <JEEB> end result is that you find your highest CRF value that still looks good for you
[01:35:10 CET] <ranamat> JEEB: i'm working with an H264 encoded video that appears to have keyframe gaps in it, there's a particular section of the video where there's 7 minutes of missing keyframes... but doesn't appear to be any actual video or audio loss (video playback is steady but in VLC for example, you will see the video duration from 10:00 and immediately jump to 17:00), any idea on what i can try to fix this?
[01:35:35 CET] <JEEB> CRF 1pass and 2pass ABR are pretty much equivalent in the quality you get out of them given certain parameters, so which you utilize is up to your use case
[01:35:49 CET] <JEEB> if you absolutely want to hit that specific file size over the whole clip, then 2pass ABR
[01:36:03 CET] <JEEB> if you just want to encode similar clips with similar quality, find your highest CRF value you can take
[01:36:12 CET] <JEEB> and that's the most compression you will get out of that content
[01:36:23 CET] <JEEB> (so that it still looks good for you)
[01:36:54 CET] <JEEB> lops: read through what I wrote and you should see your base requirement better
[01:38:53 CET] <JEEB> ranamat: I don't think you can do jack shit other than re-encode it if you for some weird-ass reason require Random Access Points there. that is expecting your container to have everything flagged correctly.
[01:40:07 CET] <lops> Thanks JEEB
[01:40:57 CET] <ranamat> that's what i figured, i did try re-encoding it but the problem is that i can't actually seek to any position where the gaps were previously even though the new encoded video does not contain the gaps.
[01:42:20 CET] <JEEB> lops: so basically a) rate control mode (CRF and 2pass ABR have their own uses I explained and you use one of them depending on your use case) b) preset (you choose the slowest that is fast enough for you) c) possible additional limitations due to abiding to some limited subset of the format (buggy/crappy hardware decoders, broadcast, actual blu-ray mastering...)
[04:07:11 CET] <vlad_> is it ok to av_freep an avformatcontext?
[04:08:21 CET] <vlad_> or shoud I be using avformat_free_context?
[04:46:05 CET] <vlad_> what should I do about "WriteN, RTMP send error"?
[05:07:49 CET] <vlad_> in general, how would I translate CLI ffmpeg options such as "-c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv" to C++?
[05:31:43 CET] <FishPencil> So I'm getting some curious results when doing benchmarking between an i5-6300U and an i7-3610QM. The i7 did it in 3231.347s, and the i5 did it in 4697.4115s. Assuming my math is correct, the i7 was 145.37% faster than the i5. The i5 is also three generations newer, so I'm puzzled.
[05:51:17 CET] <FishPencil> My math was not correct, as it is only 68.79% faster
[07:10:21 CET] <vlad_> hey, anyone know how to solve "WriteN, RTMP send error 32"?
[08:46:37 CET] <chuprin> hi, guys. i want to stream input to server and save it to file at the same time (flv and mpegts format) without reencoding. i tried to use tee muxer but stuck with a bug https://trac.ffmpeg.org/ticket/4270. could you suggest workaround/fix? i cannot use processes piping.
[08:48:45 CET] <pihpah> How can I figure out size of moov atom? I am writing a video streamer so I have to know approximate size of data I have to send to video player in the very first request.
[08:49:17 CET] <chuprin> this is my log http://pastebin.com/j7sPimsg
[09:08:46 CET] <xtina> hey guys. i'm streaming audio and video via ffmpeg. i'm writing audio to a FIFO pipe in /tmp with arecord, and video similarly with raspivid. then both pipes feed into ffmpeg
[09:08:55 CET] <xtina> i'm experiencing perfect video but audio that overruns and drops frames every two minutes
[09:09:01 CET] <xtina> the fascinating thing is that I've checked on the size of my audio and video pipes
[09:09:11 CET] <xtina> after 4 minutes of streaming, the audio pipe is about 100MB large. the video pipe is ... 0 bytes
[09:09:24 CET] <xtina> what's going on here? i suspect this is related to my problem, but i don't understand
[09:11:03 CET] <vlad_> xtina: how did you get the piping to work?
[09:11:10 CET] <vlad_> I tried that but it failed
[09:11:26 CET] <xtina> well, it's not working, as you can see by my question
[09:11:28 CET] <xtina> but here is my command
[09:11:30 CET] <vlad_> I couldn't get ffmpeg to understand the ppm stream I was writing to the pipe
[09:11:47 CET] <xtina> http://pastebin.com/qAE6vXFs
[09:11:50 CET] <vlad_> I don't have any audio anyways
[09:12:10 CET] <xtina> well, i'm not even sure you need named pipes, but i'm on a zero and everything is slow
[09:12:13 CET] <xtina> you might be able to do everything in ffmpeg
[09:13:10 CET] <vlad_> xtina: wow we're kind of doing the same thing
[09:13:12 CET] <DHE> 100 megs of audio is multiple minutes. you sure the audio specs are right? mono vs stereo? 8bit vs 16bit? etc
[09:14:18 CET] <xtina> vlad, didn't you say you have no audio?
[09:14:38 CET] <xtina> nice to hear someone doing something similar, i've been fighting for 2 wks..
[09:14:49 CET] <xtina> DHE: 100MB is the size of my raw audio pipe after 4 minutes of streaming
[09:14:58 CET] <xtina> but my H encoded video pipe is 0 bytes...
[09:15:04 CET] <xtina> even though video streaming is working great
[09:15:26 CET] <xtina> my audio cmd: sudo /usr/bin/arecord -Dmic_sv -c2 -r48000 -fS32_LE -twav /tmp/temp_audio.v &
[09:15:35 CET] <furq> why are you running all this as root
[09:15:52 CET] <xtina> yea i don't need all those sudos, please ignore :)
[09:16:52 CET] <vlad_> but I've given up on the piping and am trying to use the libav C api to stream directly to the rtmp urll
[09:17:24 CET] <vlad_> hm, "Output #0, flv, to '(null)':" that looks bad
[09:17:39 CET] <vlad_> it shouldn't be null, it should be an rtmp:// url
[09:17:47 CET] <xtina> vlad, where do you see that msg
[09:18:27 CET] <vlad_> stdout
[09:18:30 CET] <xtina> i don't get that
[09:18:35 CET] <xtina> my cmd works fine for at least a few mins
[09:18:43 CET] <vlad_> nah our approaches have diverged
[09:18:52 CET] <vlad_> I'm not using ffmpeg cli anymore
[09:19:01 CET] <xtina> oh ok
[09:19:01 CET] <vlad_> I'm using the libav* C api
[09:19:30 CET] <vlad_> since I couldn't figure out how to write a video to a pipe directly
[09:20:29 CET] <xtina> try my approach?
[09:21:10 CET] <xtina> does the 80MB size of my audio pipe represent the buffer..? why is the video pipe 0 bytes...
[09:24:07 CET] <xtina_> whoops, disconnected for a sec
[09:24:12 CET] <xtina_> any bites?
[09:25:46 CET] <vlad_> 0 bytes
[09:26:35 CET] <xtina_> haha, too real
[09:26:38 CET] <vlad_> it sounds like the audio isn't being eaten fast enough
[09:26:39 CET] <xtina_> :)
[09:26:50 CET] <xtina_> hmm, is the video pipe 0 bytes b/c it's all being eaten?
[09:26:55 CET] <vlad_> I assume so
[09:27:13 CET] <vlad_> maybe try it with just audio
[09:27:18 CET] <xtina_> i don't know how 80mb of missed audio can get accumulated, that seems like a huge amount for 4 minutes
[09:27:41 CET] <xtina_> even when i do just audio, and the audio is perfect, the audio pipe grows in size.. it doesn't stay at 0 bytes like video
[09:28:01 CET] <vlad_> can you output to file instead of pipe?
[09:28:34 CET] <xtina_> last time i tried, that worked perfectly
[09:28:38 CET] <xtina_> are you trying to stream?
[09:29:11 CET] <vlad_> yes
[09:29:42 CET] <vlad_> I am getting WriteN, RTMP send error 32
[09:29:56 CET] <vlad_> I assume because my stream isn't configured correctly
[09:30:10 CET] <vlad_> right now I am going through the OBS source code to see how they do it
[09:30:20 CET] <xtina_> well if you try my command and get RTMP errors, it's definitely something about your stream rather than the command
[09:30:28 CET] <xtina_> where are you streaming to
[09:34:44 CET] <xtina_> i'm wondering if part of it is that i'm sending encoded video to ffmpeg, but raw audio
[09:34:57 CET] <xtina_> is raw audio larger than encoded video?
[09:35:27 CET] <xtina_> what if i encoded the arecord raw output before sending it to ffmpeg?
[09:37:39 CET] <xtina_> DHE: to answer your q, my audio is 32bit, 2 channels
[09:39:53 CET] <xtina_> er - actually, my audio format from arecord is WAV
[09:41:55 CET] <vlad_> xtina_: I have a command that works
[09:42:06 CET] <vlad_> I can stream a given video file
[09:42:20 CET] <vlad_> the problem is streaming from my app that is generating frames
[09:45:45 CET] <vlad_> ok I give up for tonight
[09:45:51 CET] <vlad_> xtina_: good luck!
[09:45:57 CET] <xtina_> haha
[09:45:58 CET] <xtina_> best of luck
[11:03:48 CET] <Moonlightning> oh dear
[11:04:27 CET] <Moonlightning> XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
[11:04:27 CET] <Moonlightning>       after 5423 requests (5423 known processed) with 56 events remaining.
[11:04:34 CET] <Moonlightning> and then X crashed. D:
[11:12:26 CET] <Moonlightning> ...hmm, search results seem to suggest that that happens when X stops unexpectedly
[11:17:42 CET] <Moonlightning> ffmpeg -hide_banner -f x11grab -s 1366x768 -i :0 -pix_fmt yuv444p -c:v libx264 -crf 18 foo.ts
[11:18:33 CET] <Moonlightning> # This worked nicely for a couple minutes, producing no noticable artifacts in the output and taking up little disk space...and then X died. :(
[11:50:53 CET] <mcclintic> i'm trying to build ffmpeg with --enable-libopencv , but ./configure does not find my opencv libs. Package opencv was not found in the pkg-config search path.
[11:52:18 CET] <mcclintic> those opencv libs are on a custom path (i'm not root), so i did a export PKG_CONFIG_PATH=/var/lib/openshift/something/pkgconfig, and on the cmdline, it finds heares & libs, just not from configure
[11:53:35 CET] <DHE> check your config.log and find out what went wrong. it might be a version incompatibility or something else
[11:54:24 CET] <mcclintic> DHE: thanks, what would i look for ?
[11:55:20 CET] <furq> check that the PKG_CONFIG_PATH in config.log matches the one you passed
[11:55:26 CET] <furq> if it does then just check the last 50-100 lines or so
[11:57:47 CET] <DHE> I'd just start with searching for libopencv in the output (or just opencv)
[11:59:01 CET] <mcclintic> DHE: thanks, it seems, it's doing some c test there, and fails to link something.
[11:59:11 CET] <mcclintic> at least i found, where to look at ;)
[12:01:10 CET] <mcclintic> lots of stuff like :  undefined reference to `operator new[](unsigned long)'  , so probably a c / c++ problem.
[12:02:15 CET] <DHE> --extra-ldflags=-lstdc++
[12:02:31 CET] <mcclintic> ;) i'll try !
[12:20:55 CET] <mcclintic> DHE, much better, now, thank you ! (still fighting a problem with ipp, but i can do on my own, i guess !)
[12:21:29 CET] <DHE> good luck
[14:27:28 CET] <zhanglin> hello
[14:27:49 CET] <zhanglin> How can I clean up ffmpeg_opt.c content
[14:28:20 CET] <zhanglin> When I run same command twice ,my app will crash in ffmpeg_opt.c
[14:28:50 CET] <zhanglin> I'm not exit ffmpeg
[14:29:15 CET] <zhanglin> I think  ffmpeg_opt.c not fully clean up
[14:34:53 CET] <Jonzx> ooh
[14:35:09 CET] <Jonzx> I'm using this to convert a png for a 360 version png
[14:35:22 CET] <Jonzx> but it's removing the transparent and the feather
[14:36:38 CET] <Jonzx> https://puu.sh/u5LX7/0cc96ae642.png
[14:36:59 CET] <Jonzx> One on left is unedited.. one on right is after putting it through ffmpeg
[14:37:04 CET] <Jonzx> any tips?
[14:37:45 CET] <furq> pastebin the command you're using
[14:54:37 CET] <Jonzx> http://pastebin.com/SQMDnScq
[15:03:06 CET] <Jonzx> Not sure how to go about keeping transparent + feather effect of a png on an image
[15:03:11 CET] <Jonzx> if anyone has any tips
[15:03:14 CET] <Jonzx> http://pastebin.com/SQMDnScq
[16:40:46 CET] <Nacht> Hello, I'm a bit stuck and could use some advice. I've got this HLS stream where I occasionally grab some .TS files from and concat them together to a MP4 file. Now I'm trying to add a bumper in front of it. So I've converted the bumper from MP4 to TS, and I'm trying to add it to the concat but it just plays the bumper, and then shows nothing of the other TS files. I've tried to get the bumper
[16:40:46 CET] <Nacht> in the exact same way as the other TS's are. But nothing seem to work.
[16:43:05 CET] <Nacht> Mediainfo from the bumper: http://pastebin.com/d6tUDtVu   Mediainfo from one of stream ts: http://pastebin.com/cYxpTPrz
[16:43:58 CET] <Nacht> ffmpeg I'm running is:
[16:44:02 CET] <Nacht> ffmpeg -i bumper_in.mp4 -vf fps=25,scale=1280:-1,setsar=1:1,setdar=16:9 -c:v libx264 -b:v 2800k -bsf:v h264_mp4toannexb -profile:v main -level 4 -pix_fmt yuv420p -color_primaries 1 -color_trc 1 -colorspace 1 -b:a 96k -c:a aac -f mpegts select/bumper_in_720.ts
[16:48:28 CET] <Nacht> And ofcoure the concat: ffmpeg -safe 0 -f concat -i test.txt -c copy -f mp4 final.mp4
[17:03:21 CET] <ChocolateArmpits> Is there any way to map all inputs to output ? I have 128 audio inputs that I want to stick into one file
[17:03:54 CET] <DHE> ummm.. well, yes. using the -map parameter
[17:04:07 CET] <ChocolateArmpits> well without specifying it 128 times :)
[17:05:58 CET] <DHE> well if you're specifying 128 inputs I assume a script of some sort is involved. have said script also add your -map commands
[17:06:27 CET] <ChocolateArmpits> well i did want an easy way out of this
[17:06:38 CET] <ChocolateArmpits> but i'm doing just that by generating it on the command line
[17:07:45 CET] <ChocolateArmpits> ffmpeg.exe has stopped working  :P
[17:14:29 CET] <ChocolateArmpits> aww yeah 64 works
[18:05:57 CET] <ChocolateArmpits> Had to scale down because amix only accepts 32 inputs.
[18:37:41 CET] <vlad_> hello! I am getting WriteN, RTMP send error 32
[18:48:58 CET] <vlad_> this is with the ffmpeg C api
[18:57:57 CET] <vlad_> how do I get av_dump_format to say "[SAR 1:1 DAR 4:3]"?
[20:03:39 CET] <ojatko> hello everyone, I'd like to batch convert flv files to mp4. I've tried a number of commands in my online search, but couldn't make it work, apparently for not assigning the right parameters. can you please help?
[20:04:12 CET] <c_14> Use your shell to loop over ffmpeg -i mp4 -c copy out.flv ?
[20:05:37 CET] <ojatko> c_14 I'd like to batch convert
[20:06:00 CET] <kepstin> ojatko: ffmpeg doesn't do batch operations itself, you need to script it or use another tool that runs ffmpeg.
[20:07:37 CET] <ojatko> kepstin I used this script that I found online, but didnt work; paste.ubuntu.com/24008832
[20:08:23 CET] <llogan> that's a crappy script with lots of superfluous junk
[20:08:59 CET] <ojatko> llogan, that's why I am asking for a better solution here
[20:09:07 CET] <llogan> also, are you even using linux? You used the word "batch" which usually denotes Windows.
[20:09:32 CET] <kepstin> ojatko: what you want to do is figure out the ffmpeg command you need to run on each file, then put that in a loop that runs it over all the files.
[20:09:34 CET] <ojatko> llogan, yes I am using linux..dont like the word, either
[20:09:47 CET] <ojatko> lets say 'bulk'
[20:10:57 CET] <llogan> you need a bash "for loop" with paramater expansion: for f in *.flv; do ffmpeg -i "$f" "${f%.*}.mp4"; done
[20:11:15 CET] <furq> you forgot -c copy
[20:11:34 CET] <llogan> i wasn't sure if he wanted to stream copy or not and i'm not sure what formats are in the flv
[20:12:11 CET] <ojatko> llogan, thank you, I will try this
[20:12:28 CET] <furq> for f in *.flv; do ffmpeg -i "$f" -c copy "${f%.*}.mp4" || ffmpeg -i "$f" "${f%.*}.mp4"; done
[20:12:31 CET] <furq> that ought to cover it
[20:12:38 CET] <ojatko> kepstin, this was the command I used for single files: paste.ubuntu.com/24008864
[20:13:33 CET] <llogan> you won't need "-strict experimental" unless your ffmpeg is outdated
[20:14:13 CET] <ojatko> ah ok
[20:14:47 CET] <llogan> if it is then it will tell you to use that for the AAC encoder. but if it does you should update instead of using old ffmpeg.
[20:16:09 CET] <ojatko> llogan, yes, it kept on giving me the aac message.
[20:16:20 CET] <llogan> show the complete console output
[20:16:23 CET] <ojatko> furq, the command didnt work. it created 0 byte size mp4 files
[20:16:44 CET] <furq> oh right you'll need -y in the second one
[20:19:11 CET] <ojatko> same furq, this time they're all 28 byte of size :)
[20:19:49 CET] <kepstin> ojatko: this is the point where you start pastebinning some command output so we're not attempting to do blind debugging :)
[20:20:12 CET] <ojatko> kepstin, sorry, sure
[20:25:04 CET] <ojatko> I'll post them very soon, sorry..paste doesnt work right now for whatever reason
[20:30:41 CET] <ojatko> here is the output of the first command: https://paste.ubuntu.com/24008941
[20:31:50 CET] <kepstin> ojatko: your ffmpeg is too old, the aac encoder is still experimental status. either add "-strict experimental" or (better!) update your ffmpeg
[20:32:09 CET] <ojatko> kepstin, is that the reason for the error?
[20:32:24 CET] <kepstin> that's why it's failing to encode, yes
[20:33:02 CET] <llogan> get a new one from https://johnvansickle.com/ffmpeg/
[20:33:13 CET] <ojatko> oh, great if just that's the reason. I can install the new version right away
[20:33:21 CET] <berniyh> hi, maybe someone here can help with an issue: I've got a new media player and in contrast to the previous one it supports ogg vorbis only "16 bit"
[20:33:37 CET] <berniyh> with the ones I'm generating by ffmpeg without any additional options, it says that the format is not supported
[20:33:54 CET] <berniyh> how can I get ffmpeg to convert to compatible ogg vorbis files?
[20:34:15 CET] <berniyh> (input is: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz)
[20:35:01 CET] <llogan> ojatko: and you can use the command I provided. you'll need to re-encode because flv1 won't go into MP4, and some players have trouble with MP3 in MP4 (QT & WMP w/ certain sample rates for example).
[20:35:37 CET] <kepstin> berniyh: bit depth isn't meaningful when applied to most lossy audio codecs including ogg vorbis (they usually use some sort of floating point internally)
[20:35:49 CET] <kepstin> berniyh: it's probably something else which is causing the issue
[20:37:14 CET] <berniyh> well that's what the support told me and I'm out of ideas, really
[20:37:41 CET] <furq> pastebin the ffmpeg command
[20:37:45 CET] <berniyh> the files worked fine on the older player and don't work on the newer one and they told me that that is the main limitation
[20:38:05 CET] <ojatko> llogan, thank you, hope so :) about to install current version and will then implement it
[20:38:05 CET] <kepstin> berniyh: my really old (~15 years?) iriver media player had a max bitrate that it supported, but that's the only time I've seen a limit like that :/
[20:38:42 CET] <berniyh> kepstin: I already tried a fixed bitrate of 160 kbit/s
[20:38:59 CET] <berniyh> (which isn't really that high)
[20:39:18 CET] <llogan> are you sure you're outputting vorbis? IIRC, default encoder for oga is flac.
[20:39:51 CET] <kepstin> berniyh: and make sure you're using libvorbis rather than ffmpeg's builtin encoder.
[20:39:53 CET] <berniyh> yeah, I'm sure: ffmpeg -i 01.\ Dream\ Theater\ -\ Descent\ Of\ The\ Nomacs.flac -acodec libvorbis -aq 6 -sample_fmt fltp 01.\ Dream\ Theater\ -\ Descent\ Of\ The\ Nomacs.ogg
[20:40:00 CET] <berniyh> I do ;)
[20:40:26 CET] <berniyh> I tried other values for -sample_fmt, but it doesn't accept any
[20:40:34 CET] <berniyh> also left it out and didn't make a difference
[20:40:48 CET] <llogan> show the complete console output
[20:41:02 CET] <furq> if that doesn't work then i suspect your media player just sucks
[20:41:29 CET] <kepstin> berniyh: I suppose you could try the standalong 'oggenc' tool, it has a big more control of bitrate with managed mode, and might write ogg fromat that your player likes better (if they sucked at testing)
[20:41:41 CET] <berniyh> llogan:  https://bpaste.net/show/74d5b780b805
[20:42:11 CET] <berniyh> kepstin: I tried oggenc, but I can't see any option that would manipulate that sort of thing
[20:42:27 CET] <llogan> there goes my guess that there was a video stream (album art) messing it up...
[20:42:27 CET] <kepstin> berniyh: --managed and --max-bitrate?
[20:42:31 CET] <berniyh> furq: I suspect that, too, but I want to try at least before I return it
[20:42:37 CET] <vlad_> I am trying to debug pushing to rtmp server - is there an easy way to set up a local rtmp server?
[20:42:43 CET] <furq> vlad_: nginx-rtmp
[20:42:43 CET] <berniyh> kepstin: that's how I generated the fixed bitrate file
[20:42:54 CET] <furq> berniyh: does it support any other formats
[20:42:57 CET] <kepstin> berniyh: try something lower, like 128kbit :/
[20:43:08 CET] <berniyh> furq: flac, mp3 and aac, iirc
[20:43:21 CET] <berniyh> but if it doesn't support ogg properly, it's going back
[20:43:25 CET] <llogan> it fails with oggenc output too?
[20:43:30 CET] <berniyh> yeah
[20:43:41 CET] <llogan> about as useful as a shitstain
[20:43:49 CET] <furq> aac is comparable quality but i guess that's no good for you for other reasons
[20:43:55 CET] <kepstin> if it can run rockbox, try that, otherwise...
[20:44:11 CET] <vlad_> furq: how do I get nginx-rtmp?
[20:44:15 CET] <berniyh> furq: the main thing is that I already have a lot of music encoded in ogg and it would really suck to have to convert it all
[20:44:36 CET] <furq> vlad_: https://github.com/arut/nginx-rtmp-module
[20:45:04 CET] <llogan> berniyh: which player is this anyway?
[20:45:04 CET] <furq> idk if nginx sorted out their dynamic linked modules yet so you probably need to build nginx
[20:45:15 CET] <furq> it's easy enough though
[20:45:36 CET] <berniyh> llogan: SanDisk Clip Sport Plus
[20:45:46 CET] <furq> wow really
[20:45:50 CET] <furq> the clip used to be good
[20:46:18 CET] <furq> the old clips definitely run rockbox but i'm guessing that's some new version
[20:46:25 CET] <berniyh> I had the Clip+, but it's broken now
[20:46:34 CET] <furq> i've still got a fuze running rockbox somewhere
[20:46:45 CET] <berniyh> and that one played those files without issues (and actually had a ¼SD slot)
[20:47:21 CET] <berniyh> kepstin: nope, 128kbit doesn't work either
[20:47:47 CET] <llogan> try a firmware update on the device
[20:47:53 CET] <berniyh> did already
[20:47:53 CET] <ojatko> / window splitv 55
[20:47:59 CET] <ojatko> sorry :)
[20:48:41 CET] <berniyh> well, it's going back
[20:48:48 CET] <berniyh> guess I have to look for another one &
[20:49:08 CET] <kepstin> they don't list vorbis support at all on the web page for that device
[20:49:16 CET] <kepstin> only mp3, wma, aac, wav, flac
[20:49:30 CET] <berniyh> yeah, they do on the support site, though
[20:49:42 CET] <berniyh> and I contacted support and they verified that
[20:56:38 CET] <furq> maybe they confused it with the old clip
[20:57:04 CET] <furq> you can probably still pick up a new-in-box clip+ from amazon or somewhere
[20:59:28 CET] <ojatko> hello again, I couldnt install it. I got hanging at './configure' command, which gives an error
[20:59:35 CET] <ojatko> 'no such file or directory
[20:59:36 CET] <ojatko> '
[20:59:48 CET] <ojatko> while I am in the right folder
[20:59:53 CET] <berniyh> furq: nope, only for ridiculous high prices
[21:00:00 CET] <furq> shame
[21:00:06 CET] <furq> i guess the sellers realised that the new one sucks
[21:00:19 CET] <kepstin> I'm still sad that I lost my old ipod classic with a flash storage mod :(
[21:00:42 CET] <furq> you can just get a 256GB sd card now
[21:01:03 CET] <kepstin> yeah, I just have a 200gb microsd in my phone atm. it's good enough.
[21:01:58 CET] <furq> you'd have to try pretty hard to have 200gb of music in phone quality
[21:02:36 CET] <furq> apparently that's 20 weeks of music
[21:02:56 CET] <furq> i only have 8 weeks ;_;
[21:02:58 CET] <llogan> ojatko: the link i gave you will provide a binary. no need to compile or install.
[21:05:09 CET] <vlad_> furq: any tips on how to run the rtmp server?
[21:05:33 CET] <furq> https://gist.github.com/fur-q/d7028f51c38f7d0bb56e
[21:05:36 CET] <furq> that's more or less the setup i use
[21:05:46 CET] <furq> you can probably ignore the lua stuff
[21:06:17 CET] <furq> and the http/hls stuff for that matter
[21:08:35 CET] <ojatko> llogan, thank you for your hint! I just read the first paragraph on the page :)
[21:09:03 CET] <vlad_> furq: so I should delete the http section?
[21:09:31 CET] <vlad_> I'm getting: nginx: [emerg] getpwnam("www")
[21:09:43 CET] <vlad_> I'm getting: nginx: [emerg] getpwnam("www") failed
[21:10:24 CET] <furq> change "user www;" to a user that exists
[21:10:27 CET] <ojatko> llogan, so I need to run all commands from within the ffmpeg directory?
[21:10:41 CET] <furq> and yeah you can delete the http section
[21:10:49 CET] <furq> and all the hls stuff in rtmp{}
[21:10:59 CET] <furq> and on_publish
[21:11:30 CET] <vlad_> ok it ran
[21:12:05 CET] <vlad_> is it expected to have to run it as su?
[21:12:12 CET] <furq> yeah
[21:12:20 CET] <furq> it'll setuid to the user you specify
[21:12:52 CET] <vlad_> in the conf or the CLI?
[21:12:56 CET] <furq> in the config
[21:13:24 CET] <berniyh> I'd definitely buy a Cowon again, I had the iAudio 7 and it was great (apart from not having an SD slot), but unfortunately, they only make monstrous audio players these days :(
[21:14:23 CET] <vlad_> ok so what url should I use to stream to the nginx?
[21:14:46 CET] <vlad_> rtmp://localhost/live?
[21:15:33 CET] <furq> yeah
[21:16:16 CET] <vlad_> ok cool ffmpeg can stream to it without problems
[21:16:34 CET] <vlad_> is there some way to get nginx to save the stream to disk?
[21:16:48 CET] <furq> https://github.com/arut/nginx-rtmp-module/wiki/Directives#record
[21:17:18 CET] <vlad_> cool
[21:19:01 CET] <llogan> berniyh: i still have my Cowon iAudio G3. actually used it recently.
[21:20:02 CET] <ojatko> I am still getting the same aac warning. and still 0 byte mp4 files
[21:20:19 CET] <vlad_> furq: I don't see any recording... I added: record video; record_path /tmp/rec; to the application live
[21:20:37 CET] <vlad_> are those suppoed to go in server?
[21:21:39 CET] <llogan> ojatko: you're still executing the old ffmpeg. provide the full path to the new binary or move it somewhere in your PATH
[21:22:50 CET] <llogan> or navigate to directory containing the new ffmpeg binary and just do this: mkdir ~/bin && mv ffmpeg ~/bin && . ~/.profile
[21:22:52 CET] <ojatko> llogan, I'd just done the reverse. inserted the video folder path before '*.flv' in the command, and ran it from within the ffmpeg folder
[21:23:00 CET] <ojatko> run*
[21:27:58 CET] <ojatko> llogan, you're right, it worked! I inserted the full path of ffmpeg in your command, and it is converting now one after another, thank you very much!
[21:28:35 CET] <ojatko> thank you, you saved me a lot of work! thank you all!
[21:40:35 CET] <jarkko> is there any better gui for linux than winff?
[21:41:05 CET] <llogan> don't use a gui
[21:41:20 CET] <jarkko> i am not too familiar with the command line options yet
[21:41:39 CET] <llogan> the presets in winff are old and crappy. if you require a gui use handbrake.
[21:41:48 CET] <jarkko> i already updated some preset
[21:41:55 CET] <jarkko> i had handbrake
[21:42:07 CET] <jarkko> are you sure it can use up to date ffmpeg?
[21:42:23 CET] <llogan> i don't know if it uses ffmpeg. i don't use it.
[21:45:31 CET] <ojatko> have a good day / night, everyone, ciao!
[21:46:27 CET] <furq> it doesn't use ffmpeg
[21:46:41 CET] <furq> it has its own cli tool
[21:46:45 CET] <furq> it uses the ffmpeg libs though
[21:47:05 CET] <furq> you should really just learn the ffmpeg cli though
[21:47:20 CET] <furq> all ffmpeg guis that aren't ultra-specialised inherently suck
[21:47:25 CET] <furq> and most of the ones that are specialised still suck
[21:47:40 CET] <jarkko> how do i change the audio codec from aac to opus?
[21:47:45 CET] <jarkko> when encoding
[21:47:48 CET] <furq> -c:a libopus
[21:47:50 CET] <jarkko> only?
[21:48:02 CET] <jarkko> what those c and a means
[21:48:02 CET] <llogan> -c:a libopussssssssssssssssssss
[21:48:20 CET] <furq> codec and audio
[21:48:27 CET] <furq> as opposed to -c:v
[21:48:28 CET] <jarkko> makes sense
[21:48:42 CET] <llogan> or -c:a opus if you want to try the new native FFmpeg opus encoder
[21:48:51 CET] <furq> i don't think you do
[21:52:47 CET] <jarkko> ERROR: opus not found using pkg-config hmm
[21:53:38 CET] <madduck> is there a way to convert an unfragmented mp4 to a fragmented file without recoding it all?
[21:53:43 CET] <madduck> (cf. https://stackoverflow.com/questions/8616855/how-to-output-fragmented-mp4-with-ffmpeg)
[21:55:05 CET] <c_14> add -c copy ?
[21:55:16 CET] <DHE> and strip out the bitrate values
[21:55:30 CET] <c_14> and the -.codec stuff
[22:01:06 CET] <vlad_> furq: any hints on why the nginx-rtmp doesn't record?
[22:40:03 CET] <thebombzen_> does anyone know if there is a way to specify -ss and -t in timebase units rather than in seconds?
[22:40:46 CET] <thebombzen_> the ffmpeg.c docs don't specify a way to do this. do I have to divide by the timebase?
[22:43:30 CET] <user__> is there a way to reencode a video encoded like this: http://codepad.org/LQZDntU3
[22:43:41 CET] <user__> so I do not loose quality but get a bit smaller files?
[22:45:28 CET] <user__> I don't really understand the difference between -qp and crf
[22:45:31 CET] <kepstin> thebombzen_: in most cases that doesn't really make sense, since you can have multiple streams in a file with different timebases
[22:47:00 CET] <kepstin> user__: any re-encode with a lossy codec will lose some quality. crf is x264's measurement of visual quality, based on psychological optimizations. qp is a purely mathematical quality level that doesn't correspond directly to visual quality (it'll waste bits on stuff people don't notice)
[22:48:08 CET] <kepstin> (although in some cases, particularly with low values, qp is good enough - and faster to encode)
[22:48:12 CET] <user__> the output videos are used to train algorithms
[22:48:30 CET] <user__> so it would be nice to get as best quality possible
[22:48:47 CET] <kepstin> why do you need to re-encode? best quality is to leave it as-is :)
[22:48:55 CET] <user__> because Ive 10tb of data now
[22:49:04 CET] <user__> and no money for more disks
[22:49:06 CET] <user__> :(
[22:49:33 CET] <user__> can I reencode with -preset veryslow?
[22:49:46 CET] <kepstin> alright, then it's up to you to experiment to see what quality level you need. I'd suggest using libx264 crf mode, and just try different values of crf until you find one that hits the quality level you want
[22:49:59 CET] <kepstin> and yeah, use veryslow if you want max quality per bit.
[22:50:46 CET] <user__> okay so going with crf 0 for lossless and ultrafast for recording
[22:50:47 CET] <thebombzen_> kepstin: what if there's only one stream I care about?
[22:50:54 CET] <user__> followed by veryslow reencoding
[22:50:59 CET] <user__> sounds reasonable?
[22:51:02 CET] <thebombzen_> user__: crf0 is lossless but if you're doing lossless use -qp 0
[22:51:05 CET] <thebombzen_> it's slightly faster
[22:51:11 CET] <furq> it is?
[22:51:15 CET] <user__> yes I think Ive changed from crf to -qt
[22:51:16 CET] <kepstin> user__: re-encoding to lossless with almost certainly make all the files bigger...
[22:51:18 CET] <thebombzen_> that's what I've been told
[22:51:19 CET] <user__> duo to someone here recommending it
[22:51:37 CET] <kepstin> (unless the originals were lossless using a less efficient codec I guess)
[22:51:39 CET] <thebombzen_> user__: you are correct. record iwth -qp 0 and -presetultrafast
[22:51:47 CET] <thebombzen_> sorry -preset ultrafast
[22:52:11 CET] <thebombzen_> and then transcode later with -preset veryslow and -crf X depending on desired quality
[22:52:17 CET] <furq> user__: do you need these to be lossless
[22:52:33 CET] <furq> reencoding to lossy x264 will be much smaller and will still look pretty good
[22:53:09 CET] <thebombzen_> user__: depending on what you're recording tho. if you're recording your screen you'll get rgb-based output
[22:53:17 CET] <thebombzen_> so you'll want to use -c:v libx264rgb
[22:53:19 CET] <thebombzen_> not libx264
[22:53:34 CET] <thebombzen_> unless your libx264 is 10bit in which case libx264rgb is bugged and won't work
[22:53:43 CET] <furq> you don't really lose much going from rgb to yuv444p
[22:53:53 CET] <user__> I am encoding pngs at the moment
[22:54:00 CET] <thebombzen_> furq: except for the slowness of libswscale
[22:54:12 CET] <thebombzen_> user__: ewww don't record to png
[22:54:17 CET] <furq> libx264rgb produces much bigger output iirc
[22:54:20 CET] <user__> no I pipe pngs to ffmpeg
[22:54:21 CET] <furq> on account of not being planar
[22:54:22 CET] <user__> thebombzen_
[22:54:38 CET] <user__> I could probably reduce the pictures to greyscale
[22:54:43 CET] <thebombzen_> furq: is libx264rgb really worse than yuv444p?
[22:54:46 CET] <thebombzen_> that sounds really awkward
[22:54:50 CET] <kepstin> hmm, if your source is pngs, yeah, re-encoding to a format that can do inter-frame compression might help (if there's minimal per-frame changes)
[22:54:52 CET] <thebombzen_> also why is bgr0 not planar?
[22:54:58 CET] <furq> don't ask me
[22:55:46 CET] <furq> user__: i don't see why you'd go via lossless ultrafast if your source is pngs
[22:55:59 CET] <furq> if it's not a live source then just do the final encode first
[22:56:14 CET] <jkqxz> bgr0 planar?  That fourth plane of all-zeroes sounds very useful.
[22:56:34 CET] <thebombzen_> jkqxz: or rather why isn't there planar rgb-based input
[22:56:47 CET] <furq> there's gbrp but x264 doesn't like it for some reason
[22:56:55 CET] <thebombzen_> gbrp?
[22:56:58 CET] <thebombzen_> why gbrp?
[22:57:05 CET] <thebombzen_> gbr sounds really... counterintuitive
[22:57:05 CET] <user__> its life furq
[22:57:12 CET] <user__> i need to record at 30fps
[22:57:14 CET] <user__> with a crappy pc
[22:57:33 CET] <thebombzen_> user__: if you're trying to figure out how to encode at 30fps with png input
[22:57:34 CET] <furq> user__: is this a live source
[22:57:41 CET] <user__> thebombzen_: it works already
[22:57:49 CET] <user__> I encode pngs and pipe it to ffmpeg
[22:57:55 CET] <thebombzen_> encode pngs with what?
[22:57:59 CET] <user__> opencv
[22:57:59 CET] <thebombzen_> what are you recording from?
[22:58:06 CET] <furq> oh
[22:58:07 CET] <thebombzen_> that sounds really sketchy
[22:58:09 CET] <user__> I couldnt make bgr image recording working
[22:58:11 CET] <user__> it is thebombzen_
[22:58:14 CET] <user__> no doubt
[22:58:21 CET] <furq> yeah writing pngs seems like a waste of time
[22:58:22 CET] <thebombzen_> cause pngs have zlib compression. make sure you set the compression level to 0
[22:58:30 CET] <user__> it is 0 compression
[22:58:36 CET] <furq> can you not just output rawvideo
[22:59:00 CET] <thebombzen_> also, I'm shocked that openshot can't output losslessly w/o png frames
[22:59:30 CET] <kepstin> what the original video source? is it a camera or something?
[22:59:34 CET] <user__> yes
[22:59:46 CET] <user__> it is processed by software and then recorded
[22:59:46 CET] <kepstin> (if so, lossless really doesn't make sense, since cameras have so much noise anyways...)
[23:00:10 CET] <kepstin> i guess it depends what your processing does
[23:00:17 CET] <thebombzen_> how are you processing it too?
[23:00:31 CET] <thebombzen_> because ffmpeg can be compiled with opencv filtering support
[23:00:32 CET] <furq> if you're not going to do anything with the lossless files other than reencode them, you might as well just skip the lossless step
[23:00:35 CET] <user__> I only add a few markers
[23:00:42 CET] <furq> -preset faster -crf 18 should look good
[23:00:50 CET] <furq> and it'll be about 10x smaller
[23:00:53 CET] <thebombzen_> so you could just read directly from the camera, apply an opencv filter with libavfilter, and then record.
[23:00:58 CET] <user__> no I need to reprocess them eventually furq
[23:01:07 CET] <user__> I had weird artifacts on older videos
[23:01:11 CET] <thebombzen_> user__: crf 18 is usually "visually lossless"
[23:01:21 CET] <user__> but as you might see I dont know s* about video encoding
[23:02:00 CET] <user__> ill give it a try if my pc can handle this at 30fps
[23:02:05 CET] <thebombzen_> so the thing about video is that in general, lossless video is impractically large, especially for film
[23:02:38 CET] <thebombzen_> crf 16-18 is "visually lossless" in the sense that you generally can't tell a difference between the encoded and the source material
[23:02:52 CET] <thebombzen_> I say 16-18 because it depends on the input. if you want to be perfectly safe use -crf 16
[23:02:58 CET] <user__> ok
[23:03:03 CET] <thebombzen_> but going lower than that is unnecessary unless you want bit for bit lossless
[23:03:03 CET] <user__> there is a lot of static image
[23:03:04 CET] <furq> 16 is pretty overkill
[23:03:06 CET] <thebombzen_> which is usually not what you want
[23:03:12 CET] <user__> its essentially only two things moving in it
[23:03:14 CET] <thebombzen_> 16 is overkill really
[23:03:24 CET] <user__> the rest is background
[23:03:25 CET] <furq> i don't think i've ever used anything lower than 20
[23:03:41 CET] <furq> although that's with -preset veryslow
[23:03:47 CET] <vlad_> is there an ffmpeg x11grab command to capture only a specific window?
[23:03:55 CET] <user__> btw I must say you guys are frickin awesome
[23:04:04 CET] <user__> I think its the friendliest channel Ive ever visited on irc
[23:04:42 CET] <user__> thebombzen_: its not as easy as there is custom code processing
[23:04:48 CET] <user__> but it looks pretty nice
[23:18:08 CET] <thebombzen_> also we're friendliest here
[23:18:15 CET] <thebombzen_> but that's not true about most of the a/v channels
[23:18:24 CET] <thebombzen_> go to #mpv and wow certain people
[23:25:29 CET] <user__> furq: ill try that rawvideo tomorrow again
[23:26:31 CET] <user__> preset won't affect quality
[23:26:35 CET] <user__> but rather compression right?
[23:29:05 CET] <llogan> vlad_: examples here http://ffmpeg.org/ffmpeg-devices.html#x11grab
[23:34:31 CET] <kepstin> user__: changing the preset will affect, slightly, what quality a given crf will return
[23:45:40 CET] <user__> alright ill just give it a try
[23:45:47 CET] <user__> once again thanks so much!
[23:46:42 CET] <jarkko> i have an mkv file and i want it's audio to opus. and video in libx265 veryslow...what's the correct command? ffmpeg -i video.mkv -c:a libopus -strict -2 -c:v libx265 -preset veryslow output.mp4
[23:46:46 CET] <jarkko> what am i missing?
[23:47:08 CET] <jarkko> ould not find tag for codec opus in stream #1, codec not currently supported in container
[23:47:08 CET] <jarkko> Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
[23:47:17 CET] <furq> h265 isn't supported in mp4
[23:47:21 CET] <furq> use mkv or something
[23:47:26 CET] <furq> also you shouldn't need -strict -2
[23:47:37 CET] <jarkko> it complained about it if i didnt have it
[23:47:55 CET] <furq> are you running an old ffmpeg
[23:48:09 CET] <jarkko> ok i got it working now with .mkv
[23:48:19 CET] <jarkko> i shouldnt be running old, i have git version...
[23:48:24 CET] <furq> weird
[23:48:36 CET] <jarkko> unless its somehow misconfigured
[23:50:11 CET] <jarkko> i sold my ddr4 memory with skylake cpu...any suggestions to new memory?
[23:58:00 CET] <xtina> hey. i'm sending hardware-encoded video from raspivid and raw audio from arecord to ffmpeg.
[23:58:09 CET] <xtina> i've found that ffmpeg can't process the amount of raw audio i'm sending (video is OK)
[23:58:41 CET] <xtina> even if i try to encode arecord's raw audio with LAME into mp3 and pass that into ffmpeg, arecord still overruns
[23:58:59 CET] <xtina> anyone have suggestions? the issue is that i can't be passing raw audio between commands
[00:00:00 CET] --- Fri Feb 17 2017


More information about the Ffmpeg-devel-irc mailing list