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

burek burek021 at gmail.com
Fri Jan 15 02:05:01 CET 2016

[00:37:19 CET] <durandal_170> thetrueavatar: nope
[00:52:48 CET] <rkantos> Hi.. Could someone give me a simple way to test h264_qsv or check why I'm getting these errors from this command? ffmpeg -i test.nv12.mp4 -b:v 2000k -maxrate 2000k -c:v h264_qsv out.qsv.mp4
[00:52:58 CET] <rkantos> [h264_qsv @ 0000000002c20b00] Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.
[01:37:18 CET] <rkantos> hmm...
[01:37:29 CET] <rkantos> does the h264_qsv require opencl support?
[02:05:29 CET] <Hfuy> Hello.
[02:05:42 CET] <Hfuy> If it says "Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))", does that imply it's reencoding? I asked for -c:v copy
[02:06:01 CET] <c_14> yes
[02:06:12 CET] <Hfuy> Gah.
[02:06:46 CET] <Hfuy> My commandline is something like c:\ffmpeg -i "g:\U5 60439down2 R0-4.m4v" "D:\e1.mp4" -c:a copy -c:v copy
[02:06:57 CET] <Hfuy> should be fairly straightforward, you'd think
[02:07:13 CET] <c_14> options have to be before the output file
[02:07:19 CET] <c_14> Otherwise they're not aplied
[02:07:21 CET] <c_14> *Output options
[02:07:23 CET] <c_14> *applied
[02:07:24 CET] <Hfuy> Really? I thought things after the output was global.
[02:07:26 CET] <Hfuy> Has that changed?
[02:07:36 CET] <c_14> There is no "global" position.
[02:07:47 CET] <c_14> per-file options have to placed before the file they affect
[02:07:51 CET] <c_14> global options can be placed wherever
[02:07:57 CET] <c_14> the -c option is not global
[02:09:40 CET] <Hfuy> Holy hell. 25600 frames per second to rewrap it?
[02:09:51 CET] <Hfuy> Oh well, I guess that's the power of a big RAID.
[02:13:30 CET] <Hfuy> The whole file's only about 90,000 frames. I guess 1GB file by 350MB/second disk performance...
[02:13:44 CET] <Hfuy> I'm surprised it can get it through the CPU that fast.
[02:16:16 CET] <c_14> You're just remuxing. The only real limit is how fast you can copy data into RAM and write it back to disk. The actual remuxing has little overhead.
[02:16:27 CET] <Hfuy> Well, yes, but even so.
[02:16:46 CET] <Hfuy> In the case of m4v to mp4, is it really just throwing a header on it?
[02:17:06 CET] <Hfuy> I guess it has to build a basic atom structure but essentially it's a header and perhaps a tail end.
[02:33:26 CET] <waressearcher2> I can type 100000 characters per second using vim
[03:32:17 CET] <kepstin> um, I have a faster way to remux m4v to mp4. "mv file.m4v file.mp4"
[03:32:40 CET] <kepstin> (they're different extensions for the same format...)
[03:58:03 CET] <hackman42> I'm currently using libVLC for MPEG2 video playback in a tvOS app. Can I just use ffmpeg instead?
[04:03:57 CET] <an3k> Hi, I'm trying to compile ffmpeg and some other stuff and followed https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu but I still get this error http://pastebin.com/7c2biMFq
[04:04:27 CET] <an3k> The ./configure I used is http://pastebin.com/Z9sx7nK7
[04:05:40 CET] <an3k> I mean http://pastebin.com/GXwP4Bbf
[04:16:12 CET] <SpootDev> don't think I had to do the fpic in ubuntu...lemme look
[04:20:31 CET] <SpootDev> yeah, in Alpine linux I had to mess with fpic, but not in ubuntu.  I wrote a script awhile ago to help with my build/deployments if you wanna try it  https://github.com/Meta-Man/Meta-Man.Build/blob/dev-0.0.3/build_deployment_scripts/FFMPEG_Build_Ubuntu.sh   pretty sure it won't eat a kitten
[04:21:27 CET] <SpootDev> cuz kittens give Morbo gas
[04:22:33 CET] <an3k> hehe thanks :)
[04:22:46 CET] <an3k> Is it possible that maybe L-SMASH Works is the problem?
[04:23:00 CET] <SpootDev> no clue
[04:53:56 CET] <an3k> yep, it was L-SMASH Works ... it always wanted to build shared libs and when forced to build static ones it couldn't find its dependencies
[04:54:18 CET] <an3k> oh come one ... /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o: relocation R_X86_64_32 against `__TMC_END__' can not be used when making a shared object; recompile with -fPIC
[04:54:31 CET] <an3k> Guess I'll simply ignore L-SMASH :(
[09:23:13 CET] <abuisson> Hi, I would like to know how to bypass MP4 metadata (moov/udta atom) while doing a remux... for example while doing a simple copy 'ffmpeg -i IN -c:v copy -c:a copy -c:d copy OUT' or a more complex mapping 'ffmpeg -i IN1 -i IN2  -map 0:0 -map 1:1  -c copy -movflags +faststart OUT' ?
[09:25:08 CET] <waressearcher2> abuisson: hallo und herzlich willkommen
[10:24:47 CET] <sgo11> http://pastebin.ubuntu.com/14494824/  I am capturing videos from an usb camera with ubuntu 14.04 LTS. (1), How can I use 30 or 25 fps with my usb camera? The driver always forces to use 1/15. (2), How can I use MJPG instead of yuyv422 ? thanks a lot.
[10:25:49 CET] <sgo11> I did google, some post suggests to use -input_format mjpeg, but my ffmpeg does not have that option argument.
[11:14:03 CET] <Mavrik> sgo11, hmm, if you're missing -input_format I guess you should update your ffmpeg first to get it.
[11:14:16 CET] <Mavrik> As for framerate, I'm concerned because even v4l2 tool doesn't say anything about your device supporting 30fps
[11:14:24 CET] <Mavrik> and the output says "driver switched fps"
[11:14:50 CET] <Mavrik> It's entirely possible that's due to you using raw instead of mjpeg input though (not enough bandwidth)
[11:15:15 CET] <sgo11> Mavrik, v4l2-ctl --list-formats-ext shows 30fps, is that incorrect? I am using ffmpeg from a ppa repo. this is the latest version in that repo...
[11:15:36 CET] <Mavrik> can you pastebin that output?
[11:15:59 CET] <Mavrik> As for PPA... I guess it's not up to date enough, that's usually the case for all Ubuntu deb packaging repos
[11:17:12 CET] <Mavrik> Are you using this PPA: https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media ? Because your version string isn't from a stable release :/
[11:18:11 CET] <sgo11> Mavrik, actually, even if the output video shows 15fps. I don't think that is true. I am bad in English. the video is very slow (lag?). not sure how to express. it is the same result as 4 fps. can I trust the output video info?
[11:19:01 CET] <sgo11> Mavrik, I am using http://ppa.launchpad.net/mc3man/trusty-media/ubuntu/. yeah.
[11:19:42 CET] <sgo11> Mavrik, The previous pastebin link has output of v4l2-ctl --list-formats-ext.
[11:20:15 CET] <Mavrik> hmmmm.
[11:21:19 CET] <Mavrik> sgo11, try "v4l2-ctl --set-parm=30" and then run ffmpeg?
[11:21:26 CET] <sgo11> I am using motion to do motion detection and video output before. it always outputs 4 fps even with mjpeg. I don't know why. that's why I am trying ffmpeg directly. even if ffmpeg shows 15 fps. but the result video is just the same as motion output video 4fps one.
[11:22:01 CET] <sgo11> I will try that now.
[11:22:28 CET] <Mavrik> ah :/
[11:23:13 CET] <sgo11> Mavrik, I didn't start the capturing. the output is weird. $ v4l2-ctl --set-parm=30 >> Frame rate set to 5.000 fps
[11:23:27 CET] <sgo11> I haven't started
[11:23:28 CET] <Mavrik> huh.
[11:23:30 CET] <Mavrik> That IS wierd.
[11:23:57 CET] <sgo11> do I need sudo? I didn't try sudo
[11:24:06 CET] <Mavrik> Nah... hrmf.
[11:24:13 CET] <Mavrik> sgo11, ok, let's try setting resolution first
[11:24:33 CET] <Mavrik> v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=1
[11:24:39 CET] <Mavrik> v4l2-ctl --set-parm=30
[11:24:42 CET] <Mavrik> Does that work?
[11:25:12 CET] <Mavrik> (It seems like the camera thinks it's set to 1600x1200(
[11:25:17 CET] <sgo11> Mavrik, it works. at least, the output shows: Frame rate set to 30.000 fps
[11:25:28 CET] <Mavrik> Try capture now at 640x480
[11:25:32 CET] <Mavrik> It should now be mjpeg as well.
[11:25:47 CET] <Mavrik> (pixelformat=1 - mjpeg, pixelformat=0 - yuv422)
[11:25:50 CET] <sgo11> ok. I will run this command again: "ffmpeg -f v4l2 -framerate 30 -video_size 640x480 -i /dev/video1 output.mkv"
[11:27:27 CET] <sgo11> Mavrik, not really. set to 15fps again. http://pastebin.ubuntu.com/14495070/
[11:28:11 CET] <sgo11> Mavrik, maybe 15fps is OK for me. but I just doubt the output video is really 15 fps. it looks exactly the same as 4 fps one created by motion.
[11:29:00 CET] <sgo11> Mavrik, this is the motion log if you are interested: http://pastebin.ubuntu.com/14494999/
[11:29:55 CET] <sgo11> the motion log has event_new_video FPS 4. whatever I tried to modify motion.conf, it's always 4 fps.
[11:33:25 CET] <sgo11> the usb camera has Low luminance compensation function. (I am not sure how to say this properly in English). Will that result in low fps? can I turn it off somehow?
[11:35:00 CET] <sgo11> I did google, maybe it should be called "Low light compensation". that is a function in the usb camera device hardware.
[11:47:40 CET] <Mavrik> sgo11, yes, motion detection, luminance correction, etc. can mess up your FPS and cause camera to batch frames
[11:51:30 CET] <sgo11> Mavrik, this is the output of --list-ctrls: http://pastebin.ubuntu.com/14495164/  how to turn off luminance correction? should I change backlight_compensation or exposure_auto or something else?
[11:53:13 CET] <sgo11> by the way, with v4l2-ctl --set-ctrl or v4l2-ctl --set-fmt-video, will this affect the result permanently? or will this lose after a reboot?
[12:00:26 CET] <Taoki> Hello. How do I make ffmpeg ignore missing frames when compiling a series of png files? It works if for instance I have 001.png + 002.png + 003.png, but not if I have 001.png + 003.png.
[12:00:33 CET] <Taoki> I tried using the -r flag but no difference.
[12:00:44 CET] <Taoki> Currently it stops at 001.png.
[12:05:45 CET] <Taoki> Got it! Simply had to use %*.png
[12:39:03 CET] <sgo11> Mavrik, some updates. after I set exposure_auto to be manual and then set exposure_absolute to be 900. motion software can output 11 fps video now. I tried ffmpeg command directly, the result is the same as motion software. Now, I have three questions hopefully if you or anyone can answer me.
[12:39:06 CET] <sgo11> (1), from my test, is the fps determined by usb cam hardware only? no software arguments can change anything. (2), does v4l2-ctl --set-ctrl affect the param permanently? if no, how to make it permanent? (3) now, I am pretty sure ffmpeg shows fps info incorrectly. Even if the output video shows 15 fps and all player such as vlc tells me 15 fps. but it's wrong. before it was 4 fps and now it's 11 fps. how can I tell the true fps from the video file?
[14:10:40 CET] <sgo11> brb
[14:55:31 CET] <an3k> Hi, when I configure libvpx with --disable-static latest ffmpeg from git complains about libvpx being too old (>= 0.9.1)
[14:55:53 CET] <an3k> with just this option left out everything is fine again.
[15:30:34 CET] <flamia> so... are we supposed to use h265 yet?
[15:31:30 CET] <flamia> only issue i see is that even with veryfast preset is really slow
[15:32:47 CET] <flamia> nvm i get the same speed using medium
[15:34:39 CET] <Mavrik> Well, the encoder is slow as heck and the HW decoders are very rare.
[15:34:55 CET] <Mavrik> So most people won't be able to watch your output comfortably :)
[15:35:04 CET] <an3k> but the files are sooo tiny :)
[15:35:07 CET] <flamia> you're saying that even watching is expensive?
[15:35:12 CET] <flamia> O.o
[15:35:35 CET] <flamia> is crf working the same as in h264?
[15:35:41 CET] <an3k> ever compared a crf22 H.264 with a crf22 HEVC? :)
[15:35:57 CET] <flamia> does the crf  point at the same quality?
[15:36:20 CET] <flamia> yeah. i read 50% smaller
[15:36:24 CET] <an3k> more
[15:36:49 CET] <flamia> i encode at 24 frame per second
[15:37:11 CET] <an3k> I don't know if both do the same crf but afaik they do, especially I couldn't find as much settings as for x264
[15:37:35 CET] <flamia> i only set crf
[15:38:08 CET] <flamia> but hardware decoding is on some new pc or still not?
[15:38:36 CET] <an3k> in HEVC i do so too but in H.264 I did set more
[15:40:01 CET] <an3k> welcome J_Darnley :)
[15:40:13 CET] <an3k> libx264: PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME" --enable-shared
[15:40:24 CET] <an3k> libx265: PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME" -DENABLE_SHARED:bool=on ../../source
[15:41:15 CET] <an3k> libvpx: PATH="$HOME/bin:$PATH" ./configure   --prefix="$HOME"   --disable-examples   --disable-unit-tests   --disable-static
[15:41:51 CET] <an3k> ffmpeg: PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/lib/pkgconfig" ./configure   --prefix="$HOME"   --extra-cflags="-I$HOME/include"   --extra-ldflags="-L$HOME/lib"   --disable-static   --enable-shared   --enable-gpl   --enable-avresample   --enable-libvpx   --enable-libx264   --enable-libx265
[15:42:44 CET] <flamia> probably intel skylake wil support h265
[15:43:05 CET] <an3k> and the result was ffmpeg complained about the libvpx version being too old. As soon as I ran configure for libvpx without --disable-static (followed by make; make install) again ffmpeg wasn't complaining anymore
[15:43:37 CET] <J_Darnley> So what does ffmpeg's config.log say?
[15:43:37 CET] <flamia> what about youtube? still using h264?
[15:44:00 CET] <furq> youtube uses h264 and vp9
[15:48:23 CET] <an3k> J_Darnley: sorry, the correct ffmpeg configure is PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/lib/pkgconfig" ./configure   --prefix="$HOME"   --extra-cflags="-I$HOME/include"   --extra-ldflags="-L$HOME/lib"   --disable-static   --enable-shared   --enable-gpl   --enable-avresample   --enable-libvpx   --enable-libx264   --enable-libx265
[15:49:04 CET] <an3k> config.log http://pastebin.com/hgrkfrqY
[15:50:04 CET] <J_Darnley> So.. what's in ~/lib?
[15:51:43 CET] <an3k> no vpx lib at all
[15:52:06 CET] <J_Darnley> Then I guess your problem lies with vpx.
[15:52:19 CET] <J_Darnley> Does it need --enable-shared?
[15:56:03 CET] <an3k> Hmm. Let me start from scratch. This is currently too confusing. But you answer your Q: It has the --enable-shared option but did not failed when just --disable-static is set.
[15:56:55 CET] <J_Darnley> Perhaps libvpx behaves like x264.
[15:57:26 CET] <J_Darnley> You need to enable whichever library you want.
[15:58:11 CET] <J_Darnley> Or do I mean like ffmpeg
[15:58:14 CET] <J_Darnley> Whichever
[15:58:32 CET] <an3k> :)
[15:58:34 CET] <J_Darnley> Try --enable-shared if you want a shared lib from it
[15:59:03 CET] <an3k> yeah I just did but ran into other errors now I didn't had before. That's what I meant with confusing and starting from scratch
[16:01:41 CET] <J_Darnley> ah ok
[16:19:50 CET] <an3k> J_Darnley you're right. I missed --enable-shared which caused in no libs getting made at all. That is however different from libx264 and libx265 as well as ffmpeg itself. Sorry for distraction and confusion
[16:33:38 CET] <J_Darnley> Don't worry.
[17:02:49 CET] <Prelude2004c> hey everyone good day.. is there any way to have ffmpeg exit if frames per second drop below 20 for example ?
[17:03:53 CET] <kepstin> Prelude2004c: why do you want to do that?
[17:04:53 CET] <Prelude2004c> because i am picking up some sources from europe and sometimes ffmpeg drops below 20fps .. then i restart the stream get and it picks back up
[17:04:54 CET] <Prelude2004c> its odd
[17:06:25 CET] <Prelude2004c> it is odd.. i dont know why it does that
[18:40:15 CET] <askldjd> Hey, quick question. I'm running ffmpeg via command line two different ways. The first way, I'm taking input from stdin and outputting to file.ogg.  The second way, I'm taking input from stdin and outputting to stdout, then capturing stdout with another app and writing that to file.ogg. The outputs from these two methods are very different.
[18:40:32 CET] <askldjd> The first works and creates a valid ogg file that I can play. The second does not.
[18:41:17 CET] <askldjd> Looking in a hex editor, I am getting sane data from stdout written to my file, but some of the header data is just... different (not wrong - but different from method 1)
[18:41:51 CET] <askldjd> Using this in method 1:  var ffmpeg = execFile('ffmpeg.exe', ['-f', 'alaw', '-ar', '16415', '-i', '-', '-f', 'oga', '-codec:a', 'libvorbis', '-qscale:a', '2', 'stuff.ogg']);
[18:42:00 CET] <askldjd> and this for method 2: var ffmpeg = execFile('ffmpeg.exe', ['-f', 'alaw', '-ar', '16415', '-i', '-', '-f', 'oga', '-codec:a', 'libvorbis', '-qscale:a', '2', '-']);
[18:42:28 CET] <askldjd> am I missing some option that ffmpeg is implying when the output file is specified versus when the output is to stdout?
[18:44:17 CET] <askldjd> The file size for method 2 also ends up being about double that for method 1. Not sure what the heck it's doing.
[18:59:20 CET] <podman> I'm starting to wonder if HLS might make more sense than DASH right now
[18:59:42 CET] <JEEB> yes, it is generally much better supported
[18:59:59 CET] <JEEB> also I feel like HLS.js will be a better alternative to DASH.js for the MSE camp
[19:00:58 CET] <podman> Yeah, if I wanted to support ABS on iOS, I'd need to use HLS because safari doesn't support MSE yet
[19:01:58 CET] <podman> and I have no idea what android supports
[19:02:22 CET] <JEEB> android >= 4 supports HLS and there's a pretty good DASH library from google
[19:02:46 CET] <furq> hls.js apparently works in android chrome
[19:02:57 CET] <podman> yeah, looks like chrome on android supports MSE
[19:03:16 CET] <podman> so, dash works everywhere except iOS
[19:03:23 CET] <podman> HLS works pretty much everywhere?
[19:03:39 CET] <JEEB> (meanwhile the DASH player for MSE from Google is not really good... of course if you are mostly aiming at Chrome and you are using a very limited subset of things in DASH it will work)
[19:03:52 CET] <podman> yeah, just regular VoD stuff
[19:04:00 CET] <JEEB> even for VoD
[19:04:00 CET] <podman> it's pretty good at that
[19:04:10 CET] <JEEB> I was able to use libavformat and create stuff it really didn't like
[19:04:31 CET] <JEEB> ffmpeg cli does some timestamp/packet dropping that causes that kind of stuff not to be created I guess
[19:04:36 CET] <podman> yeah, i'm not trying to create some things it doesn't like
[19:04:56 CET] <podman> haven't really had issues with it yet
[19:05:12 CET] <JEEB> it's not like I'm *trying* , just noting that I'd say that in general you'd be seeing more compatible implementations on the DASH side
[19:05:15 CET] <JEEB> uhh
[19:05:16 CET] <JEEB> HLS side
[19:06:16 CET] <JEEB> anyways, it's always "fun" to see how lavf and ffmpeg cli create different stuff due to the random things ffmpeg cli does :)
[19:06:26 CET] <podman> anyway. Seems like hls gets support in any desktop browser that supports MSE, support in iOS, support in android either though MSE or native support, flash though any number of libraries for fallback if needded
[19:06:27 CET] <JEEB> (ffmpeg cli uses lavf internally)
[19:06:36 CET] <JEEB> yeah
[19:06:49 CET] <podman> DASH is missing iOS which is kind of a big issue
[19:07:02 CET] <podman> i'd need to make HLS representations anyway
[19:07:03 CET] <podman> hmm
[19:19:41 CET] <podman> dash.js doesn't support mpeg-2 TS containers, right? that way i could pretty much use the segments interchangeably and just have a MPD and M3U8 for dash and hls respectively?
[19:19:59 CET] <JEEB> most probably not
[19:20:51 CET] <podman> i guess i could write my own?
[19:21:09 CET] <JEEB> I... guess
[19:21:20 CET] <JEEB> dash.js seems like something /very/ over-engineered tho
[19:23:37 CET] <furq> why would you do that instead of just using hls
[19:23:56 CET] <furq> other than the vague spectre of deprecation
[19:24:03 CET] <podman> pretty much that
[19:24:24 CET] <furq> as long as there's a working js implementation you should be pretty much fine
[19:24:37 CET] <furq> unless ios devices all retroactively move to dash
[19:25:13 CET] <podman> which is unlikely, sure
[19:30:10 CET] <podman> i guess potentially a bigger issue is HEVC
[19:34:18 CET] <furq> yeah if you need any features which aren't already in hls.js then you'll be waiting for apple to maybe release some specs if they feel like it
[19:35:10 CET] <podman> What does youtube do for iOS in safari?
[19:36:48 CET] <podman> interesting, just progressive download
[19:37:04 CET] <furq> i think they use hls for livestreaming
[19:37:22 CET] <furq> for vod then i assume they use http like they did pre-dash
[19:37:32 CET] <podman> yeah, that's what it looks like
[19:37:32 CET] <furq> which is restricted to 360p and 720p
[19:37:43 CET] <furq> s/then//
[19:37:56 CET] <podman> which is also what we currently do
[19:38:45 CET] <furq> i internally associate dash with massive headaches because seeking was broken for me on youtube for about a year after they deployed it
[19:38:57 CET] <furq> and then the whole MSE-on-firefox fiasco
[19:39:29 CET] <furq> it's probably an unfair assessment though
[19:48:47 CET] <podman> I've just started messing around with it and am pretty happy so far
[19:48:55 CET] <podman> but lack of iOS support is very annoying
[19:50:47 CET] <shincodex> then gut the makefile for it.
[19:51:53 CET] <furq> what
[19:55:45 CET] <shincodex> trying to figure out if pthreadA can write to memory of heap allocated array
[19:56:01 CET] <shincodex> while pthreadB can read another section of heap allocated array
[19:56:04 CET] <shincodex> without a mutex
[19:56:09 CET] <shincodex> or locking of any form safely
[22:50:09 CET] <vidjufeffex> Can anyone help me find a single example that use the -time_base flag in ffmpeg or the "timebase" option using x264opts, the former is an unrecognized command the latter comes up as a bad option
[22:57:23 CET] <Asterisk> Is there an effective way to chain multiple scalers together in FFMpeg without having to write to an intermediate file?
[22:58:25 CET] <J_Darnley> Use more than 1filter
[22:59:33 CET] <Asterisk> How can I set sws_flags separately for each filter in the sequence?
[23:00:39 CET] <J_Darnley> give a flags argument to each scale filter
[23:00:41 CET] <J_Darnley> http://ffmpeg.org/ffmpeg-filters.html#scale-1
[23:08:09 CET] <Asterisk> Ah, I need to set the sws_flags paramater within each -vf block, not preceding them.
[23:08:10 CET] <Asterisk> Thanks.
[23:09:44 CET] <J_Darnley> What do you mean "each block"  You can only have 1
[23:11:38 CET] <Asterisk> I guess I need to study the filtergraph syntax more thoroughly.
[23:12:18 CET] <J_Darnley> -vf "scale=w:h:flags=X,scale=w:h:flags=X"
[23:12:31 CET] <J_Darnley> (why you wantto do this I have no idea)
[23:12:32 CET] <Asterisk> Thanks.
[23:15:16 CET] <Asterisk> It's for classic DOS game videos.  They usually have a source resolution of 320x200, but a pixel aspect ratio of 5:6.  So the best way to make a 720p or 1080p video that both preserves the original pixely graphics and corrects the aspect to 4:3 is to upscale to 1600x1200 with a point scaler, then use an interpolative scaler to downscale to e.g. 1440x1080.
[23:15:49 CET] <J_Darnley> Oh god!  Use an aspect ratio!
[23:15:54 CET] <Asterisk> I was previously using Avisynth to do it, but I wanted to push everything directly to FFMpeg so it could be easily automated.
[23:16:06 CET] <Asterisk> What do you mean?
[23:16:43 CET] <J_Darnley> scale to whatever multiple you want then... what's the option?  let me look
[23:17:17 CET] <J_Darnley> -aspect 4:3
[23:17:46 CET] <J_Darnley> Or I'm sure there's a filter for that too
[23:18:43 CET] <Asterisk> But the point scale to 1600x1200 already corrects the aspect ratio without distortion.
[23:19:08 CET] <J_Darnley> Oh yes
[23:19:14 CET] <J_Darnley> why are you scaling twice then?
[23:19:46 CET] <Asterisk> To scale down to 1080 or 720 vertically *with* interpolation.
[23:20:15 CET] <J_Darnley> i hate people
[23:20:17 CET] <Asterisk> The goal is to preserve the pixels.
[23:21:23 CET] <durandal_1707> there is xbr and supersai and hqx filter
[23:22:01 CET] <Asterisk> Those attempt to smooth away the pixels.
[23:22:37 CET] <Asterisk> I'm trying to replicate the original appearance of the game graphics.
[23:22:39 CET] <durandal_1707> nope. Have you tried it?
[23:23:25 CET] <durandal_1707> what's wrong using single scale filter?
[23:23:40 CET] <durandal_1707> you can chain filters
[23:23:58 CET] <Asterisk> That's what I'm doing -- chaining two scaling filters.
[23:23:59 CET] <durandal_1707> -vf scale,scale,scale,....
[23:24:38 CET] <Asterisk> Upscale to 1600x1200 with a nearest-neighbor scaler, then use interpolation to downscale to 1440x1080 from there.
[23:26:10 CET] <durandal_1707> using sws_flags options?
[23:27:20 CET] <Asterisk> Right.  I set "neighbor" for the upscale, and "lanczos" for the "downscale".
[23:28:42 CET] <furq> do you really need nearest scaling
[23:28:51 CET] <furq> i've upscaled plenty of game footage with bilinear and it looks fine
[23:29:19 CET] <Asterisk> I don't think upscaling with bilinear looks fine at all.
[23:29:28 CET] <TD-Linux> ick, not retro games :)
[23:29:32 CET] <Asterisk> It fuzzes all of the pixel boundaries.
[23:29:59 CET] <furq> shrug
[23:30:04 CET] <Asterisk> I'm upscaling DOS games with a res of 320x200 and non-square pixels.
[23:30:05 CET] <TD-Linux> (but there are possibly better upscalers than nearest that would antialias the pixel boundaries, essentially)
[23:30:06 CET] <furq> i use bilinear scaling in mame
[23:30:14 CET] <furq> maybe i've just got used to it
[23:30:16 CET] <TD-Linux> you monster
[23:30:32 CET] <TD-Linux> are you sure it's actually bilinear scaling though?
[23:30:38 CET] <Asterisk> But antialiasing the pixel boundaries would make it worse, not better.  You're supposed to see discrete pixels.
[23:30:44 CET] <furq> it says it's bilinear scaling in the options
[23:30:59 CET] <furq> actually it says "bilinear filtering"
[23:31:55 CET] <TD-Linux> https://github.com/haasn/mpvhq-upscalers/blob/master/Ark-small.md
[23:31:55 CET] <durandal_1707> Asterisk: discrete 32x32 blocks
[23:31:58 CET] <Asterisk> Bilinear filtering in game options usually refers to upscaling textures for 3D.
[23:32:12 CET] <TD-Linux> it might be only doing bilinear on the boundaries
[23:32:57 CET] <Asterisk> TD-Linux: Only "oversample" is showing proper graphics in those shots.  Everything else is horribly distorted.
[23:33:21 CET] <Asterisk> durandal_1707: ?
[23:33:32 CET] <TD-Linux> Asterisk, I linked it only for bilinear, none of those scalers are designed for pixel art
[23:34:10 CET] <JEEB> Asterisk: btw I recommend you try the zimg-library based zscale library for the non-nearest neighbor scaling :)
[23:34:12 CET] <Asterisk> TD-Linux: Exactly -- that's why I'm using the nearest-neighbor upscale initially.
[23:34:36 CET] <JEEB> s/zscale library/zscale filter/
[23:34:41 CET] <durandal_1707> He mentioned he don't want pixel art
[23:35:03 CET] <Asterisk> JEEB: I tried that with VapourSynth, and it works pretty well, but I wanted to automate everything with FFMpeg.
[23:35:20 CET] <JEEB> durandal_1707 made a filter into FFmpeg using zimg :P
[23:35:25 CET] <JEEB> which is called zscale
[23:35:32 CET] <Kenneth___> I'm looking for documentation on using SIGINT to terminate ffmpeg but I can't find it any more
[23:35:38 CET] <JEEB> (as opposed to 'scale')
[23:35:50 CET] <Kenneth___> Is that still supported?  Is it documented anywhere?
[23:35:58 CET] <Asterisk> Ah, cool, I'll give that a try.
[23:37:15 CET] <JEEB> also zimg is now the default scaler @ vs, which is <3
[23:38:02 CET] <durandal_1707> but its slower
[23:38:58 CET] <Asterisk> Meh, I need to recompile ffmpeg to support zscale.
[23:40:15 CET] <durandal_1707> indeed
[23:40:43 CET] <JEEB> durandal_1707: uhh I'm not going to comment on the FFmpeg vf wrapper's speed, but the base library and the VS wrapper of it are pretty fast enough
[23:41:07 CET] <JEEB> and IIRC threads much better than swscale in VS, although I'd have to actually get some numbers out for that
[23:41:17 CET] <durandal_1707> compared to swscale
[23:41:47 CET] <JEEB> but to be honest, even if the FFmpeg vf wrapper would be slower, as long as it's not unbearably slow I'd use it
[23:41:54 CET] <durandal_1707> Yes I want numbers
[23:41:55 CET] <JEEB> correct >= SUPAH OPTIMIZED
[23:42:12 CET] <JEEB> although zimg has plenty of rice in it too
[23:43:13 CET] <durandal_1707> it have no real support for packed formats
[23:43:33 CET] <durandal_1707> last time I looked
[23:43:53 CET] <JEEB> sure, I didn't say it was more universal in that sense
[23:44:19 CET] <durandal_1707> Its shame
[23:44:32 CET] <TD-Linux> this is still my favorite upscaling https://my.mixtape.moe/babbpi.jpg
[23:44:47 CET] <TD-Linux> unfortunately it's a lot heavier than ffmpeg
[23:46:23 CET] <furq> ok that took far too long to figure out how to get a filtered screenshot out of mame, but
[23:46:36 CET] <furq> http://i.imgur.com/H480tei.png is uglier than http://i.imgur.com/Kt8GKaG.jpg
[23:46:56 CET] <TD-Linux> yeah that's not bilinear
[23:47:31 CET] <furq> the only difference is that i enabled "bilinear filtering"
[23:47:49 CET] <TD-Linux> err the second screenshot is
[23:47:53 CET] <furq> oh right
[23:48:09 CET] <llogan> has anyone compared yadif and w3fdif lately?
[23:49:10 CET] <furq> but yeah pixels aren't supposed to look that crisp and i don't like any of the faux crt filters
[23:49:24 CET] <furq> not that mame comes with any
[23:50:07 CET] <Asterisk> furq: That's a console/arcade game, anyway.  Pixels *should* look nice and crisp for PC games that were intended for use with RGB displays.
[23:51:03 CET] Action: TD-Linux still has one of those sony rgb monitors on his "holy grail" list
[23:57:27 CET] <Asterisk> Compare with EGA graphics - http://i.imgur.com/RL3Sxfq.png vs. http://i.imgur.com/Ochy0nK.png
[00:00:00 CET] --- Fri Jan 15 2016

More information about the Ffmpeg-devel-irc mailing list