Resizing canvas causes problems with player.snapshotAsync

Yes, I believe it is dependent on what is visible to the eye or browser. Per our snapshot docs:
The snapshot api will capture the image from current player canvas so you may want to switch to a specific or frame the camera before you take the snapshot

You can do a quick test if you have a player on your site using this code in the console:

let image = new Image();
let imgSrc = await player.snapshotAsync();
image.src = imgSrc;
// Either append the image or save it somehow
document.body.appendChild(image)

It will just append the snapshot to your page so you can get a quick look. The screenshot I sent is actually a square player with a rectangle asset, you can see the icons that are the edge of the player:

.

You can make the player any size you’d like in HTML or CSS or JS.

I would recommend looking at the docs I linked and perhaps investigate the asset-jobs API technique and see if it better suits your needs.

With this approach you can create a render of the item using the asset-jobs API and from there you can retrieve the thumbnail from our files API.

It does add some API calls to the browser but you do not need the player at all.