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

burek burek021 at gmail.com
Thu Nov 3 03:05:01 EET 2016


[01:21:40 CET] <tab1293> is it possible to seek with ffmpeg as transcoding is taking place rather then starting a whole new process with the appropriate seek flags?
[01:33:02 CET] <c_14> You're running an encoding and at some point want to discard input until you reach a specific timestamp?
[01:34:20 CET] <tab1293> c_14: yes
[01:34:47 CET] <c_14> might be possible with the trim/select filters and the sendcmd feature, but not really no
[02:06:28 CET] <DHE> don't think you can do it live. you can preplan with said filters
[03:29:12 CET] <tab1293> anyone know how to determine how long a mkv header block is?
[03:29:23 CET] <tab1293> is it something ffprobe can do?
[03:41:40 CET] <qmr> hexedit
[03:50:04 CET] <tab1293> I guess I just have more questions about the mkv format in general
[03:50:39 CET] <tab1293> it seems like seeking info is stored in both the metaseek header and cueing header
[03:51:35 CET] <tab1293> but the docs say seeking during playback usually uses the cueing header
[03:51:59 CET] <tab1293> wondering what the purpose of the metaseek header is then
[04:34:25 CET] <teratorn> anyone have an opinion on hardware h264 encoders? obviously they all suck, but if you really do want to do a lot of encoding per Watt or per hardware $$ are there any good ones?
[04:36:13 CET] <bibble> no it seems
[04:40:40 CET] <qmr> there are a lot with great reviews
[04:41:56 CET] <teratorn> hmm! http://www.mainconcept.com/eu/products/sdks/gpu-acceleration-sdk/cuda-h264avc.html
[04:57:15 CET] <teratorn> qmr: hmm, like which ones?
[07:50:23 CET] <mad_ady> hello ffmpeg community!
[07:50:39 CET] <mad_ady> Can anyone help with the following problem?
[07:51:09 CET] <mad_ady> I have a webcam that produces corrupt frames and I can't get a steady 25 fps mjpg stream from it
[07:51:34 CET] <mad_ady> ffmpeg ignores them but reduces the output framerate and this causes sound to glitch out
[07:51:56 CET] <mad_ady> how can I have ffmpeg duplicate the last valid frame and output a constant fps out?
[07:52:12 CET] <mad_ady> I tried with -vf fps=fps=25, but it didn't do it
[07:52:56 CET] <mad_ady> here's a sample output from my webcam: http://pastebin.com/3yqq4ZAV
[07:53:12 CET] <mad_ady> the actual fps the cam can do is about 10fps - which I don't mind
[07:53:34 CET] <mad_ady> but I'd like to output a 25fps stream with stuffed frames where they are missing to keep audio working
[08:41:59 CET] <teratorn> mad_ady: -vf fps=25 should do it, but uh, maybe it's seeing the corrupt frames and passing them on, thinking fps is OK ? then they get ignored later, *maybe* ?
[08:42:29 CET] <mad_ady> I'll try again
[08:42:36 CET] <mad_ady> and report back shortly
[08:43:15 CET] <teratorn> mad_ady: try also encoding the video first to a temp file, then transcoding it while applying the fps fitler, to see if that makes any difference
[08:43:37 CET] <mad_ady> the problem is the input stream is from a webcam (mjpg)
[08:43:48 CET] <mad_ady> and I'm doing this on a low power board (Odroid-C2)
[08:44:15 CET] <mad_ady> and I'm using ffmpeg to read the stream, overlay the current time and pass it to a hardware h264 encoder for the board
[08:44:40 CET] <mad_ady> the problem is the encoder expects constant framerate and ffmpeg doesn't deliver it because of the bad input...
[09:07:12 CET] <teratorn> mad_ady: ah, so that is why audio is getting janked up.. typically I would not expect that, since audio and video packets have independent PTSs
[09:07:45 CET] <mad_ady> my experience is that as soon as the framerate drops below what is expected, audio drops as well
[09:07:52 CET] <mad_ady> let me show you my pipeline
[09:08:31 CET] <teratorn> mad_ady: you could do this fairly easily in custom code... well, a custom filter is all you need I guess, but then, the fps filter should do this...
[09:08:37 CET] <mad_ady> I read from mjpg_streamer which multiplexes access to my camera:
[09:08:40 CET] <mad_ady> /usr/bin/ffmpeg -r 25 -f mjpeg -i  'http://odroid:odroidpass@127.0.0.1:8090/?action=stream' -c:v rawvideo  -r 25 -vf  "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:  text='Webcam feed %{localtime\\:%F %T}': fontcolor=white at 0.8: x=7: y=5"  -pix_fmt nv21 -f rawvideo - >in1
[09:08:45 CET] <mad_ady> and write to a named pipe
[09:08:52 CET] <mad_ady> cat in1 | c2enc -w 1280 -h 720 -f 25 -b 2000000 | ffmpeg -r 25  -thread_queue_size 256 -f h264 -i - -thread_queue_size 64 -f alsa -i  plughw:CARD=Camera,DEV=0 -acodec libmp3lame -async 1 -c:v copy  -override_ffserver http://localhost:8099/mjpg-streamer.ffm
[09:09:30 CET] <mad_ady> In a different thread I read from that pipe, send it to the encoder and the encoder outputs h264 which gets muxed with the audio from the camera and gets sent to ffserver which serves it over rtsp
[09:09:47 CET] <mad_ady> it works beautifully as long as the output fps matches 25
[09:09:59 CET] <mad_ady> let me retry with just fps=25
[09:12:09 CET] <teratorn> mad_ady: yeah, I get it. nice.
[09:12:51 CET] <teratorn> it's too bad you have some crap thing for the hwencoder instead of a nice ffmpeg encoder for the same...
[09:13:30 CET] <teratorn> have you checked to see if your hardware is supported by current ffmpeg, by chance?
[09:14:05 CET] <mad_ady> it's not.
[09:14:12 CET] <teratorn> k
[09:14:46 CET] <mad_ady> The device has a SOC from Amlogic which have an encoder for android which was reverse-engineered and made to work on linux as well
[09:15:06 CET] <teratorn> brilliant
[09:15:14 CET] <mad_ady> A broader discussion here: http://forum.odroid.com/viewtopic.php?f=136&t=24293&p=165992#p165208
[09:15:22 CET] <teratorn> ok so one issue is that your camera source has no actual fucking timestamps
[09:15:50 CET] <teratorn> a real framebuffer card applies timestamps before handing the frames off to the driver, or the driver does it, whatever.
[09:16:17 CET] <teratorn> but you get a solid timeline to begin with, instead of relying on gettimeofday() whenever the next raw frame happens to come back from the webcam
[09:16:38 CET] <teratorn> but that might not be directly related to your problem, just saying.
[09:16:51 CET] <mad_ady> I understand the issue, yeah
[09:16:58 CET] <mad_ady> Well, it was cheap :)
[09:17:52 CET] <teratorn> mad_ady: where is the fps filter in your command line?
[09:18:10 CET] <teratorn> also, why force -r everywhere?
[09:19:45 CET] <mad_ady> sorry I pasted an older command
[09:20:18 CET] <mad_ady> fps is set when reading from the camera
[09:20:35 CET] <mad_ady> /usr/bin/ffmpeg -r 25 -f mjpeg -i 'http://odroid:odroidpass@127.0.0.1:8090/?action=stream' -c:v rawvideo -r 25 -vf "fps=25" -pix_fmt nv21 -f rawvideo - >in1
[09:21:36 CET] <mad_ady> I get even "huffman table decode error" errors from the decoder :)
[09:22:34 CET] <teratorn> maybe you need to apply a setpts filter actually based on gettimeofday()
[09:23:00 CET] <teratorn> i could not say for sure if the raw video feed will get timestamps applied or not based on localtime implicitly? maybe not
[09:23:09 CET] <mad_ady> The thing is - I actually managed to get it working by using a different encoder which works with webcams specifically: http://forum.odroid.com/viewtopic.php?f=136&t=23680&p=165295#p165151
[09:23:14 CET] <teratorn> so the fps filter won't have good pts values to look at in order to do its job?
[09:23:38 CET] <mad_ady> I see. Ok, I'll try that
[09:24:41 CET] <teratorn> hmm.
[09:24:46 CET] <mad_ady> so, long story short - if I use an encoder which reads from a webcam I can inject my mjpg into a fake v4l2loopback webcam which does frame duplication on corrupted frames and I can read it fine
[09:25:14 CET] <mad_ady> but the process is a bit convoluted, so I wanted to simplify it and have ffmpeg duplicate corrupt frames instead
[09:29:20 CET] <teratorn> does the fps filter work in transcoding from a previously saved "bad" input?
[09:33:13 CET] <mad_ady> -vf "setpts=PTS-STARTPTS, fps=25" doesn't work
[09:33:23 CET] <mad_ady> I will try to save a stream and read directly from it
[09:33:39 CET] <teratorn> yeah that isn't what you want that just rebases existing  valid timestamp stream to 0
[09:34:00 CET] <teratorn> setpts=(RTCTIME - RTCSTART) / (TB * 1000000)
[09:34:11 CET] <mad_ady> setpts=N/(25*TB), fps=25 I also tried this
[09:34:18 CET] <teratorn> that *might* be the right math to assign brand new timestamps based on wallclock time
[09:34:30 CET] <teratorn> well, N will be broke if you drop frames
[09:34:41 CET] <teratorn> since it won't match 25 fps anymore
[09:36:22 CET] <teratorn> also, you could modify the source of the fps filter, or copy it to your own version, and add instrumentation so you see what frames it is handling, and the timestamps it is seeing
[09:37:04 CET] <mad_ady> sounds too complicated for a regular noob like myself
[09:37:07 CET] <mad_ady> :)
[09:38:29 CET] <teratorn> mad_ady: did that setpts using the RT clock help?
[09:39:01 CET] <mad_ady> almost - framerate was higher, but I couldn't get video output because it crashed after a little while
[09:39:04 CET] <mad_ady> let me try again
[09:41:39 CET] <mad_ady> [output stream 0:0 @ 0x48b680] 100 buffers queued in output stream 0:0, something may be wrong.
[09:41:39 CET] <mad_ady> need to fix this first, hold on
[09:47:30 CET] <mad_ady> @teratorn: I no longer understand what's going on. With your filter I get that output stream warning and ffmpeg crashes soon after (most likely running out of memory or something?)
[09:48:10 CET] <teratorn> 0:0 is the video stream right?
[09:49:10 CET] <mad_ady> yes
[09:49:41 CET] <teratorn> uhm, oh
[09:49:54 CET] <mad_ady> currently I'm not using named pipes anymore (I was considering them for performance reasons to split processing on multiple cores)
[09:50:53 CET] <teratorn> mad_ady: hmm, well I'm not sure why
[09:51:52 CET] <mad_ady> /usr/bin/ffmpeg -r 25 -f mjpeg -i 'http://odroid:odroidpass@127.0.0.1:8090/?action=stream' -c:v rawvideo -r 25 -vf "setpts=(RTCTIME - RTCSTART) / (TB * 1000000), fps=25" -pix_fmt nv21 -f rawvideo - | c2enc -w 1280 -h 720 -f 25 -b 2000000 | ffmpeg -r 25 -thread_queue_size 256 -f h264 -i - -thread_queue_size 32 -f alsa -i plughw:CARD=Camera,DEV=0 -acodec libmp3lame -async 1 -c:v copy -override_ffserver http://localhost:8099/mjpg-streamer.ffm
[09:51:58 CET] <mad_ady> this is my current command
[09:52:03 CET] <mad_ady> oh, well
[09:52:15 CET] <mad_ady> thank you for your time - I was hoping I was missing something trivial
[09:52:29 CET] <mad_ady> but if I need to dig in further it may not be worth it.
[09:52:57 CET] <mad_ady> I'll go the v4l2loopback route, which at least duplicates corrupted frames and saves me the effort
[10:00:15 CET] <teratorn> mad_ady: sure
[10:01:37 CET] <teratorn> mad_ady: so you said your camera sometimes drops below 25 fps? why?
[10:03:02 CET] <teratorn> mad_ady: if the host CPU is being overloaded due to your encoding and whatnot... ? that could easily introduce audio glitching irrelated to audio sync
[10:03:12 CET] <teratorn> you may be dropping audio packets, too, in other words
[10:03:17 CET] <mad_ady> there's a problem either with the USB bus or with the camera that causes incomplete frames to be sent
[10:03:24 CET] <teratorn> oh actually btw
[10:03:45 CET] <teratorn> fucking usb webcams are NOTORIOUS for being shitty and bad, and also janking with audio capture
[10:03:49 CET] <mad_ady> yes, but if I were dropping audio it shouldn't drop the framerate as well, should it?
[10:04:28 CET] <teratorn> you're dropping audio because you're maxing out system resources, due to maxing out system resources with video encoding
[10:04:46 CET] <teratorn> which is also doing the best it can, but dropping video frames too, necessarily
[10:04:55 CET] <teratorn> at least in this theory :)
[10:04:59 CET] <mad_ady> here are some sample images when I get corruption: http://imgur.com/a/rTPmy#p041MIb
[10:05:12 CET] <mad_ady> It's a rather nice effect
[10:05:13 CET] <mad_ady> :)
[10:05:21 CET] <teratorn> 1) you need to see if you are dropping audio or not
[10:05:37 CET] <mad_ady> I did this analysis -
[10:05:38 CET] <teratorn> if not, then you have some messed up synchronization issue
[10:06:32 CET] <mad_ady> when having a thread with ffmpeg reading from the camera and writing to a named pipe and a different thread which reads from the named pipe and outputs to a ffmpeg which adds audio, then the ffmpeg which reads audio uses less than 10% CPU
[10:06:45 CET] <mad_ady> and is run on a different core than the one that reads video from the webcam
[10:07:03 CET] <mad_ady> so - unless the problem is on the USB bus and I don't see it - it shouldn't be dropping audio
[10:07:04 CET] <teratorn> two words
[10:07:08 CET] <teratorn> USB
[10:07:11 CET] <teratorn> is shit
[10:07:35 CET] <mad_ady> also, when using v4l2loopback with the same hardware, I am able to get a good feed with audio
[10:07:42 CET] <teratorn> webcams are shit, and webcams via v4l are double shit and do cause audio capture problems ESPECIALLY from on-board shitty audio sources
[10:07:46 CET] <mad_ady> and v4l2loopback duplicates missing frames
[10:08:00 CET] <teratorn> yeah, so
[10:08:19 CET] <mad_ady> well, I've never worked with anything else, so I'd be surprised to see anything "just work" out of the box :)
[10:09:55 CET] <mad_ady> anyway, thank you for your patience
[10:09:56 CET] <teratorn> so why are you trying to capture 25 fps if your hardware can't do it
[10:10:05 CET] <teratorn> if it can do it, why can't it do it all the time?
[10:10:25 CET] <mad_ady> well, the output stream is not 25fps - visually
[10:10:31 CET] <mad_ady> it's more close to 10fps
[10:10:45 CET] <mad_ady> but the video data is/should be 25 fps
[10:11:08 CET] <mad_ady> the idea is that I'm documenting this and I'd like for the commadns to work with most/all webcams
[10:11:20 CET] <mad_ady> some of which will not have this issue, while others might be worse
[10:11:28 CET] <mad_ady> so I was looking for a catch-all solution
[10:11:58 CET] <mad_ady> here's the howto by the way. I still have to add the hardware encoding bits: http://forum.odroid.com/viewtopic.php?f=52&t=23503
[10:12:37 CET] <mad_ady> note the complicated processing workflow I'm doing :) http://imgur.com/7MGKbqp.png
[10:13:31 CET] <bencoh> ffserver? :/
[10:13:37 CET] <furq> you probably don't want to write something that uses ffserver
[10:13:43 CET] <furq> it's going to be dropped in the next minor release
[10:14:08 CET] <mad_ady> @furq: I'm open to suggestions. What is its replacement?
[10:14:17 CET] <furq> there isn't really a straight replacement
[10:14:25 CET] <furq> what protocol are you using it for
[10:14:28 CET] <mad_ady> rtsp
[10:14:42 CET] <furq> i've never really touched rtsp
[10:14:52 CET] <furq> i can recommend a good free rtmp server
[10:15:08 CET] <mad_ady> please do
[10:15:20 CET] <furq> https://github.com/arut/nginx-rtmp-module
[10:15:20 CET] <mad_ady> if you know any which can receive inputs from ffmpeg
[10:15:37 CET] <furq> ffmpeg should be able to send to any rtmp server
[10:15:44 CET] <furq> it definitely works with that one
[10:15:58 CET] <mad_ady> I'll take it into consideration
[10:16:05 CET] <mad_ady> one question though -
[10:16:28 CET] <furq> if you're already transcoding to h264 then rtmp should work fine
[10:16:36 CET] <mad_ady> is there any mechanism to signal to a ffmpeg instance to start transcoding when the first client connects to the rtsp stream?
[10:16:52 CET] <furq> you can do that with nginx-rtmp if you're running the server on the same host
[10:16:56 CET] <mad_ady> I don't want to transcode 24/7 if I only watch my webcam 5 minutes/day
[10:17:04 CET] <mad_ady> nice
[10:17:05 CET] <furq> i guess you might be able to do that over ssh as well, i've never tried
[10:17:23 CET] <furq> https://github.com/arut/nginx-rtmp-module/wiki/Directives#exec_pull
[10:18:01 CET] <mad_ady> nice, this is what I did with my ffserver-trigger script
[10:18:04 CET] <mad_ady> :)
[10:18:25 CET] <mad_ady> I'm guessing it can also turn off ffmpeg when the last user disconnects?
[10:18:49 CET] <furq> there's an exec_play_done event
[10:19:33 CET] <mad_ady> ok, some extra logic might need to be added to keep track of how many users are connected to a stream, but sounds doable, thanks
[10:20:26 CET] <mad_ady> and I don't need to send a -override_ffserver or something from my stream, right?
[10:20:32 CET] <furq> no
[10:21:15 CET] <mad_ady> thank you all for your tips/input
[10:21:47 CET] <furq> that server also supports hls output so you can in theory view the stream in a web browser
[10:21:56 CET] <furq> but it's hls which means there'll be massive delay
[11:21:50 CET] <teratorn> furq: why's ffserver being dropped? :(
[11:22:32 CET] <mad_ady> @teratorn: probably too difficult to maintain
[11:31:12 CET] <furq> it's been unmaintained for years and nobody wants to maintain it
[11:31:23 CET] <furq> which is fine by me because it doesn't work very well and nobody knows how to use it
[11:32:19 CET] <furq> i believe some deprecated apis which it depends on are being dropped in 3.2, so it's being cut loose
[12:13:45 CET] <teratorn> furq: dang, well. I'm using it to produce test streams in some integration tests :(
[12:14:04 CET] <teratorn> I guess there is some other tool that can do that from static files, though.
[14:10:12 CET] <xrg> hi
[14:12:30 CET] <xrg> do any of you know how to delay audio from a video with command line ffmpeg? i tried "ffmpeg -i vid.mp4 -itsoffset 3 -i vid.mp4 -vcodec copy -acodec copy -map 0:0 -map 1:1 vid2.mp4" but somehow it doesnt work, maybe the internet example have another ffmpeg version and syntax changed, im using 0.10.3
[14:13:09 CET] <furq> 0.10 is nearly four years old
[14:13:13 CET] <furq> you should probably upgrade
[14:13:29 CET] <furq> s/four/five/
[14:13:51 CET] <xrg> oh.
[14:14:27 CET] <furq> https://www.johnvansickle.com/ffmpeg/
[16:17:47 CET] <k_sze> What exactly is best_effort_timestamp?
[16:18:36 CET] <DHE> the best guess of what a frame's timestamp should be
[16:18:54 CET] <DHE> barring anything going wrong, it's usually accurate
[16:20:58 CET] <k_sze> How is that different from pts?
[18:41:46 CET] <kerio> hm, why does the wiki say that for archival, ffv1 should have a gop of 1?
[18:43:58 CET] <klaxa> good question, wasn't P-Frame support added not too long ago? maybe it's specifically because P-Frame is so new, that the spec may still change and old archives become invalid
[18:47:03 CET] <c_14> p-frame support was deemed incompatible with the spec
[18:48:04 CET] <TD-Linux> the spec is not yet complete, but currently doesn't specify p-frames at all
[18:55:39 CET] <DHE> but keyframe-only would be more reliable, right?
[18:56:34 CET] <TD-Linux> yes but that isn't as much of an issue (with a smaller size you can use more FEC)
[19:02:19 CET] <DHE> well that too. but if the spec is in flux, would keyframe-only be more reliable with a future version of ffmpeg?
[19:02:35 CET] <TD-Linux> yes
[19:02:41 CET] <TD-Linux> that's why
[19:04:34 CET] <kerio> it's ok, i'm saving like 100MB for a 3.7GB file if i use ffv1 versus mjpeg2000
[19:04:40 CET] <kerio> not worth the effort of reencoding i think
[19:05:44 CET] <kerio> increasing the gop size didn't help the bitrate
[19:06:35 CET] <kerio> just to be thorough
[19:06:57 CET] <kerio> what's the best way of shoving my 16bit grayscale video into one or more lossless h264 streams?
[19:08:05 CET] <furq> ffv1 supports gray16
[19:08:44 CET] <kerio> it does
[19:08:48 CET] <kerio> but i want to try h264
[19:08:53 CET] <kerio> because it's supposedly magic
[19:08:54 CET] <kerio> or something
[19:09:01 CET] <furq> x264 doesn't support it
[19:09:11 CET] <kerio> which is why i said one or more
[19:09:20 CET] <kerio> i'm willing to abuse my bits
[19:09:27 CET] <furq> that doesn't seem very magic
[19:09:55 CET] <kerio> i could just leave this uncompressed tbh
[19:10:11 CET] <DHE> the H264 spec only goes up to 10bit colour
[19:10:16 CET] <kerio> however mj2 achieves almost a 3x compression
[19:10:17 CET] <furq> i imagine that would destroy any compression and time gains you'd get from switching
[19:10:32 CET] <furq> that being splitting it into multiple streams somehow
[19:12:22 CET] <furq> isn't ffv1 much faster than jp2k
[19:12:31 CET] <furq> i don't have libopenjpeg in my build or i'd test
[19:13:49 CET] <kerio> sadly, matlab doesn't do ffv1
[19:13:58 CET] <furq> oh fun
[19:14:22 CET] <kerio> and the mj2s it creates have a DAR of 1:1 for some reason
[19:14:48 CET] <kerio> (not that it makes much sense to watch the output as a normal video without filters inbetween, but)
[19:15:12 CET] <kerio> btw
[19:15:19 CET] <kerio> is there a "normalize" filter for video?
[19:15:29 CET] <kerio> to set the darkest pixel to 0 and the brightest to 1 or 255 or whatever
[19:15:56 CET] <kerio> for each frame
[19:41:18 CET] <kerio> pp=al doesn't seem to do what i want :(
[19:42:39 CET] <shincodex> so uh
[19:43:08 CET] <shincodex> how hard would it be to add ffmpeg to a visual studio building and hoping it just works maybe add a define or 2
[19:43:25 CET] <shincodex> you know and just building it
[19:43:33 CET] <shincodex> and pop goes the mpeg!
[19:44:16 CET] <shincodex> it feels like --toolchain=msvc is doing a release only version no matter what
[19:46:27 CET] <shincodex> makefile 3433
[19:49:41 CET] <shincodex> says 02 or 01
[19:49:54 CET] <shincodex> there is no /Od anywhere
[19:58:40 CET] <BtbN> ffmpeg cannot be built without at least some optimization.
[20:26:26 CET] <IchGucksLive> hi im trying now for days to convert a vid to a tiny projector from Aiptec V10
[20:27:04 CET] <IchGucksLive> i get sound and video but the picture is only 1/3 clear the rest is pixels
[20:27:30 CET] <shincodex> it can
[20:27:39 CET] <shincodex> its just gdb cant handle more than like
[20:27:49 CET] <shincodex> a few megabytes of debugging before it blows up
[20:27:54 CET] <IchGucksLive> ffmpeg -i lsdr09.mp4 -vcodec mpeg4 -pix_fmt yuvj420p -q:v 7 -s:v 640x480 -aspect 1.3333 -r 15 -c:a pcm_s16le -b:a 48k -ar 41100 -ac 2 lsdr_a.asf
[20:28:08 CET] <IchGucksLive> what pix format shoudt i try
[20:28:26 CET] <IchGucksLive> pal8 is the same
[20:28:33 CET] <IchGucksLive> alo 420p
[20:30:24 CET] <klaxa> mpeg4 only supports yuv420p
[20:30:37 CET] <klaxa> are you sure your device is not broken?
[20:30:57 CET] <IchGucksLive> no if i do this to a arcsoft media it works
[20:31:08 CET] <IchGucksLive> but not on the ubuntu ffmpeg
[20:31:20 CET] <kerio> ffprobe the output file from arcsoft media
[20:33:36 CET] <IchGucksLive> kerio:  http://pastebin.com/Z3nwvywc
[20:34:48 CET] <IchGucksLive> all the videos out of the converter come with 2657 kb/s exact bitrate
[20:34:58 CET] <kerio> and that's a file that your projector plays fine?
[20:35:07 CET] <IchGucksLive> yes
[20:35:42 CET] <IchGucksLive> but if i convert with ffmpeg to libxh264 it does not accept the mp4
[20:35:55 CET] <kerio> -profile:v main
[20:36:19 CET] <kerio> as in
[20:37:00 CET] <kerio> ffmpeg -i inputvideo -c:v libx264 -profile:v main -c:a aac out.mp4
[20:38:17 CET] <IchGucksLive> ill try
[20:38:41 CET] <IchGucksLive> i use this ffmpeg -i lsdr09.mp4 -s:v 640x480 -b:v 2560k -c:v libx264 -r 25 -profile:v main -aspect 1.3333 -c:a aac -strict -2 lsdr_x.mp4
[20:40:30 CET] <furq> you can probably get rid of the bitrate
[20:42:41 CET] <IchGucksLive> it does not even accept the file
[20:43:07 CET] <kerio> are you actually scaling the video
[20:43:08 CET] <IchGucksLive> major_brand     : isom
[20:43:24 CET] <kerio> why are you setting so much stuff
[20:43:58 CET] <kerio> also, let's drop the audio for the moment
[20:44:17 CET] <furq> IchGucksLive: -vtag qt
[20:44:23 CET] <kerio> ffmpeg -i lsdr09.mp4 -c:v libx264 -profile:v main -an lsdr_x.mp4
[20:45:06 CET] <IchGucksLive> ok
[20:45:11 CET] <IchGucksLive> lets try
[20:45:39 CET] <IchGucksLive> the ffprobe gives alot of numbers on the h264
[20:45:50 CET] <IchGucksLive>  1:1 DAR 4:3], 2596 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
[20:49:15 CET] <IchGucksLive> kerio:  the projektor does accept the file but there is no frame in it only snow
[20:49:28 CET] <kerio> ffprobe the file?
[20:50:28 CET] <IchGucksLive> http://pastebin.com/tThn8WNH
[20:51:03 CET] <IchGucksLive> bitrate: 186 kb/s
[20:51:08 CET] <IchGucksLive> to low
[20:51:13 CET] <kerio> ...why's the input file 352x288
[20:51:16 CET] <kerio> what is going on
[20:51:18 CET] <kerio> D:
[20:51:38 CET] <IchGucksLive> this is from a CAD system
[20:52:09 CET] <IchGucksLive> i got lots of them
[20:52:57 CET] <IchGucksLive> https://www.youtube.com/channel/UCmwhCL92ZQRSVqFe3jGwJSQ
[20:53:01 CET] <IchGucksLive> they work
[20:53:16 CET] <IchGucksLive> but they dont play on the handheld projektor
[20:53:30 CET] <kerio> goddammit i had shit to do today
[20:53:35 CET] <kerio> now i'm stuck watching videos of CNC machines
[20:53:59 CET] <IchGucksLive> sorry
[20:54:05 CET] <IchGucksLive> but thats my live
[20:54:31 CET] <IchGucksLive> i know i need a modern projektor
[20:56:37 CET] <kerio> ok wood carving aside
[20:56:41 CET] <kerio> try scaling the video to 640x480
[20:56:43 CET] <kerio> maybe that's the issue
[20:56:57 CET] <kerio> to "raise" the bitrate, add a -qp 20
[20:57:12 CET] <kerio> 18 is "perceptually lossless"
[20:57:16 CET] <kerio> the higher it goes the worse the video gets
[20:58:34 CET] <bencoh> -qp with x264? hmmm
[20:58:44 CET] <kerio> of course
[20:58:45 CET] <kerio> what else?
[20:58:51 CET] <c_14> crf?
[20:59:22 CET] <kerio> isn't qp just crf but not depending on the particular brand of h264 you're using?
[20:59:32 CET] <c_14> Don't think so
[20:59:36 CET] <c_14> No clue what qp maps to
[20:59:36 CET] <kerio> like, crf would have to vary if you're using 10bit vs 8bit
[20:59:39 CET] <c_14> if it even maps to anything
[21:00:05 CET] <kerio> hm
[21:00:11 CET] <kerio> ok maybe crf is better
[21:00:33 CET] <c_14> qp does constant quantization
[21:00:39 CET] <c_14> Not constant rate factor
[21:00:52 CET] <kerio> yeah i see
[21:00:55 CET] <c_14> Different rate control
[21:01:11 CET] <IchGucksLive> the Video is not accepted
[21:01:16 CET] <kerio> :(
[21:02:40 CET] <kerio> c_14: ok crf apparently lowers the bitrate if there's a lot of movement
[21:03:00 CET] <kerio> screw that
[21:03:07 CET] <c_14> You mean raises?
[21:03:51 CET] <kerio> "When a scene has a lot of action and motion, it will raise the QP (compressing more). This is because your eye will be distracted by everything going on, and wont have the image on screen for enough time to see the heavier compression"
[21:04:12 CET] <kerio> "CRF is about improving subjective qualitywhat the human eye seesat the expense of objective qualitywhat a PSNR calculation sees."
[21:04:14 CET] <kerio> screw humans
[21:04:18 CET] <kerio> humans suck
[21:05:05 CET] <IchGucksLive> can i add -q:v to libxh264
[21:06:24 CET] <IchGucksLive> arcsoft needs 25min to convert the 3min Vid
[21:06:35 CET] <IchGucksLive> and produces 70MB
[21:10:15 CET] <shincodex> where in this damn make file is msvc LINK.exe being called
[21:10:16 CET] <shincodex> fuck
[21:10:20 CET] <shincodex> call it link.exe for windows
[21:10:22 CET] <shincodex> not just link
[21:17:21 CET] <IchGucksLive> the tiny player also accepts mjpeg
[21:17:33 CET] <IchGucksLive> can i do somthing with that
[21:24:00 CET] <BtbN> shincodex, no, it can't, because it relies on the compiler optimizing out some symbols. So with O0 it will fail
[21:26:58 CET] <kerio> ok WHAT
[21:27:09 CET] <kerio> BtbN: there's visibility options for shit like that
[21:27:21 CET] <BtbN> no.
[21:27:28 CET] <kerio> :<
[21:39:58 CET] <randomjd> !seen orbit
[21:47:17 CET] <IchGucksLive> how do i get a constant bitrate on a mpeg4
[21:47:27 CET] <IchGucksLive> real constant
[21:47:45 CET] <IchGucksLive> minrate maxate use
[21:50:13 CET] <IchGucksLive> sammel at sammel-ub2:~/Videos/youtube16$ ffmpeg -i lsdr_a.asf  -vcodec mpeg4 -b:v 800k -minrate 800k -maxrate 800k -bufsize 800k -c:a copy lsdr_b.asf
[21:50:27 CET] <IchGucksLive> this gives me 2677kb/s
[22:09:27 CET] <IchGucksLive> ok i give up for to day as the projektor Accu is near emty after a hard 6hr try to get rid of WinXP
[22:13:48 CET] <DeadSix27> anyone any idea how to fix this issue when cross-compiling with --enable-libmfx and git clone of https://github.com/lu-zero/mfx_dispatch.git: https://paste.ubuntu.com/23417957/
[22:16:05 CET] <jkqxz> DeadSix27:  The linker segfaulted.  Your toolchain is broken.
[22:16:32 CET] <DeadSix27> so its that, thx
[23:59:30 CET] <kerio> what's the simplest container for ffv1?
[00:00:00 CET] --- Thu Nov  3 2016


More information about the Ffmpeg-devel-irc mailing list