Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Left 4 Bread
Oct 4, 2021

i sleep

Blueberry Pancakes posted:

The quality of my GBA videos keeps fluctuating between 360, 480, and 720 when I record. Lately, Dxtory hasn't been able to get over 360, and it's been rather frustrating.

I've heard OBS is supposed to be a good recording program, but I don't know if I can shrink it to the GBA screen size without messing up the settings I have for recording from the DS.

In OBS, the capture size is stored in the Profile. Your DS settings should be fine if you make a new Profile and Scene Collection for the GBA. At least, that's how I'd do it.

I've just got a FFMPEG script to record losslessly for most things, which aside from potentially massive video sizes and the rare times it insists on recording only 59 FPS on a 60 FPS source, has been great. If I ever needed to upscale or prep for a video upload, I can just run the resulting raw video through something else. I've only got experience with SSLPs though, so I don't know how well it'd serve a VLP.

Someone else probably knows better than me on this, so take this with the necessary salt.

Left 4 Bread fucked around with this message at 22:39 on Mar 11, 2022

Adbot
ADBOT LOVES YOU

Left 4 Bread
Oct 4, 2021

i sleep

Blueberry Pancakes posted:

Oh, I was planning for a SSLP, actually.

Oh, I was just saying that in general. Here's my script if you end up wanting it- it's likely not perfect, but it does fine for me.

code:
ffmpeg -f gdigrab -draw_mouse 0 -framerate 60 -thread_queue_size 5040 -i title="whatever the window title is" -f dshow -i audio="your desktop audio output" -c:v libx264rgb -crf 0 -preset ultrafast -color_range 2 Your_filename.m4v
pause
I just have multiple copies of it, each batch file minorly tweaked to match the game.

Commander Keene posted:

Personally I'd just record with the emulator's built-in recording function, as long as it has one, and most do.

This is also probably a pretty good idea.


edit: what a snipe

Left 4 Bread
Oct 4, 2021

i sleep

Blueberry Pancakes posted:

Where/how do I use this?

Ah, right, I should probably explain how to use it. That would probably help, yeah. It's been a long day. :doh:

Forewarning, this is going off the assumption you're using Windows. Some tweaks can be done to make work for Mac and Linux, but I don't know anything about them. With that in mind, here's a very simple but detailed general use write-up, because that's what I like in a tutorial.


First up is installing FFMPEG, just grab a precompiled binary. When it installs, open up Command Line and simply type "ffmpeg". If a bunch of version text shows up, then congrats it's installed right. Otherwise, you'll want to locate the binary (usually installs to C:/ffmpeg by default, I think) and add it to your PATH variables.

The code I pasted is just a line of code to be run in command line once tweaked a bit- I specifically just throw this in a batch file. It uses DirectShow, so this is meant to be run on Windows- I don't know the input you'd use for other systems, but I'm sure there's an equivalent for Linux or Mac.

To use it, you first need a consistent name for the window running the game. I only mention this because some emulators put the FPS in the window title (MelonDS for one), but this can usually be solved by merely pausing the emulation first (netting you something like "MelonDS 9.4 - Paused"). Replace the ' "whatever the window title is" ' part in the script with that title. This is just calling DirectShow to capture the window, and it needs to be able to find it when you run the batch.

Next up is audio. You may or may not need this for your SSLP, and if you don't I can give you a shortened version of the script that ignores audio. If you do, use the audio, get the exact name of your default speakers in your audio settings, mine being "Speakers (Realtek(R) Audio)" and put that in place of ' "your desktop audio output" '. This'll record your literal desktop audio output, so it'll capture your Discord notifications or background music or whatever too, so handle that part on however you need it.

Lastly is just a filename for the video file, but just go ahead and leave it as .m4v if possible. You don't put quotes around this, so just- VideoOutput01.m4v - is fine.

(The "pause" at the end of the file is just a batch code to ask for input before the window closes after FFMPEG is done.)

With your resulting code in a .txt file renamed to a .bat, just run it and it should hook to the window as long as it can find the name. The video will be in the same folder as the batch file. When you're done, just hit "q" with the console window focused to properly shut down FFMPEG. I usually move the window to somewhere where I can watch the live statistics, so I can easily see if it's started to drop lots of frames for some reason.

If it ends up capturing part of the emulator's options or GUI, you can likely just batch crop it out in Irfanview or something.


I probably overlooked or forgot to mention something, but I hope it's usable instructions. I can only somewhat explain to you what all the code actually means myself, I've just pieced this thing together from various code snippets across the internet + some troubleshooting. If there's anything I missed out on, folks who know more about this can feel free to correct me.

Left 4 Bread
Oct 4, 2021

i sleep

Blueberry Pancakes posted:

Alright, I finally tried giving this a shot after some weeks of handling some busywork IRL and I think I'm a bit confused on this part. I downloaded the MPEG, but it's a bz2 file. Is this what I need DirectShow for? Or did I download it incorrectly?

A bz2 is a zipped file for Linux, so you've got the wrong file. Some precompiled libraries can be found here or here's a direct link to the .zip you'll probably want from there.

It doesn't actually use an installer or anything, (my previous post is wrong in that regard,) it's just the .exe files. Unzip it and put it somewhere easy to find. Next, you can either put the batch file in the same folder with it and just run it like that, or put a path to ffmpeg.exe, ffplay.exe, and ffprobe.exe in your PATH variables so that it can be accessed from anywhere. (You should only need ffmpeg.exe for this script.)

My previous post wasn't exactly the most clear on this, that's on me.

Left 4 Bread
Oct 4, 2021

i sleep

Carbon dioxide posted:

Hi friends, does anyone have a quick overview on what tools and settings to use to easily make crisp upscaled screenshots of Gameboy Color games?

Irfanview's got a batch converter that makes this sort of work really easy.

Go under File -> Batch conversion/Rename, make sure the output format is .png, then check "use advanced options" and then just hit the Advanced button. From there, enable resize, and probably just use the percentage scaling (200%, 300%, or 400% should be good).

Once that's done, back out to the main batch conversion menu, navigate to your folder with screenshots, add all of them. Set the output folder to something else, and then Start Batch.

Left 4 Bread
Oct 4, 2021

i sleep

ScreamingLlama posted:

I can't get access to the rightload plugin for LPix. All the links I could find don't work, does anyone know where I can get it?

I think the go to is ShareX instead of Rightload, but I can download it from the Lpix link fine: https://lpix.org/rightload_v1.5.zip

Left 4 Bread
Oct 4, 2021

i sleep

ScreamingLlama posted:

That's the older plugin, I need the newer one that supports https. Or does v1.5 support https and just not say so?

I don't know if there is one, I just run a batch replace in Notepad++ for whole word = "http" -> "https" on the links afterwards.

I should probably move over to ShareX, but I'm resistant to changing my workflow, I guess. Rightload was just the one I picked out of the two links on Lpix when I was figuring this all out and I never looked back.

Left 4 Bread
Oct 4, 2021

i sleep

PurpleXVI posted:

Is lpix.org down for anyone else?

It's up for me at the moment.

Left 4 Bread
Oct 4, 2021

i sleep

Rocket Baby Dolls posted:

I gave it a try but image size isn't much different (328kb), although it does look more sharper:



Edit: I'm not overly concerned as I'm planning to take screenshots from a video recording and it makes life easier for me with the previous settings.



It would seem like the image is still getting compression artifacted. If you're recording at native resolution and are only scaling the output in whole numbers 1x,2x,3x, etc. I'd think this'd be a result of the video recording compressing the result still. The end result should be a .png around or less than 100kb in size if the screenshot is actually pixel perfect.

edit: I'm not really an expert on achieving a clean recording though. I've got an overkill FFMPEG script I use and rarely I can get OBS to do it, so someone else will have to help there.

Left 4 Bread fucked around with this message at 15:12 on Mar 17, 2023

Left 4 Bread
Oct 4, 2021

i sleep

Xander77 posted:

I'm trying to resize a bunch of JPG's (file size, not picture size) and am trying to figure out:

Is Irfanview still the right program?

And if so, what's a good generic batch conversion setting to use that would drop the file size without much loss in quality?

I think most of us still use Irfanview, yeah.

This is what I do, tends to have a pretty strong effect on filesize from .png to .jpg without sacrificing quality:



Maybe set Sharpen to 1 in Advanced settings if needed. No idea how good it is for JPG -> JPG.

Left 4 Bread
Oct 4, 2021

i sleep

Rocket Baby Dolls posted:

I'm still toying with the idea of an SSLP. I've taken on board what people said about my earlier posts. I decided to use FRAPS to take screenshots, which may have been overkill but I believe Admiral H. Curtiss said about working with lossless. I also decided to persevere with Infranview for batch conversions.

The top image is PNG and underneath is JPEG. The original resolution was 1920x1080 and I have scaled them down to 900 width for archival purposes. There's about 50kb difference between them in size.

Oh, hey, this game! I thought this looked like a game that'd make a great voting driven SSLP- I've already seen most of it myself though.

In terms of the screenshots, this game's a bit tricky as it's pixel but I think it has a kind of irregular sizing and the font's not pixelated. Still it might probably be better if it was scaled to an integer scaling by cropping 60 pixels off both the left and right side then simply hitting it with a 50% resize to get a final image of 900x540 without any squishing required. Depending on how the lighting is done, you might get a smaller filesize and cleaner image in PNG too.

If you put up the original 1920x1080 image, I can see what I can do to it.

Left 4 Bread
Oct 4, 2021

i sleep

Rocket Baby Dolls posted:

Here it is:

Thank you for taking the time to do this.

So, good news is the game has it's lighting done in proper limitations so the PNG can come out pixel perfect without any bloat from transparency based lighting.

The game's current scaling ratio is 3x, which is a bit annoying as it won't divide to 900 cleanly. To retain pixel perfection, you either have to crop 380 width of a 1280 width image in 2x scaling...


150kb (a couple kb higher as it was saved in Paint.net which has a bit of file bloat,)

... or go for the small 640x360 that is 1x scaling:


164kb (also subject to file bloat, Irfanview puts it out at around 130kb)

(You get this option by taking the normal 1920x1080, setting Irfanview to resize to 640 width and output PNG. For the first option, take this result and run it through a second pass to resize at 200% resize.)



If either option isn't suitable, the best I can get in JPG and forsaking pixel perfection but aiming for clarity:


95.1kb

JPG Options:

Advanced Options:


It's up to you which you think looks best, this is just what I could get in fiddling around with it for a while.

Recording losslessly is usually a big drain on storage space in my experience, but it can reduce the size of the final images in the long run as less space is wasted on color blurs caused in recording compression. If it's something going into JPG anyways, It's not really much of a risk to run it through HandBrake to drop the filesize. I have to do it for my current Fates LP as otherwise the actual battle recordings are around 50-60GB and don't seek well for screenshots.

Left 4 Bread fucked around with this message at 00:06 on May 9, 2023

Left 4 Bread
Oct 4, 2021

i sleep

Rocket Baby Dolls posted:

Thank you! The first image you provided looks like it has a larger view of the main area so that option seems the most viable right now. I'll retry things in 1280, the only issue with cropping out a portion of the screen is that the speech options and information pop-ups are on the right-hand side of the screen. It's not a major issue as I can just relay the information and dialogue with text.

You can make a separate cropping setting, moving the X position over to keep the speech options on the screen as I think relevant characters are usually in the center. Although I can't remember if that's always true and it could end up being a bit disorienting too, you'd have to try it out to see.


Rocket Baby Dolls posted:

I've been playing around a little more with the resolution scaled down to 1280 width. This is the JPEG with the settings enabled:

This is the PNG, which is 120kb smaller but it's also at the default compression level:

PNG at default compression level is fine as it won't disturb the image at all if it was clean to begin with- changing it makes it worse in my experience. JPEG is specifically good for screenshots of things that don't use a limited color palette as it's compression will try to work it's magic but end up creating more colors in the process. Normally it's trying to dither or do a fuzzy blur to reduce excess colors that the human eye can't distinguish anyways (nobody's gonna tell you the difference between RGB 170/170/170 and 170/170/171) but it doesn't know you're giving it pixel art.

...At least, I think that's kinda how it works. I'm not an expert at this, I've just fiddled with this image stuff a lot by this point. I had a game I wanted to LP (and still do someday) but was foiled by some filesize issues caused by transparency on glow effects that didn't have a limited color palette. I think the only solution there was to manually mod every texture that did that in the game which... well, that's a lot of work.

Left 4 Bread
Oct 4, 2021

i sleep

Admiral H. Curtiss posted:

PNG compression is lossless, so even if you change the parameters it it won't affect the output; think of it like a .zip or .7z, you can also adjust compression levels there but you still get a bitexact file back after decompression. Though there are some PNG compressor programs that do things such as pallette reduction before compression, which does reduce filesize but is obviously not lossless anymore.

Ah, makes sense and good to know.

I think the trouble I had with it was probably a palette reduction, yeah. It's been some years since it happened, mostly all I remember is I just learned to "leave it at 6" and it all stays good.

Left 4 Bread
Oct 4, 2021

i sleep

theshim posted:

1) I recall originally using Fraps for step 1 but it looks like OBS is another good option these days. Do I need to do anything to my recording settings? I sometimes use OBS for streaming and I have it save the files, but I often get freezes and stuff when I try to skip around in them, which would not be ideal if I need to take screenshots from ~1.5 hour videos. Heck, is there a specific video software I should be using to go through the recorded file?

2) Is there a best program for extracting screenshots? I know a lot of people swear by IrfanView for image manipulation, but should I be using it to take the captures themselves? Also, if I want to do gifs, is Gooncam still a good easy option? I've made a couple gifs in the past in GIMP but I recall it being a slow and agonizing process and I did not enjoy it. Also apparently webps are just better now? Is there an easy way to create those?

3) I'm planning on doing FF4 Free Enterprise, which still just looks exactly like SNES FF4. I recall that pixel games are best off left as png, is that right? And aren't pngs huge, so what would I have to do to get them down to manageable sizes for an LP? (I may be totally off base here, it's been a really long time :ohdear: )


1. I have to deal with freezes on skip a lot. I find running it through Handbrake with the right settings can preserve the image but reduce the filesize and how much it lags and freezes on seeking- I just screenshot a VLC window for reference. The only thing you need to worry about with your recording is that the output is pixel perfect, without any blurs from compression or stretching. Built-in emulator recording will work, and maybe OBS's lossless setting too? The filesizes can get big, but for a pixel game it shouldn't get that bad.

2. Before I made my own tool, I used Irfanview and it works great for screenshots as well as conversion. I use the Gooncam Gifcam variant too for gifs, should work particularly well for pixel formats (never let me down with WPJ2 when I was still on it.) Ezgif.com works too, but I usually only need it for gifs of non-pixel images.

3. PNGs are only large if you're taking an image of something with a lot of colors- a SNES game has a comparatively tiny palette so the images should be very tiny as long as there's no blurring artifacts. As long as step 1 is correct, this shouldn't be a problem.

Left 4 Bread
Oct 4, 2021

i sleep

BisbyWorl posted:

I actually do these steps in tandem, marking images as [update-#] as I go and using an auto-replacer to plug in the actual image links once I'm done.



Like this. The only real thing you need to keep an eye on is making sure you don't accidentally typo the wrong number and completely throw off the image ordering when you run the replacer.

Yeah, doing this saves a lot of work on its own. I luckily figured this out before starting my first actual LP- would've been a nightmare if I hadn't.

For the sake of my hands and reducing typos, my screenshot tool automatically inserts image tags into the update as I take them. The backend is a taped together janky mess running external batch files that run python scripts, but it's helped a lot.

That's way more work than a casual randomizer SSLP needs though. Hand placing the links or a simple typed system is more than enough right now.

Alternatively, you can take all the screenshots you think you'll need, paste all the links into one document and write the update in-between them, cutting excess and doing a second run of screenshots after for things you found you needed, but I don't think my brain could handle that.

DMorbid posted:

In my experience, "not ideal" means "no computer I've ever owned can actually record losslessly - or indeed at any kind of high bitrate - in OBS without massive stuttering".

Even my FFMPEG script rarely freezes up my whole computer, though that's usually only a problem with Citra. I used to have a good OBS setting for pixel games that didn't need to run lossless bitrates to get actual lossless image but I have no idea where it went.

Left 4 Bread
Oct 4, 2021

i sleep

PurpleXVI posted:

My process is:

Record video
Take screenshots
Trim excess screenshots
Rename and rescale screenshots
Upload to lpix with ShareX
Copypaste all the URL's in one fell swoop from ShareX, including automated img tags.
Insert witty dialogue and commentary between screenshots

Yep, that''s basically the alternative method I was thinking of.

I have to do the screenshots as I go in case I miss something or think of something new to comment on. I never know how I want an update to flow or look except while I'm writing it.

Left 4 Bread
Oct 4, 2021

i sleep
This is a small thing, but in reference to a tech-focused conversation either in here or in the Sandcastle regarding video players to take screenshots from. I've recently switched over from VLC to "mpv player", and it's been suiting me really well.

Pros:
+ GUI automatically fades away, no need to hide it or crop it out of the screenshot
+ Usually starts up at the video's base resolution, no stretching. (I've only had it appear at smaller sizes when the video's resolution is higher than or equal to the current display monitor. 1080p on a 1080p monitor, easily resolved by fullscreening)
+ Scriptable to add things like chapters or autocropping
+++++++++ The thing seeks through videos like a dream, no lag or freezing even on massive video files unlike VLC.


Cons:
- Does not remember the last spot you were at in a recording like VLC can, by default


...So if anyone else is finding themself annoyed by a slow-seeking VLC, maybe give this a shot. You can find it here:
https://mpv.io/

This has made my workflow so much nicer.


-----

Edit: I've also been doing my video editing with Olive, a free open-source video editor I think made by just one person. It's only at version 0.2, but it's a very functional video editor for doing work with multiple video/audio tracks + some basic fades to black. It can be a bit finicky at times though, and I do recommend saving frequently, (I've had the rare crash before doing a ripple delete or adding a transition). Still, it pre-caches the media files well and has a pretty good preview feature.

No detailed writeup on it for the moment, but I will say that I recommend exporting with "run in background" and always to check the end of your video first for errant transition pieces.

https://olivevideoeditor.org/download.php

Left 4 Bread fucked around with this message at 19:10 on Jun 22, 2023

Left 4 Bread
Oct 4, 2021

i sleep

TooMuchAbstraction posted:

Sounds cool, though some of your comments make it sound like you're not aware of VLC's built-in "save a snapshot of the video stream to a PNG" functionality. You shouldn't need to fade out the GUI to get a clean shot, in other words.

Oh, I know it's there, it's just always been faster (or at least more efficient) for my workflow to screenshot the window with Irfanview. Nowadays I have my own external screenshot tool that takes the screenshot and automatically places the tag in the update script, so I don't really need built-in methods.

Arist posted:

I use mpv a lot too, I can't use VLC anymore because I get a lot of skipped I-frames leading to errors in colors ever since I had to start recording with OBS. mpv is great because unlike VLC you can scrub frame-by-frame backwards as well as forwards with [,] and [.], whereas VLC can only frame-by-frame scrub forwards. The sole issue with mpv is that I don't think it supports changing the playback speed, which can be annoying when I have a four hour video of a dungeon and I only want a screenshot every few minutes or so.

Oh, yeah, I forgot to mention the backwards frame scrub. Just another cherry on top of the cake that is not being VLC exploding under trying to seek in most of my recordings.


nielsm posted:

You can also use Aegisub to grab video frames, with frame-by-frame seeking.

I never thought to try that, but I suppose it's an option.

Left 4 Bread
Oct 4, 2021

i sleep

Maki posted:

I've built myself a short python script to make uploading screenshots to lpix and including them in my posts easier.

How it works is, you write a bbcode post as normal, into a text file. Where you want to include images, you write a line of the form

----

If you think this could be useful for you and try it out, please let me know if problems arise, this thing is a quick hack that works for me locally, I'm sure it contains horrible bugs that I didn't think about.

Looks far more cleaner and professional than the old, janky code I wrote for myself a long time back that I'm still using. Also handles the upload process simultaneously too, which is nice, but does conflict with my current workflow a bit.

I'll give it a test if I can find the time.

Left 4 Bread
Oct 4, 2021

i sleep

Maki posted:

For reference, can you maybe detail your workflow a bit? I'm winging it as I go, so I'm both curious how I can improve my workflow and how I can improve the script to handle more people's needs.

Mostly the only thing is that I usually keep a local file with all my links to images, and this script would bypass that. It wouldn't be hard to add though. Append the output link + "\n" to a file and that's all.

The other part is that I frequently have to fix a handful of images in each update, but I just realized that's something I can just do with this script by adding in the new image tags and running the script again. (Normally I'd upload the new ones and manually copy-paste where they're needed.)

If you wanted to know, my current workflow is:
- Record video
- Screenshot video and create image tags at the same time I write commentary/add dialogue *
- Format all the images as required for the LP
- Upload images
- Save all image links
- Run my replacer script using the batch of image links
- Save as separate update file
- Stick the result in a testpost
- Proofread and fix images
- Post it

* I have a custom tool to take screenshots + add the image tags at the same time, alongside expediting portraits. I've also got an AutoHotkey script to rebind Windows's Alt+Tab menu to my numpad- makes switching back between the video player and the update text much faster. These are all just things I did to ease my hand pain though.


I don't imagine it's too different from what most people do, custom tools and scripts aside. I could be wrong though, this just seemed like the most straightforward approach when I was figuring this all out when I started this.


Something I've been meaning to try and write is a tool that'll let me create testpost-esque html files that reference the local copies of the images instead of having to upload them first. That way I can proofread before I upload anything, but it's not really relevant for this.

Adbot
ADBOT LOVES YOU

Left 4 Bread
Oct 4, 2021

i sleep
I use Olive because it's simple and I've never found the time or actually learn Resolve. It's a smalltime project so there are occasionally notable bugs, but it's relatively lightweight and lets me do what I need without a lot of hassle. I do still have to do any audio work in Audacity first though.

If you can learn Davinci Resolve it probably doesn't hurt to stick with that, I imagine.

I've found that I'm also not a huge fan of video editing in the first place, but that's another matter.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply