Author Topic: [Tutorial] Solutions for Taking Screenshots  (Read 26104 times)

Offline line0

  • Member
  • Posts: 118
[Tutorial] Solutions for Taking Screenshots
« on: July 04, 2013, 01:55:23 am »
Solutions for taking screenshots
r10 - 2013-08-23

  • Recommended: AvsPmod (& AviSynth, Dither)      
       Most flexible solution, but requires a few steps to set up.
    Sorry but you are not allowed to view spoiler contents.

  • Good: MPC-HC + madVr
       Easy to set up solution that doubles as THE high quality video playback solution on Windows, but not as convenient as method #1
    Sorry but you are not allowed to view spoiler contents.

  • Good: mpv (-vo opengl-hq; use at least version 0.1.0)
       Cross-platform solution also available on Mac OS X and Linux, not as convenient as method #1
    Sorry but you are not allowed to view spoiler contents.

  • Avoid: MPC-HC + EVR CP
       Default setup when installing CCCP or MPC-HC/BE.
    Reasons:
    Sorry but you are not allowed to view spoiler contents.

  • Do not EVER use: VLC
        Atrocious video player with terrible video quality
    Sorry but you are not allowed to view spoiler contents.

  • Do not use until further notice: FFmpeg
        Versatile command line video/audio processing tool unsuitable for taking screenshots
    Sorry but you are not allowed to view spoiler contents.




AvsPmod

  • Required Components
    Sorry but you are not allowed to view spoiler contents.

  • Setting up the environment
    Sorry but you are not allowed to view spoiler contents.

  • Getting started with screenshot comparisons
    Sorry but you are not allowed to view spoiler contents.

  •   Now that you're all set, let's load the videos to compare.
    • Click into the empty script window and hit F7 to get a list of your snippets. Since there's only the one snipped you just created, hit TAB to insert it
    • Replace VIDEOFILE in the first line with the full path to an episode (e.g. Z:\ScreenCompare\ZSZS\[gg]_Zan_Sayonara_Zetsubou_sensei_-_02_[DB36C966].mkv) of the first release you want to compare and GROUPNAME a few lines down with the appropriate group tag
    • Hit F5 to load (or refresh) the video. Loading a file for the first time might take a few seconds, since the file is being indexed first.
    • Save the script
    • Hit Ctrl+N or double click next to the current tab to open a new script tab
    • Repeat from Step 3a

  • Syncing up the releases (easymode)
    • Check if the video of all releases matches up, by going through them with Alt+1, Alt+2, Alt+3, ...
      The best way to do is is to seek to the last frame before a scene change, check if it matches up across tabs, then seek to the next frame and check again
         (Seek by using the arrow keys (left/right: 1 frame; up/down: 1 second) or clicking the timeline for larger time distances)

      Note: You may find out that not all subsequent frames match up or worse, the releases running out of sync over time. If it's only single frames, just avoid using them for screenshots.
      In case of releases running out of sync, you're dealing with either missing sections or different frame rates. Refer to the [Advanced Tutorial TBD] on how to deal with those cases.
    • Once all releases you want to compare are in sync, right click their tabs and add them to a single group. Make sure the Apply offsets and Offset also bookmarks options are checked.
      AvsPmod will now remember the frame offsets between tabs and automatically seek to the right frames on a shared timeline.

    • To reasonably compare screenshots, we need all frame sizes to be of the same resolution. You should have noticed any differences already while syncing up the releases.
      If all resolutions match, skip this step. If they don't, find out the highest resolution by looking at the bottom right of the status bar.
      The information will be in the following format: FrameWidth x FrameHeight (AspectRatio)  - Framerate fps - Colorspace
    • Take the largest width and height among the releases and find the following section in the scripts for all releases that need to be resized:
               target_width = w
               target_height = h

      Replace w with the largest FrameWidth and h with the largest FrameHeight
    • Hit F5 to refresh the video preview and confirm everything works as expected.

  • Select frames for the screenshot comparison
    • Find a frame suitable to convey significant information about an aspect of video quality.
      Pick:
      • one or two frames of a structure that represents what is on the screen most of the episode (to give a general idea about the video quality)
      • frames from dark scenes
      • high-detail frames / frames with fine structures
      • frames with low contrast
      • frames from high-motion scenes
      • a frame or two from a fade-in/fade-out
      • frames that display video artifacts in one ore more releases (refer to this thread on how to spot and identify video artifacts)
      • at least one frame from the OP and one frame from the ED
      Try to get as many B-Frames as possible. Ideally you'd want matching frame types across the different releases.
      In practice checking this gets more of a waste of time with each additional release you have to compare. Just try to keep the number of B-to-I comparisons low and make sure you don't pick only B-Frames for one release and only P-Frames for the other.
      A very easy way to avoid this issue is to not pick frames by only looking at one release. This comes with the added benefit of you being more likely to spot video artifacts in ALL releases.
      (Check the overlay on the top right of the video frame to find the frame type of the current frame.)
            
    • Once you've decided on a frame, hit Ctrl+B to bookmark it.
    • Repeat from 6a for each additional frame
      If you want to check the frames you already bookmarked, hit F2/Shift+F2 to browse through your bookmarks

  • Export screenshots
    • Once you're done deciding on frames to screenshot (10-15 is a good number), it's time to export them to PNG.
      Go to Macros > Save image sequence (make sure Select frames is set to "Bookmarks" and Output format to "*.png")
    • Pick an output directory and basename.
      I recommend using the basename format "%06d_Groupname" (without the quotes, obviously). This way your screenshots will (almost) always sort to comparison-friendly order by default. Make sure Add the frame number as suffix is checked when using "%06d", otherwise it only counts up rather than inserting the current frame number.
               Example of Directory+Basename: Z:\ScreenCompare\Out\%06d_Zurako
      You may also want want to check the Use always this directory option since you need to run this macro for each release seperately.

    • Click OK. You'll get a confirmation once the export is done.
    • Repeat from step 7a for every open tab/release
[/spoiler]

[/li]
[li]Setting up the ExRelease extraction script
Sorry but you are not allowed to view spoiler contents.

[/li]
[li]Using the ExRelease script to take screenshots with subtitles/typesetting
Sorry but you are not allowed to view spoiler contents.
[/li]
[/list]



MPC-HC + madVr

TBD (awaiting contributions)



mpv

TBD (awaiting contributions)


Changelog:
r10 (2013-08-23):
  • Updated mpv rating and information
  • Updated Dither, ExRelease and xy-vsfilter versions/download links (I/II.3)
  • Updated ExRelease information in AvsPmod tutorial V
  • Added an example for VIDEOFILE in III.3b
r9 (2013-07-23):
  • Updated ExRelease to r8, which is now a PowerShell module and adds typesetting detection for .ass subtitles
  • Updated guide accordingly: simplified IV.5; added typesetting finder information to part V.0; added typesetting finder instructions as part V.6
Sorry but you are not allowed to view spoiler contents.
« Last Edit: September 25, 2013, 06:35:40 pm by line0 »

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #1 on: July 04, 2013, 03:41:30 am »
I've split this into a new thread to make things much easier for future viewers. Old thread can be found here: http://forums.bakabt.me/index.php?topic=35816.0

By the way, line0, a small correction, the macro for exporting images seems to be called "Save image sequence", rather than "Export image sequence".
« Last Edit: July 04, 2013, 08:38:46 am by Southrop »

Offline Seriti

  • Member
  • Posts: 114
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #2 on: July 04, 2013, 02:55:14 pm »
Thank you very much for doing as I asked!! I'll start helping the staff with comparisons from now on!

Offline revo

  • Member
  • Posts: 814
  • I Can Only Carry 50 Loli's at a Time
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #3 on: July 04, 2013, 02:58:38 pm »
Very nice :)
Thanks

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #4 on: July 04, 2013, 03:53:52 pm »
Can someone please copy this to the hopelessly outdated wiki page

By the way, line0, a small correction, the macro for exporting images seems to be called "Save image sequence", rather than "Export image sequence".
Thanks, fixed.

Offline Sherlock

  • Former Staff
  • Member
  • Posts: 305
  • To Nyaa or Not to Nyaa..
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #5 on: July 04, 2013, 05:39:41 pm »
Can someone please copy this to the hopelessly outdated wiki page
If you're planning to complete the other remaining sections, I'll add it in when it's completely done. Seems easier that way >_>  :)
There is no greater natural advantage in life than to have an enemy over-estimate your faults, unless it is a friend under-estimating your virtues.

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #6 on: July 04, 2013, 06:57:58 pm »
If you're planning to complete the other remaining sections, I'll add it in when it's completely done. Seems easier that way >_>  :)
what do you consider the "other remaining sections". i plan on doing the subtitle use/extraction tutorial, but i don't feel like doing the MPC-HC+madVr or mpv instructions at all.
Certain people who are actually using those payers for taking screenshots and have come up with a workflow that keeps them from going insane should go ahead and do them!

Offline Sherlock

  • Former Staff
  • Member
  • Posts: 305
  • To Nyaa or Not to Nyaa..
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #7 on: July 04, 2013, 07:16:39 pm »
If you're planning to complete the other remaining sections, I'll add it in when it's completely done. Seems easier that way >_>  :)
what do you consider the "other remaining sections". i plan on doing the subtitle use/extraction tutorial, but i don't feel like doing the MPC-HC+madVr or mpv instructions at all.
Certain people who are actually using those payers for taking screenshots and have come up with a workflow that keeps them from going insane should go ahead and do them!
The Advanced tutorial for syncing up releases? I think I saw a TBD next to it, so was wondering..
There is no greater natural advantage in life than to have an enemy over-estimate your faults, unless it is a friend under-estimating your virtues.

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #8 on: July 04, 2013, 10:32:00 pm »
Done. Took me a good 3 hours lol.

Hopefully I have not introduced any errors while redoing the formatting. Would appreciate it if anyone wants to double check for mistakes. I'll update it when line0 does any further updates.


Side note,
Quote
%06d inserts the current frame number, so make sure Add the frame number as suffix is unchecked when using it.
Are you sure that's how it works? When I used it last night, it worked fine with the option checked and unchecking that option actually seemed to cause frame numbers not to be inserted.
« Last Edit: July 04, 2013, 10:53:44 pm by Southrop »

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #9 on: July 04, 2013, 11:46:52 pm »
Done. Took me a good 3 hours lol.
nice, let's hope the community picks up on that and stops posting junk screenshots...

Side note,
Quote
%06d inserts the current frame number, so make sure Add the frame number as suffix is unchecked when using it.
Are you sure that's how it works? When I used it last night, it worked fine with the option checked and unchecking that option actually seemed to cause frame numbers not to be inserted.
it seems you're right about that, fixed.


The Advanced tutorial for syncing up releases? I think I saw a TBD next to it, so was wondering..

Ah, yes, it will be done... someday
« Last Edit: July 05, 2013, 12:25:29 am by line0 »

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #10 on: July 06, 2013, 05:10:28 am »
Does madVR support taking screenshots now btw? I seem to recall that it couldn't take screenshots using MPC's Alt+I feature.

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #11 on: July 06, 2013, 05:55:20 am »
Updated the tutorial with sections IV and V. This probably needs some testing... also take note the script snippet/template also got updated.

Does madVR support taking screenshots now btw? I seem to recall that it couldn't take screenshots using MPC's Alt+I feature.
yes, for quite a while now.

EDIT:

You have the x64 and x86 labelled incorrectly.
fixed, thanks for actually going through and checking this for errors.
« Last Edit: July 06, 2013, 06:05:40 pm by line0 »

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #12 on: July 06, 2013, 07:14:56 am »
yes, for quite a while now.
Haha I haven't updated my madVR for ages. Still on v0.82.5



Updated on the wiki. Double checking appreciated. Just the snippet and sections 4 and 5, right?

edit:
oh wait, required components section too. But you have the x64 and x86 download links for PowerShell 3 labelled the wrong way around. Fixed on wiki too

edit2:
I think it might also be useful to add a notice that you will get an error message when loading fonts if there is no Fonts subdirectory. One that looks something like this:

get-childitem : Cannot find path 'C:\Users\Southrop\Desktop\Comparisons\Fonts' because it does not exist.
At C:\Program Files (x86)\ExRelease\ExRelease.ps1:367 char:39
+     $fonts = Join-Path $fontDir "*" | get-childitem -include ('*.ttf', '*.ttc',  ...
+                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Southr...mparisons\Fonts:String) [Get-ChildItem], ItemNotFound
   Exception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
« Last Edit: July 06, 2013, 06:31:58 pm by Southrop »

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #13 on: July 06, 2013, 06:37:39 pm »
I think it might also be useful to add a notice that you will get an error message when loading fonts if there is no Fonts subdirectory. One that looks something like this:
Sorry but you are not allowed to view spoiler contents.
Yeah, the script lacks error handling in some places. I'll add a meaningful error message to the script on the next update round.
Btw, you can also define a custom font directory with :
ExRelease . -fontDir X:\Font\Dir
or if you are already in your working directory:
ExRelease . -fontDir .

i could even make "." the default -dir, so you could omit the first dot

Edit: updated ExRelease with improved error handling for some common cases, including the one you posted. I decided against the "use current directory as default"-thing because it'll probably cause confusion among some users.
« Last Edit: July 06, 2013, 11:39:06 pm by line0 »

Offline KuroxShiro

  • Member
  • Posts: 152
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #14 on: July 11, 2013, 08:03:35 am »
There are some typos with the script, I think.

Dither_convert_8_t o_16   ==>   Dither_convert_8_to_16
cmt=cmd   ==>   cmt=cmt

Everything else seems fine though, the script is very handy  :)

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #15 on: July 11, 2013, 06:02:24 pm »
There are some typos with the script, I think.

Dither_convert_8_t o_16   ==>   Dither_convert_8_to_16
cmt=cmd   ==>   cmt=cmt

Everything else seems fine though, the script is very handy  :)
fixed the cmt=cmd thing, the space in the dither_convert_8_to_16 is being incorrectly addded by the forum software despite me using the preformatted tag. so yeah, should be fixed in smf instead

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #16 on: July 11, 2013, 08:24:55 pm »
Urgh. I have no idea what you have/haven't updated now D:
Could you make a changelog when you update stuff?

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #17 on: July 11, 2013, 08:58:11 pm »
Urgh. I have no idea what you have/haven't updated now D:
Could you make a changelog when you update stuff?
i did make a changelog, though.
An alternative would be to make a github repo for some kind of version control.

EDIT: updated avspmod with a build that introduces a new option required by the workflow described in the basic tutorial. seems like nobody actually tried to follow the tutorial so far ;)
« Last Edit: July 13, 2013, 02:57:53 am by line0 »

Offline Southrop

  • Former Staff
  • Member
  • Posts: 5249
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #18 on: July 15, 2013, 10:20:26 am »
i did make a changelog, though.
An alternative would be to make a github repo for some kind of version control.

EDIT: updated avspmod with a build that introduces a new option required by the workflow described in the basic tutorial. seems like nobody actually tried to follow the tutorial so far ;)
Ah, So you did. I just somehow didn't notice it :x Anyway, wiki page should be correct now.

Interestingly, I have been following the workflow in this tut, but the files i've worked with so far had different framerates so I couldn't tell if it was being offset properly or not anyway lol


By the way since ExRelease generates an avs script, wouldn't it be better to rewrite the guide to instruct users to use ExRelease as opposed to manually doing the snippet/script thing?
« Last Edit: July 15, 2013, 10:26:19 am by Southrop »

Offline line0

  • Member
  • Posts: 118
Re: [Tutorial] Solutions for Taking Screenshots
« Reply #19 on: July 15, 2013, 08:37:25 pm »

Interestingly, I have been following the workflow in this tut, but the files i've worked with so far had different framerates so I couldn't tell if it was being offset properly or not anyway lol


By the way since ExRelease generates an avs script, wouldn't it be better to rewrite the guide to instruct users to use ExRelease as opposed to manually doing the snippet/script thing?

I wanted the users to know some basics about editing the avs script for a couple of reasons:
  • ExRelease has a couple of additional prerequisites and it's nice to have some kind of working solution that doesn't require you to install all 9001 of them  and that doesn't require the user to touch the command line (which apparently an insurmountable problem for some users)
  • ExRelease only works on .mkv files
  • ExRelease may break or fail to detect the proper output resolution, group name (this is very common), etc
  • Some basic familiarity with editing an avs script is required for the upcoming syncing tutorial