Guest asrequested Posted September 28, 2019 Share Posted September 28, 2019 (edited) But you should probably start with this: hwdec=d3d11va hwdec-codecs=all deband interpolation video-sync=display-vdrop log-file="C:\Users\{my name}\Desktop\mpv log.txt" Edited September 28, 2019 by Doofus Link to comment Share on other sites More sharing options...
Guest asrequested Posted September 28, 2019 Share Posted September 28, 2019 (edited) If you want to get an idea of how to write an mpv.conf, here is mine with some auto-profiles: gpu-api=auto hwdec=d3d11va opengl-pbo scale=ewa_lanczossharp dither-depth=10 icc-profile=C:\Windows\System32\spool\drivers\color\My profile 4.icm deband deband-iterations=2 saturation=0 brightness=-2 contrast=0 vf=d3d11vpp=deint=no hwdec-codecs=all force-seekable=yes sub-create-cc-track=yes sub-pos=90 sub-ass-override=no audio-stream-silence=yes audio-device=wasapi/marantz (NVIDIA High Definition Audio) audio-exclusive=yes af=lavcac3enc=yes:640:2 log-file="D:\mpv logs\Theater mpv log.txt" [Interlaced] profile-desc=cond:p["video-frame-info/interlaced"] vf=d3d11vpp=deint=yes:interlaced-only=yes:mode=adaptive [720p] profile-desc=cond:p["video-params/w"]==1280 vf=d3d11vpp=deint=no [HDR] profile-desc=cond:p["video-params/primaries"]=="bt.2020" hdr-compute-peak=no tone-mapping=mobius tone-mapping-param=0.2 tone-mapping-desaturate=1 icc-profile=C:\Windows\System32\spool\drivers\color\Adobe RGB (1998) D65 WP 2.2 Gamma.icc target-peak=200 hwdec=d3d11va scale=bilinear vf=d3d11vpp=deint=no deband deband-iterations=1 video-sync=audio contrast=0 saturation=0 brightness=-2 Edited September 28, 2019 by Doofus Link to comment Share on other sites More sharing options...
Invader115 10 Posted September 28, 2019 Author Share Posted September 28, 2019 (edited) "hqdn3d" is a denoising filter I found in FFMPEG's documentation - which leads me to where I think I went wrong. I was unaware of MPV's own GPU-oriented settings. At some point in MPV's documentation it linked to FFMPEG's video filters and I'd taken that to mean I had to mix and match my settings from there. A simple CTRL+F in MPV's docs led me to the settings you put in the starter mpv.conf you made, revealing the vast supply of settings I should have been using all these hours. Better yet, applying your .conf contents worked like a charm. The enhancements set in without tanking the performance. I should reiterate that 24 hours ago I had literally no experience tinkering with MPV... It's quite late and I'm tired, but at some point tomorrow I'll restart the endeavor with this new knowledge in mind. EDIT: Just saw your new reply. Having a template to go off of will be immensely helpful! That'll give me some direction when I get back to it tomorrow. Edited September 28, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted September 28, 2019 Share Posted September 28, 2019 I can help, if you have questions. Link to comment Share on other sites More sharing options...
Invader115 10 Posted September 29, 2019 Author Share Posted September 29, 2019 It's been a couple days and I've been a lot more successful with my experimentation. I've got a lot of artifact removal working, although the forced noise effect MPV's "Deband" option always applies is annoying. Even setting "deband-grain=0" doesn't totally remove it. "Deband" does everything I want and then messes things up in its own way; I'm still looking for ways around that. Interpolation and upscaling have shown progress, but both still have issues I've yet to smooth out. Interpolation is just going to take some trial-and-error experimenting, and upscaling's pretty great aside from some aliasing. Each of those will get some attention later. A MadVR effect I used to use, "Thin Edges", has yet to be replicated in my configuration for MPV, but I haven't done much research into that yet. It was an important effect, especially for standard-def content (trimming off parts of the image let MadVR replace it with something sharper and better-looking) but I expect it's possible. That's progress so far. The tinkering goes on. Link to comment Share on other sites More sharing options...
Guest asrequested Posted September 30, 2019 Share Posted September 30, 2019 When you're done, post your config. It'll be interesting to see what you come up with. Link to comment Share on other sites More sharing options...
Invader115 10 Posted September 30, 2019 Author Share Posted September 30, 2019 (edited) EDIT: Turns out the 7 MB, 4K screenshots I posted got compressed when I attached them to the post. They're mostly useless now... gotta see them pristine and uncompressed for it to make sense. It's way too late for me to be awake, but that also means it's too late for anything to distract me from comparing subtle differences between video frames. So, the first attachment is my "goal" frame, which was originally 1920x1080 with fairly pronounced compression artifacts. The attached frame was rendered with my tried-and-true MPC-BE + MadVR combo, with it set to my "maximum effectiveness" preset. This is my configuration of MadVR at its best. Ideally, MPV would match this as closely as possible. (Note: motion smoothing is disabled here, as none is present in my MPV yet. No artifacts from that, then.) It just looks "right", doesn't it? What little artifacting is still there exists only because my hardware can't be pushed that far. It doesn't really matter, though, because the whole frame looks sharp and clean. That level of artifacting will only be noticed on occasion by a trained eye. -------------------- Now, the second attachment. This is my best attempt with MPV so far, but there's a pretty substantial gulf between this and the goal -- by my exacting standards, anyway. Disregarding the black bars on the sides, which are just a goof-up from when I took the screenshot, you can see much more visible compression artifacts on the flat-colored wall in the background, and the rest of the image is generally softer. The way I'd describe it is "out of focus". I'll admit that I get used to this configuration when I stop staring at an individual frame and let the video roll, but when I later return to MadVR and watch something, the higher picture quality is immediately clear. Since this is using MPV, I'll share the mpv.conf used to render this below: hwdec=d3d11va-copyhwdec-codecs=allopengl-pbodebanddeband-iterations=4deband-threshold=128deband-range=1deband-grain=0vf=hqdn3d:luma_spatial=20.0:chroma_spatial=20.0:chroma_tmp=0.01:luma_tmp=0.01sigmoid-upscalingsigmoid-center=1.0sigmoid-slope=19scale=ewa_lanczossharpscale-radius=1force-seekable=yesvideo-sync=display-vdroplog-file="C:\Users\{my name}\Desktop\mpv log.txt" There are two separate artifact removal tools in use there, but that's deliberate. Their combined effect is noticeably better than either on its own, and the FFMPEG-based tool is necessary to remove the stupid noise effect MPV's tool adds. Some of the rest is just me spitballing, and I'm only loosely aware what most of these things actually do; configuring MPV has been more about picking a frame to judge by, and going back-and-forth between Notepad++ and Emby Theater judging what helps and what doesn't. My confidence in MPV is somewhat shaken. I've put in several hours total messing with this, and I've yet to get the scaling on MadVR's level of unaliased sharpness. The "thin edges" effect I mentioned before is in use in the MadVR frame I shared, and it's responsible for much of the sharpness. My research has yet to reveal a way to replicate this in MPV; FFMPEG has a filter along these lines, but activating it annihilates MPV's performance. Artifact removal would already be solved if I could find a way to avoid adding grain with the "Deband" MPV setting. Unfortunately, the artifact removal strength in the attached MPV frame is the best I can manage, based on around an hour of tinkering solely with those settings. In my experience, pushing them further than this only results in new artifacts. Interpolation hasn't been tinkered with yet, but I generally consider that a lower priority than the rest. Anyway, I'm not done messing with this but I'm steadily running out of ideas. More research will reveal more options, I'm sure, but it's not going great so far. Better than it was a couple days ago, but still far from the finish line. Edited September 30, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted September 30, 2019 Share Posted September 30, 2019 For this level of testing, you should be using mpv as a standalone. You can use frame advance to force a redraw and be able to take a capture of the rendered frame, instead of the desktop. Maybe post a question for the mpv guys? Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 1, 2019 Share Posted October 1, 2019 And I don't agree with you on noise removal. You're testing with animation, which is a poor source to test with. If you smooth out the image that much with skin on actual people, it doesn't look very good. Some grain, is desirable. More texture, more life-like. Link to comment Share on other sites More sharing options...
Invader115 10 Posted October 1, 2019 Author Share Posted October 1, 2019 I'm sure you're right about that; with MadVR I have several presets mapped to different keys, geared for different types of content. I chose animation as my testbed because many of the shows I watch on a regular basis are animated, and I'm particularly fond of the improvements I was able to apply to them in my old setup. I can pick some live-action content to test with as well, but my intention was to nail down animated content before doing it all over again for live-action stuff. Perhaps I should flip that around, though, because with the MPV tools I've already figured out it's probably far easier to match MPV's live-action enhancements with what I'm used to. Also, I'll take your advice and test using standalone MPV. I was going through Emby Theater because all my content is on a separate machine, but it won't be hard to transfer over some samples for testing. Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 1, 2019 Share Posted October 1, 2019 Ah, yeah, having different configs for different media types would make sense. Then you can set up some auto-profiles, if there is a property that matches. I've done that for a few. I was just looking at the list of filters available. So many to choose from: addroi Add region of interest to frame. amplify Amplify changes between successive video frames. ass Render ASS subtitles onto input video using the libass library. atadenoise Apply an Adaptive Temporal Averaging Denoiser. avgblur Apply Average Blur filter. bbox Compute bounding box for each frame. bench Benchmark part of a filtergraph. bitplanenoise Measure bit plane noise. blackdetect Detect video intervals that are (almost) black. blackframe Detect frames that are (almost) black. boxblur Blur the input. bwdif Deinterlace the input image. chromahold Turns a certain color range into gray. chromakey Turns a certain color into transparency. Operates on YUV colors. chromashift Shift chroma. ciescope Video CIE scope. codecview Visualize information about some codecs. colorbalance Adjust the color balance. colorchannelmixer Adjust colors by mixing color channels. colorkey Turns a certain color into transparency. Operates on RGB colors. colorhold Turns a certain color range into gray. Operates on RGB colors. colorlevels Adjust the color levels. colormatrix Convert color matrix. colorspace Convert between colorspaces. convolution Apply convolution filter. copy Copy the input video unchanged to the output. cover_rect Find and cover a user specified object. crop Crop the input video. cropdetect Auto-detect crop size. cue Delay filtering to match a cue. curves Adjust components curves. datascope Video data analysis. dctdnoiz Denoise frames using 2D DCT. deband Debands video. deblock Deblock video. dedot Reduce cross-luminance and cross-color. deflate Apply deflate effect. deflicker Remove temporal frame luminance variations. deinterlace_qsv QuickSync video deinterlacing dejudder Remove judder produced by pullup. delogo Remove logo from input video. derain Apply derain filter to the input. deshake Stabilize shaky video. despill Despill video. detelecine Apply an inverse telecine pattern. dilation Apply dilation effect. doubleweave Weave input video fields into double number of frames. drawbox Draw a colored box on the input video. drawgraph Draw a graph using input video metadata. drawgrid Draw a colored grid on the input video. drawtext Draw text on top of video frames using libfreetype library. edgedetect Detect and draw edge. elbg Apply posterize effect, using the ELBG algorithm. entropy Measure video frames entropy. eq Adjust brightness, contrast, gamma, and saturation. erosion Apply erosion effect. fade Fade in/out input video. fftdnoiz Denoise frames using 3D FFT. fftfilt Apply arbitrary expressions to pixels in frequency domain. field Extract a field from the input video. fieldhint Field matching using hints. fieldorder Set the field order. fillborders Fill borders of the input video. find_rect Find a user specified object. floodfill Fill area with same color with another color. format Convert the input video to one of the specified pixel formats. fps Force constant framerate. framerate Upsamples or downsamples progressive source between specified frame rates. framestep Select one frame every N frames. freezedetect Detects frozen video input. fspp Apply Fast Simple Post-processing filter. gblur Apply Gaussian Blur filter. geq Apply generic equation to each pixel. gradfun Debands video quickly using gradients. graphmonitor Show various filtergraph stats. greyedge Estimates scene illumination by grey edge assumption. hflip Horizontally flip the input video. histeq Apply global color histogram equalization. histogram Compute and draw a histogram. hqdn3d Apply a High Quality 3D Denoiser. hqx Scale the input by 2, 3 or 4 using the hq*x magnification algorithm. hue Adjust the hue and saturation of the input video. hwdownload Download a hardware frame to a normal frame hwmap Map hardware frames hwupload Upload a normal frame to a hardware frame hwupload_cuda Upload a system memory frame to a CUDA device. idet Interlace detect Filter. il Deinterleave or interleave fields. inflate Apply inflate effect. interlace Convert progressive video into interlaced. kerndeint Apply kernel deinterlacing to the input. lagfun Slowly update darker pixels. lenscorrection Rectify the image by correcting for lens distortion. limiter Limit pixels components to the specified range. loop Loop video frames. lumakey Turns a certain luma into transparency. lut Compute and apply a lookup table to the RGB/YUV input video. lut1d Adjust colors using a 1D LUT. lut3d Adjust colors using a 3D LUT. lutrgb Compute and apply a lookup table to the RGB input video. lutyuv Compute and apply a lookup table to the YUV input video. maskfun Create Mask. mcdeint Apply motion compensating deinterlacing. mestimate Generate motion vectors. metadata Manipulate video frame metadata. minterpolate Frame rate conversion using Motion Interpolation. mpdecimate Remove near-duplicate frames. negate Negate input video. nlmeans Non-local means denoiser. nnedi Apply neural network edge directed interpolation intra-only deinterlacer. noformat Force libavfilter not to use any of the specified pixel formats for the input to the next filter. noise Add noise. normalize Normalize RGB video. null Pass the source unchanged to the output. oscilloscope 2D Video Oscilloscope. owdenoise Denoise using wavelets. pad Pad the input video. palettegen Find the optimal palette for a given stream. perms Set permissions for the output video frame. perspective Correct the perspective of video. phase Phase shift fields. pixdesctest Test pixel format definitions. pixscope Pixel data analysis. pp Filter video using libpostproc. pp7 Apply Postprocessing 7 filter. prewitt Apply prewitt operator. pseudocolor Make pseudocolored video frames. pullup Pullup from field sequence to frames. qp Change video quantization parameters. random Return random frames. readeia608 Read EIA-608 Closed Caption codes from input video and write them to frame metadata. readvitc Read vertical interval timecode and write it to frame metadata. realtime Slow down filtering to match realtime. removegrain Remove grain. removelogo Remove a TV logo based on a mask image. repeatfields Hard repeat fields based on MPEG repeat field flag. reverse Reverse a clip. rgbashift Shift RGBA. roberts Apply roberts cross operator. rotate Rotate the input image. sab Apply shape adaptive blur. scale Scale the input video size and/or convert the image format. scale_qsv QuickSync video scaling and format conversion selectivecolor Apply CMYK adjustments to specific color ranges. sendcmd Send commands to filters. separatefields Split input video frames into fields. setdar Set the frame display aspect ratio. setfield Force field for the output video frame. setparams Force field, or color property for the output video frame. setpts Set PTS for the output video frame. setrange Force color range for the output video frame. setsar Set the pixel sample aspect ratio. settb Set timebase for the video output link. showinfo Show textual information for each video frame. showpalette Display frame palette. shuffleframes Shuffle video frames. shuffleplanes Shuffle video planes. sidedata Manipulate video frame side data. signalstats Generate statistics from video analysis. smartblur Blur the input video without impacting the outlines. sobel Apply sobel operator. spp Apply a simple post processing filter. sr Apply DNN-based image super resolution to the input. stereo3d Convert video stereoscopic 3D view. subtitles Render text subtitles onto input video using the libass library. super2xsai Scale the input by 2x using the Super2xSaI pixel art algorithm. swaprect Swap 2 rectangular objects in video. swapuv Swap U and V components. tblend Blend successive frames. telecine Apply a telecine pattern. thumbnail Select the most representative frame in a given sequence of consecutive frames. tile Tile several successive frames together. tinterlace Perform temporal field interlacing. tlut2 Compute and apply a lookup table from two successive frames. tmix Mix successive video frames. tonemap Conversion to/from different dynamic ranges. tpad Temporarily pad video frames. transpose Transpose input video. trim Pick one continuous section from the input, drop the rest. unsharp Sharpen or blur the input video. uspp Apply Ultra Simple / Slow Post-processing filter. v360 Convert 360 projection of video. vaguedenoiser Apply a Wavelet based Denoiser. vectorscope Video vectorscope. vflip Flip the input video vertically. vfrdet Variable frame rate detect filter. vibrance Boost or alter saturation. vignette Make or reverse a vignette effect. vmafmotion Calculate the VMAF Motion score. vpp_qsv Quick Sync Video VPP. w3fdif Apply Martin Weston three field deinterlace. waveform Video waveform monitor. weave Weave input video fields into frames. xbr Scale the input using xBR algorithm. yadif Deinterlace the input image. zoompan Apply Zoom & Pan effect. zscale Apply resizing, colorspace and bit depth conversion. fifo Buffer input images and send them when they are requested. If libavfilter filters clash with builtin mpv filters, prefix them with lavfi- to select the libavfilter one. Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 1, 2019 Share Posted October 1, 2019 (edited) Interesting note at the end, there. Might be worth trying the lavfi- prefix vf=lavfi-hqdn3d Edited October 1, 2019 by Doofus Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 1, 2019 Share Posted October 1, 2019 Yup, that works. Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 1, 2019 Share Posted October 1, 2019 But also works without lavfi Link to comment Share on other sites More sharing options...
Invader115 10 Posted October 3, 2019 Author Share Posted October 3, 2019 (edited) I've made substantial progress toward artifact reduction for animation. This progress was made in part with the help of an anime enthusiast's blog, in which he goes in-depth with settings he uses. I don't watch anime, but the settings seem valid for animation in general. Here's a link for those who are interested: https://iamscum.wordpress.com/guides/videoplayback-guide/mpv-conf/ (Much more helpful than the blog's name would suggest...) In the blog are links and references to user-maintained shaders that can be applied to MPV. I'm using some of them now, but so far I'm unable to quantify their effect. Artifacting has still been my main priority, and the shaders are mostly geared toward scaling. Here's my current mpv.conf: # These are for ease of use while testingvolume=0sub=no# Lets SVP "catch" MPV's playbackinput-ipc-server=mpvpipeprofile=gpu-hqgpu-api=vulkanhwdec=nvdec-copyhwdec-codecs=alldither-depth=autodither=error-diffusionerror-diffusion=jarvis-judice-ninkedebanddeband-iterations=4deband-threshold=32deband-range=1deband-grain=0vf=lavfi-hqdn3d:luma_spatial=5.0:chroma_spatial=5.0:chroma_tmp=1.75:luma_tmp=1.75scale=ewa_lanczossharpscale-radius=6cscale=ewa_lanczossharpcscale-radius=6dscale=ewa_lanczossharpglsl-shader="C:\MPV Shaders\mpv-prescalers-master\vulkan\ravu-lite-r4.hook"glsl-shader="C:\MPV Shaders\mpv-prescalers-master\vulkan\ravu-zoom-r4-chroma.hook"fbo-format=rgba16hfno-scaler-resizes-onlyforce-seekable=yesvideo-sync=display-vdroplog-file="C:\Users\{name}\Desktop\MPV\mpv log.txt" Using the same scene I posted screenshots of before, the artifacting in MPV is massively reduced. The only significant "artifacts" are the bits of grain that get added, but I've reduced that to the best of my ability. I have a hunch that whatever solution I find for scaling may help alleviate that, especially if I can get the "thin edges" thing replicated. I've got to start figuring out scaling now, but that may be the last stage. It's possible I've made progress toward interpolation via SVP; if I have in fact found a solution that can be used within Emby Theater, this will be an infinitely easier solution than replicating SVP on my own. That needs more testing, though. The "lavfi-" prefix that you spotted, Doofus, has a visible impact. It reduced extra artifacts created by "hqdn3d" enough that I was able to reconfigure the balance between it and MPV's own filter, essentially erasing the problems it once introduced. Edited October 3, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 3, 2019 Share Posted October 3, 2019 (edited) You won't be able to use gpu-api=vulkan in Theater in fullscreen. It requires exclusivity, and the UI doesn't allow that. The UI will disappear and it will screw with the window. You can only use d3d11 Edited October 5, 2019 by Doofus Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 3, 2019 Share Posted October 3, 2019 For an upscale with animation, you probably don't want sharpening. Have you just tried scale=ewa_lanczos Link to comment Share on other sites More sharing options...
Invader115 10 Posted October 3, 2019 Author Share Posted October 3, 2019 (edited) You won't be able to use gpu-api=vulkan in Theater in fullscreen. It requires exclusivity, and the UI doesn't allow that. The UI will disappear and it will screw with window. You can only use d3d11 Oof, that's a big problem for me. Vulkan gives a massive performance boost that I need to run these enhancements. Changing to d3d11 seems to cut the output framerate at least in half. Also, I have stopped using sharpened lanczos scaling. The sharpness did seem to be excessive. EDIT: Final thought before I finally go to sleep: borderless windowed mode. Many PC games have the option to use a faux-fullscreen mode where the game runs in a window, scaled to fill the display and set to always be in focus (and, of course, without the border most windows have). Such games cover the Windows taskbar and everything else, providing an identical user experience to running in true fullscreen -- but with improvements like easy, reliable ALT+TAB usage (fullscreen games struggle with this), better recoverability after a major game error, and other such benefits. Since programs running in this mode are technically windowed, that would totally sidestep the fullscreen compatibility problem with Vulkan. The issue is that ET doesn't have this feature, as far as I'm aware. Edited October 3, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 3, 2019 Share Posted October 3, 2019 There's a history of issues with Theater around it's window management. The way it is now is actually an improvement over what was, but there are still issues. I believe a rework of the UI is planned. I'm hoping that Luke finds a way to allow full screen exclusivity, because looking at mpv's planned development, they are going to have all GPU API's use require full screen exclusivity. Certain functionalities will require it. You can't use cuda or nvdec without using vulkan or opengl. I always used opengl, but when the present change was made, I could no longer use it. Of course you can still run mpv as an external player, but that's a trade off, too. Link to comment Share on other sites More sharing options...
Invader115 10 Posted October 4, 2019 Author Share Posted October 4, 2019 (edited) Well, I'm glad it's on the development radar. I can shift my effort over to live-action content enhancements for now, but I imagine I'll focus a lot less on tweaking MPV until it's possible to get my configuration working smoothly with Emby Theater. I could use MPV as an external player, but I've already got MPC-BE and MadVR fully configured for use that way, so I'll probably just continue using that for now until I can continue the transition to the native player. By the way, I messed with SVP motion smoothing some more and got it working reliably with MPV, but it stops working when Emby Theater is put into the mix. My testbed copy of MPV is the one compiled by SVP's developers. It works with SVP just fine, but when I copy/paste that MPV (and all its related files) into Emby Theater and use it in place of what ET shipped with, the SVP motion smoothing goes away. I've got no idea what inner workings are causing this behavior; all I know is that running MPV via Emby Theater is pinned down as what makes the smoothing stop kicking in. That makes it look like Emby Theater's the culprit, but I also imagine these things are far more complicated than they seem. Edited October 4, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 4, 2019 Share Posted October 4, 2019 It might be because Theater also uses a pipe. There are few open issues with vapoursynth. I've never messed with SVP, but I believe that @jscoys uses it??? Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 4, 2019 Share Posted October 4, 2019 You can take a look at this https://emby.media/community/index.php?/topic/46452-using-svp-as-renderer/?fromsearch=1 Link to comment Share on other sites More sharing options...
Solution Invader115 10 Posted October 4, 2019 Author Solution Share Posted October 4, 2019 (edited) FIRST, the work-around that made shuffling with an external player tolerable: It's a slight adjustment to how I was already using the external player with shuffling. My complaint was that ET would relaunch my external player and shuffle episodes after I was done watching, and there was no elegant way to stop it shuffling into infinity. Well, get this: all I had to do was keep the external player open. Incredible. After watching the shuffled episode, keeping the player open and paused lets me navigate back to Emby Theater and browse my library for something different to watch, rather than fighting an infinite loop of episodes. When I find and play a separate, non-shuffled media item, the external player's still-open instance will cleanly unload the unwanted episode and load in the new one, no problem! Closing the player after this new non-shuffled item is loaded works normally, no infinite loops or anything. Some problems that still exist after doing this: IT'S NOT ALL GOOD, though. You can NEVER run two shuffles on the same instance of an external player. Say I shuffle Show A, then I pause the external player (leaving it open) and browse to Show B. Were I to manually select an episode from Show B, it would load into the player just fine. If I were to instead shuffle Show B, things go haywire. I'm not sure how to explain what goes wrong other than "chaos". At one point tinkering with this I got ET to open and run two separate instances of the external player that each had different episodes, both of which were subject to infinite looping. When this happens, I have to close ET to reset everything. What does work is shuffling Show A, pausing the player and leaving it open while I pick and run a non-shuffled episode from Show B, and then closing the player when I'm done with Show B's episode. I can then browse the same instance of ET that's been open this whole time and shuffle Show C without issue. That's because Show C is running on a different external player instance than Show A and Show B were. So, shuffling more than once isn't the easiest thing in the world, but I have a hunch I could smooth the process out a little. A hotkey to briefly load a small video file from the local machine before closing and restarting the external player, maybe? Anyway, I'm calling this firmly "good enough". Huge thanks to Doofus and Luke, who were incredibly helpful and attentive trying to make Emby Theater work for me. -------------------------------------------------- SECOND, the MPV configuration I created while trying to transition to Emby Theater's native player: (Updated Oct. 6, 2019) My adventures with MPV were a mix of fun and tedious, and even though I didn't end up using what I created I'll share my final mpv.conf's contents for those who are interested. I got artifact removal and scaling impressively close to MadVR with a select few media items, and I'm confident it's possible to get MPV a lot closer to MadVR than I did. PREVIOUSLY, I THOUGHT these enhancements couldn't be run without setting MPV to use the Vulkan API, but it seems that was my relative lack of knowledge showing. Doofus suggested adding a simple line to the config, "opengl-pbo", to improve performance. That may very well have helped, and you'll see it in my updated config below, but after tinkering some more I made other changes that got performance where it needed to be without Vulkan. The quality still isn't on par with MadVR, but it's about where it was before, albeit with some settings removed that should never have been there. # These are for ease of use while testingvolume=0sub=no# Lets SVP "catch" MPV's playbackinput-ipc-server=mpvpipeprofile=gpu-hqgpu-api=d3d11hwdec=nvdec-copyhwdec-codecs=allopengl-pbodither-depth=autodither=error-diffusionerror-diffusion=sierra-litedebanddeband-iterations=4deband-threshold=32deband-range=1deband-grain=0vf=lavfi-hqdn3d:luma_spatial=5.0:chroma_spatial=5.0:chroma_tmp=1.75:luma_tmp=1.75,lavfi-dilation:12:.8:.8:.8sigmoid-upscalingsigmoid-center=1.0sigmoid-slope=10scale=ewa_lanczosscale-radius=10cscale=ewa_lanczoscscale-radius=10dscale=ewa_lanczosglsl-shader="C:\MPV Shaders\mpv-prescalers-master\vulkan\ravu-lite-r4.hook"glsl-shader="C:\MPV Shaders\mpv-prescalers-master\vulkan\ravu-zoom-r4-chroma.hook"fbo-format=rgba16hfno-scaler-resizes-onlyforce-seekable=yesvideo-sync=display-vdroplog-file="C:\mpv log.txt" Major changes between this and the config I originally posted: the sharpen filter has been removed, because it was never supposed to be there -- I was messing around with it at the same time I learned how to use external players properly, so it wasn't removed before posting -- and it's been changed to use D3D11 instead of Vulkan, with the aforementioned "opengl-pbo" setting added. The video filter for "dilation" is how I accomplished the "thin edges" effect I mentioned numerous times in this thread. Tweaking the "dilation" filter can be difficult, as it's easy to leave an annoying halo around the edges, but the values in the above config seemed very good to me. Remember this config was solely geared toward animated content, which requires very aggressive filtering to reach the standard I wanted. Live-action content will not look right with these values set. ABOVE ALL ELSE, remember that I DO NOT consider the above config "finished" and that it's only there for use as a foundation. Anyone interested in pushing MPV's limits will have to do a lot of tinkering and testing of their own. Moreover, I do not intend to keep messing around with this because I've got my old MPC-BE + MadVR + SVP configuration working without the problem I made this thread for. The main lingering problems are bits of ringing around animated edges and incredibly persistent blocking artifacts in the same places. Live-action content is probably well within reach of MPV, but animation was always my goal specifically because it's more difficult to enhance than live-action. It's important to consider system specs, because performance WILL vary. My GPU is an Nvidia RTX 2080 Ti, which is about king of the hill right now. My CPU, on the other hand, is what I'd call "upper-mid range", or "lower-upper range". It's an AMD Ryzen 7 2700X, and even though it's a fantastic processor there are still models out there that blow it away. The point is that performance will vary wildly between computers, and the "horsepower" of your computer is what determines the level of enhancements you can achieve. My previous GPU was an Nvidia GTX 1080 Ti - another hugely powerful video card - but there are many enhancements I can use now that I couldn't use with even that serious piece of hardware. Unless you have exactly the same specs as my computer, your experience WILL be different from what this post is based around. -------------------------------------------------- THIRD AND LAST, how I got SVP motion smoothing working with Emby Theater's native player: In my MPC-BE + MadVR setup, I also use SVP motion smoothing for powerful and highly-configurable interpolation. It seemed for a while that it wouldn't be possible to use this with Emby Theater's native player, but Doofus found some information online that got this working. Follow the instructions provided by SVP developer Chainik in this thread: https://www.svp-team.com/forum/viewtopic.php?pid=65221#p65221 using information provided in this (Plex-oriented) documentation page: https://www.svp-team.com/wiki/SVP:Plex_Media_Player to get SVP to detect and process your Emby Theater native player. Edited October 7, 2019 by Invader115 Link to comment Share on other sites More sharing options...
Guest asrequested Posted October 4, 2019 Share Posted October 4, 2019 @Invader115 Take a look at this, for SVP https://www.svp-team.com/forum/viewtopic.php?pid=65221#p65221 Link to comment Share on other sites More sharing options...
Invader115 10 Posted October 5, 2019 Author Share Posted October 5, 2019 @Invader115 Take a look at this, for SVP https://www.svp-team.com/forum/viewtopic.php?pid=65221#p65221 Hey, that worked! I was planning to restructure the post I marked as the solution for easier readability (mainly for people who find this thread through Google). I'll add this solution to it for anyone looking to amp up the default player. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now