Changelog

Every update to the Pipe platform: new features, improvements and fixes.

Beta support for Safari on macOS

New

We are glad to announce that our HTML5 desktop recorder now supports Safari on macOS, although since Safari is still considering its MediaStream Recording API implementation experimental, support will be in beta for a while

To enable recording on Safari with our desktop HTML5 recorder simply take the following steps:

  1. Go to your environment edit dashboard
  2. Scroll down to the Desktop Recording Clients section
  3. Click the Safari support checkmark and then Save environment

Screenshot-2021-10-15-at-12.30.40.png

To find out more about this new release check out our blogpost.

Better German translation

Improvement

To all our Deutsch speaking friends, you should now rest easy.

After the received feedback and some rounds of German language classes, we have updated our german translation across the board :)

The FPS for video recordings is now configurable

New

Until now, the FPS (frames per second) that was requested from your users’ webcam through our HTML5 desktop recording client was hardcoded to 30.

This has changed, as you can now configure the desired FPS directly from the audio-video XML quality profile. You can set any integer values like 15, 24 or 60, but keep in mind that to achieve higher framerates, you need a more capable camera.

If the requested framerate is not supported, it will default to the nearest supported one.

Added new S3 endpoints

Improvement

We’ve updated the S3 endpoints available in the push to S3 section of the Pipe account area and added the following missing AWS regions:

  • Europe (Paris) eu-west-3
  • Europe (Milan) eu-south-1
  • Europe (Stockholm) eu-north-1
  • Asia Pacific (Hong Kong) ap-east-1
  • Asia Pacific (Osaka) ap-northeast-3
  • Africa (Cape Town) af-south-1
  • China (Beijing) cn-north-1
  • China (Ningxia) cn-northwest-1
  • Middle East (Bahrain) me-south-1

Screen recording permissions and UI updates

Improvement

We’ve made a few changes recently to our screen recording solution.

Now the recorder will first ask permission to use the microphone and then ask permission to record the screen. It used to be the other way around, which caused issues when choosing to record a tab.

Given the fact that recording the screen is a lot more privacy intrusive than recording with a webcam and can pose a security risk, best practices dictate to make sure that the user is the one asking the screen to be recorded and not a malicious actor.

To this extent, we’ve added an extra step needed to be taken after choosing the [Record Screen] option.

image.png

The [Select screen for capture] is no longer a simple text, but a button that needs to be clicked in order to select the window/screen you wish to capture and ask for permission for doing so.

Full HD resolution option can now be easily enabled from the embed dashboard

New

You can now choose the 1080p resolution option directly when generating your embed code if you wish to record Full HD videos (PRO accounts only).

image.png

Keep in mind that even though you may ask for the 1080p resolution from the camera, not all webcams are Full HD capable, so the browser will default to the nearest resolution supported by the webcam.

Fixed issue with max size value

Fix

Today we’ve fixed an issue where the max value for our size metadata for both the source file and the processed mp4 was limited to 2GB (or 2147483647 bytes more exactly).

The source file size metadata was shown in the Pipe account area’s recordings page. The processed mp4 size metadata, apart from being displayed on the above page, was also used in calculating the bitrate and was available through the REST v1 API and five webhooks.

Screenshot 2021-08-03 at 14.06.32.png

There were only 68 recordings in our database where the source file’s size was maxed out and 49 where the processed file’s size was maxed out.

Webhooks can now be sent with Content-type: application/json

New Improvement

Until recently, the webhook data was sent only as application/x-www-form-urlencoded.

Now you can choose between sending the data the old way as application/x-www-form-urlencoded OR the new way as application/json.

All new webhooks will default to application/json.

image.png

All existing webhooks will continue to be sent as application/x-www-form-urlencoded, unless you choose to change them.

The content type of the webhook will be reflected in the schedule and logs pages of the webhooks section. Also, the webhook simulator will allow you to test the webhook with both content types.

Fixed issue with the recording not stopping at the maximum recording time (mrt setting) if the recorder was removed from DOM

Fix

Until now, if the Pipe desktop recording client was removed from the DOM before hitting the maximum recording limit, the recording simply continued forever until the user left or closed the webpage on which the Pipe recording client was embedded on.

The issue has been fixed today when we rolled out new, updated client side (pipe.js) files.

This only occurred when the Pipe recording client was removed using custom JS code. Removing the Pipe recorder with the built in remove function worked as expected and is the recommended way to remove Pipe from a webpage.

Aligned and slightly higher file size limit for uploads

Improvement

Whether you’re trying to:

  • upload existing recordings through our desktop recorder
  • upload recordings through the mobile native recording client
  • POST them directly to our private POST API

we have a new slightly raised size limit for the files.

The limit is now 1GiB which is 1024 * 1024 * 1024 = 1.073.741.824 bytes.

Previously, the limit was 1000 MiB which is 1000 * 1024 * 1024 bytes.

The new higher limit means any file shown as 1GB on Linux and macOS (1.000.000.000 bytes) and any file shown as 1GB on Windows (1.073.741.824 bytes) will be accepted by our servers.

Webhooks timeout reduced to 30 seconds

Fix

Today we’ve reduced the webhook timeout from 127 seconds to 30 seconds to prevent our virtual workers from being tied up in waiting for responses.

This change should not affect any integration dependent on webhooks as 30 seconds is more than enough to open a TCP connection and POST the tiny amount of data. Also, the platform is not dependent on the response, we just save the status, headers and body to the db, show them in the webhook logs section and delete them a month later.

The extension .3g2 is now fully supported for mobile and desktop uploads

Improvement

We’ve added the .3g2 extension to our list of extensions that are allowed when uploading from a mobile device using the mobile native recorder or when uploading directly from the desktop.

Here is a list of all the supported extensions (bolded is new):

Desktop UploadsMobile Uploads
mp4mp4
movmov
webmwebm
3gp3gp
3gpp3gpp
3g23g2
flvflv
aviavi
m4vm4v
ogvogv
modmod
qtqt
wmvwmv
mpegmpeg
mpgmpg
aacaac
m4am4a
mp3mp3
wavwav
oggogg
wmawma
flacflac
amramr

Round 2 of improvements to our recording servers

Improvement

This round of changes focuses on one thing in particular: the way we add tasks for our transcoding servers.

Until now, the recording servers relied on the database to pass on the task needed to be done towards the transcoding servers.

With this update, we’ve implemented direct communication between the recording servers and the transcoding servers.

What does this mean for you?

  • Faster processing (up to 150 ms faster )
  • No more rare random delays (up to 2 minutes) in processing the recordings.

Stay tuned for the next round of updates for our recording servers!

Fixed issue with connecting from behind an ipv6 proxy

Fix

Until today, some visitors using IPv6 might have had issues loading the Pipe Recorder. Those days are gone!

In situations where the user was connecting through IPv6 to a proxy and then to our client delivery server or CDN the X-Forwarded-For header contained IPv6 value which led to a 500 HTTP error instead of a proper JSON response. Parsing the header value (which lead to the error) only happened when the environment’s region was set to Auto or Auto-US. From our investigation, this was a rare event. During the past month, it has affected under 100 requests against our precheck mechanism.

This also happened when the X-Forwarded-For header contained malformed information in which case we now just default to the eu region (when the region option is set to Auto on the environment) or us1 (Auto-US).

This is yet another improvement in a series of infrastructure improvements that we’re making to the Pipe Platform.

The recording ID from the webhooks payload is now a consistent data type

Fix

The recording ID within a webhook payload was correctly sent as an Integer data type when the recording was processed in real-time (first attempt), but incorrectly sent as a String data type when the webhook was sent as a result of a successfully retried recording (one that failed on its first attempt).

This has been fixed so that the recording ID within any of the possible webhook payloads will always be an Integer data type across the board as it should.

Round 1 of improvements to our recording servers

Improvement

We just deployed part 1 of an ongoing huge update that our recording servers will receive. Here are some of the most important changes we made in the first round:

  • The recording servers can now make multiple connections to our database at the same time.
  • Reduced the number of queries made to our database by implementing a caching mechanism.
  • Code optimization and restructuring.
  • Made changes to lower the number of duplicate recordings even further. This was already a rare occurrence.
  • Better logs with new data to allow us to better keep track of potential issues in the future.

All of these changes mean that our servers will be able to take on much higher recording loads than before for less hardware usage.

Stay tuned for the next round!

Safari 14 Support

New

Safari 14 has been released, which drops the support for Flash Player, but at the same time it does not introduce the support for MediaStream Recording API (this feature is still under a flag).

This forced us to drop support for desktop Safari 14 until the MediaStream Recording API is fully supported and turned on by default.

As of now, our desktop recorder will redirect Safari 14 users towards other browsers:

Safari-14-not-supported-1.png

The Record Video/Audio button will also be greyed out and disabled.

More details can be found in the blogpost.

More MIME types allowed with mobile uploads

Improvement

Allowed MIME types are now in sync between the desktop upload path and the native mobile recording/upload path.

This especially impacts the uploads/recordings coming from the mobile native recorder, many more formats are now supported.

Here’s the complete list (what’s bolded is new):

Desktop UploadsMobile Uploads
video/mp4video/mp4
video/quicktimevideo/quicktime
video/webmvideo/webm
video/3gppvideo/3gpp
video/3gpp2video/3gpp2
video/x-flvvideo/x-flv
video/x-msvideovideo/x-msvideo
video/avivideo/avi
video/x-ms-wmvvideo/x-ms-wmv
video/x-matroskavideo/x-matroska
video/mpegvideo/mpeg
audio/aacaudio/aac
audio/webmaudio/webm
audio/3gppaudio/3gpp
audio/3gpp2audio/3gpp2
audio/mp4audio/mp4
audio/mpegaudio/mpeg
audio/m4aaudio/m4a
audio/x-m4aaudio/x-m4a
audio/mp3audio/mp3
audio/x-wavaudio/x-wav
audio/wavaudio/wav
audio/oggaudio/ogg
audio/x-ms-wmaaudio/x-ms-wma
audio/flacaudio/flac
audio/amraudio/amr

Fixed video downscaling issue

Fix

Some of the videos that were in portrait mode did not correctly report their width and height in the right order which resulted in videos that were scaled down for no reason when using the transcoding engine with a max height option set.

TL;DR The width was considered the height and vice-versa because video rotation was not taken into account.

Updates to the Usage Page in the Account Area

Improvement

We’ve made several updates to the underlying code of the usage page during the last few weeks. To the account owner they amount to:

  • 🚀 being faster when calculating the pricing for large numbers of recordings (when you run into 2nd tier and 3rd tier pricing). Not quite rocket fast, but faster .
  • the monospaced font we’ve switched to in the tables will make said tables easier to scan and read 👓
  • seeing the exact start and end times for their current billing period (for example the 1st billing period starts with a date & time but ends on a full date)
  • being able to see the usage during their expired trial period
  • fix: total length values on previous billing periods are now correct, previously they did not include the audio length (cost was shown correctly)
  • fix: they’ll not encounter a minor issue with showing lengths affected by how floating-point arithmetic works on computers
  • fix: on trial accounts we’re not showing the cancel subscription button anymore

Better Search/Filter in the Account Area

Improvement

We’ve rolled out an update to the search/filter function in the Pipe account area:

  • you can now search by recording id
  • made it clear you need to search by the exact file name without extension
  • you can change the number of results per page by changing the limit value in the URL query string and it works reliably (max 200)
  • searching for “all” is not buggy anymore
  • fixed/updated search copy to better reflect the returned search results

Better Handling of Large Files When Pushing to DropBox

Improvement

Sometimes larger files failed to be pushed to DropBox because of the way we handled the upload.

This is no longer the case!

From now on, files that are larger than 150 MB will be successfully uploaded to DropBox all the time, thanks to a new mechanism that uploads large files in manageable smaller chunks.