Advanced Search
Search Results
457 total results found
Responsiveness
General Configuration Notes
Click the pull zone name to go into the dashboard for it. The headers below refer to sections of the dashboard to go to. Caching -> General Enable “Smart Cache”, “Query String Sort” and “Cache Error Response”. If you are hosting videos, enabling “Optimise F...
February 28
Hi all, hope you're doing well. I've had a very rough month, so I didn't feel up to writing two updates this month. Recovering a bit now I think, we'll see. Lots of updates to share, details below. As a side note, I've been continually documenting new changes...
Custom Error Pages: edge rules
BunnyCDN doesn't fully support custom error pages, but there is a workaround whereby you can redirect any user receiving a given status code to a URL of your choice, i.e. an error page. You need to create an edge rule that redirects to a given URL depending o...
Lambda functions and AWS API versions
Different Lambda runtimes are bundled with different AWS API versions The different runtimes, depending on how new they are, can come with different versions of the AWS APIs for the language in question. For example, Node.js functions which use 16.x or lower...
CloudFront response timeouts
If you're performing a particularly long operation (e.g. the user submitted an AJAX request to perform some task, and the server doesn't respond for a while), CloudFront can cut off the connection with a 504 error. In the CloudFront Console -> <your distribut...
Generating Credentials: secure data sources
If you have a use case where you need to give a user a one-time password or key to authenticate for something, you need to make sure that key or password has been securely generated. A common example of this would be for activation codes sent in emails to veir...
Application Load Balancer costs
Although the pricing for ALBs is ~$18/month (before accounting for traffic), keep in mind that the IPv4 addresses assigned to it will significantly increase the costs, which while not significant in production is a big addition to the costs of a test environme...
Video Formats and Codecs
Just like with images, choosing your video codec is a crucial performance and quality consideration. The main two video codecs There are two dominant video codecs, an older one and a newer one, with their own pros and cons. x264/AVC (older) The x264 codec...
Image Formats and Codecs
Image quality (particularly important for JPEGs) For JPEGs in particular, quality is not just a parameter you enter into the encoder, and it is not e.g. a linear estimate of quality. JPG quality values are on an arbitrary scale that is roughly logarithmic; go...
Use cases and limitations
Serverless code functions definitely can have a place in video transcoding, but because of the much heavier processing it demands, the use cases are very different. Use cases Transcoding short videos to small resolutions (<1min @ 480p, or shorter) If you ne...
Implementation: MediaConvert
To transcode large video files that a serverless code function can't handle, you need to use a dedicated transcoding service. This page demonstrates how to do this with AWS. Transcoding large video files on AWS There are three main services we'll be making u...
Financial cost of video transcoding
Whether you're transcoding a given video using a serverless code function, or a dedicated transcoding service, you need to consider that it is often an expensive thing to do (in the context of a website). Cost comparisons If you're using a serverless code fu...
Efficiency Overview
See Also
Media Transcoding The Media Transcoding book of this guide has a lot of useful information about transcoding (resizing and re-encoding) images and videos, which is crucial to the efficiency and cost of an art website. Poorly implemented transcoding means you...
Artwork Submissions
SubmitArtwork page elements Two specific ID structures exist, one for multiple submissions fields, and one for normal submission fields. Normal submission ID structure The file IDs follow the format "uploaded-image-{number}", and the containers and other pa...
Styling overrides and customisation
Normally, customising TinyMCE's appearance means creating a new theme, compiled in LESS. For most cases that works (and is the recommended option, because it allows TinyMCE to support it), but for Deserted Chateau it isn't enough. The problem - TinyMCE requir...
Variables
For each "item" in a gallery (i.e. an artwork submission, with one video or image as the thumbnail), there are a bunch of variables used to decide how to render the item. Example row sent to ArtworkGallery.js { "artwork_category_settings": "1:N,10:N,11:...
Implementation Details
Dynamic resizing For the "standard" gallery layout, the code notes the aspect ratio of each artwork in a given gallery, and uses this to arrange artwork in neat rows of fixed width by adjusting the row height. This means the displayed size can vary depending ...
Considerations for displaying upload previews
Depending on your use case, and how long it's acceptable for your users to wait, there's a few different ways you can choose to show a user when their video has uploaded. Approach 1: resize the video to 480p for preview This looks fancier (the user sees thei...