Amped FIVE Update 37757: Writing Queue, Camera Calibration, RIFF Viewer, Timing Source for Video Writer and Much More

Table of Contents

Reading time: 17 min

This update to Amped FIVE includes many new additions and increases in proprietary format decoding. New Writing Queue utility, Camera calibration filters, RIFF Viewer, Video Writer Timing Control and much more.

Hi everyone! It’s time once again for an Amped FIVE update. The Amped Software factory has been very busy again over the last few months with many amazing new developments. We have a lot to get through. So, let us head straight in and see what we have in store for you. 

See the New Features in Action

Formats

Amped Engine, the powerful application behind our proprietary video extraction and decoding, has had another large update.

Notably, we now support the GBF format, which includes multiple codecs, audio, and the all-important date and time information. The original PTS data is retained, enabling full analysis and comparison between the timestamp and the video timing.

Several other new formats have been added, along with smaller improvements to many others. Thank you to everyone who has submitted files for analysis and support to the codec team. With your help, we learned that these proprietary formats exist. Developing the decoders helps everyone within the forensic video community.

Writing Queue

Writing video files can take some time, especially when they have high pixel resolutions, frame rates, or length. As you may already know, when writing a file in FIVE, each frame is written with no prior processing. Therefore, even when using hardware acceleration, certain filters may take a little calculation before the result is passed to the encoder.

To help users with this writing stage, the Writing Queue can hold several writer processes in a waiting list. They can then be written out together at a suitable time, perhaps during the night.

Within the Video Writer and the Sequence Writer parameters, you will find a new button.

After configuring your Parameters, selecting this button will add it to the queue.

The Writing Queue Utility will open automatically.
It can also be found under Utilities > Writing Queue.

When several Writer filters have been applied, the Writing Queue could look something like this:

At the top, you will find a set of completion actions.

Within the list window, you will see the Writing filters in the queue. You can move these around to change the order if required.

Over on the right side are some buttons to manage the items in the queue.

  • Suspend: This stops the file from being written but keeps the item in the queue.
  • Add: This places it back in the queue to be written after suspension.

You will then see three buttons giving various functions to remove items. At the bottom, you will see the current file process and the important Start and Abort buttons.

The Writing Queue and status are held within the Project. This means that after completing several different chains and adding your Writing functions to the queue, you can close the project to be reopened at a later time. All your Writing functions will be pending and ready to be started at a time suitable for you.

Camera Calibration

Most users will likely use Undistort or Correct Fisheye regularly. They are two of the most common filters used to restore a video image, and therefore present a more authentic view of the scene. This is crucial in presenting video evidence.

The two mentioned filters use straight objects within the field of view, such as doorways.

How do you then deal with cameras with limited straight objects? Or perhaps Body Worn Video and Dashcams?

This is where Camera Calibration comes in.

In this latest release, there are two new filters within the Edit category.    

  • Create Camera Calibration allows for the creation of a camera profile. 
  • Load Camera Calibration allows for the loading of a previously created camera profile.

Here we have the scene recorded from a cyclist’s GoPro prior to an incident. There are minimal straight edges, and the lens distortion is difficult to visualize.

Using the camera, with the same settings, we can record a small piece of test footage, capturing a printed grid.

Whilst creating this test footage, we can move the camera around the grid to obtain multiple angles.

The first task after loading this test footage into Amped FIVE is to minimize the number of frames required for calibration. It may be possible to use a single frame, but it’s best to use a small range of frames, or, as in this example, use Sparse Selector to obtain frames at different positions.

Here we have the six frames selected.

We can now select the new Create Camera Calibration filter.

As you can see, from the Test Pattern tab, different checkerboard sizes are supported.
With handheld cameras, a smaller board, such as A4, will usually suffice. However, when conducting camera calibration on a static camera from a distance, a much larger board will be required to ensure that enough of the grid is replicable after capture and compression.

The width and height parameters represent the internal corners of the horizontal and vertical lines. In our test footage, the board width is “9”.

After setting our parameters, with this example, we will click Apply, without looking at the other tabs for now.

The software quickly calculates the distortion and restores the image to an undistorted view.

To visualize the points identified by the software and then used in the calculation, we need to revert to the original. We can do this by going to the Output tab.

Moving to the Test Pattern, we can check the box to Show Live Points.

This is a good way to verify that the software has identified the grid correctly.

You may have noticed from the Output tab that there are also options to extend the canvas and then to save the Calibration profile.

Saving the Calibration profile creates an .afcc file that can be loaded into our evidential footage chain.

We will cover the other tabs in this filter in a dedicated post very soon. For now, let’s move back to the incident recorded by the cyclist, as we need to load our .afcc file into the chain using the Load Camera Calibration filter.

Let’s concentrate on this tab, where we select the file and then some basic presentation parameters. 
After applying the filter, the camera calibration profile that we calculated using the checkerboard is applied to the incident footage.

Here we can see the before and after views.

These new filters are powerful additions to the current lens correction capabilities, especially for sport cameras, dashcams, and Body Worn Video (BWV).

In the next few weeks, we will post a dedicated article going into the filter in much more depth. For now, let us move on to another new filter.

Decimate

Decimation is the process of removing a large portion of something. With video, it removes all frames apart from the step pattern selected.

This new filter, located within the Select Frames category, enables you to retain only the frames specified in the Step value parameter.

In our example above, we have the Step value of “4”. 
This means that, starting with frame 0, every 4th frame will be retained, while all others will be decimated.

This new filter is now a speedy way to retain a constant pattern of frames and remove all the others. 

Coding Tree Units

The feedback after the release of the new HEVC/H265 Coding Tree Unit (CTU) filter has been fantastic. We have continued working on the filters’ capabilities and have added a new Partitioning option.

You now have the capability to view the Prediction Units (PU) within the Coding Units (CU).

Coding Units only:

Now showing Prediction Units:

If you missed the last update or wish to refresh your memory on using the CTU Filter, take a read of this dedicated post.

Advanced File Info

RIFF Viewer

Container Analysis is an important stage when evaluating video files for integrity, authenticity, and when investigating errors or data inconsistencies.

How a video file is formatted inside the container can reveal individual characteristics specific to the writing application. Several files from the same source should, in theory, share the same characteristics. This is regularly seen in proprietary recording systems such as CCTV. 
To give an example, an AVI video created directly from the Digital Video Recorder may have a different structure from one created by a computer network client, even though the video data is the same. 

Incorrectly formatted data, often placed badly into the unsuitable AVI container by an automated system, can cause decoding problems. These problems can often be overcome through reformatting. It is, however, important to establish the cause of a problem before fixing it.

Within Advanced File Info, there is a new tab called RIFF Viewer. This tab breaks down the Resource Interchange File Format (RIFF) used by several different extensions, most commonly the AVI multimedia file type.

The viewer is split into two windows. The left window displays the hex data. The right window displays the RIFF structure.

When a RIFF entry is selected, using a mouse click, the first byte of that entry will be highlighted.

The basic structure of a standard AVI RIFF file is:

  • RIFF (AVI)
  • LIST
    • LIST
    • LIST
  • LIST
  • IDX1

Each chunk and sub-chunk has a four-character code denoting the type.

hdrl: Header List
avih: AVI Header
strl: Stream List
strh: Stream Header
strf: Stream Format
movi: Video, Audio, and text data
..db: Uncompressed Video
..dc: Compressed Video
..wb: Audio

Subtitle and text data can be stored either with the ..tx character code or as another video stream.

There can also be JUNK chunks that are ignored by a standard decoder. Here we have opened up the header List and the AVI header.

Each Double Word (dw) entry is shown.

Within the LIST chunk are two further sub-chunks that are also lists. These are for the Video stream and the Audio stream. Opening the first one reveals the Video Stream List and the Stream Format.

Opening the next reveals the Audio.

Let us move down to the MOVI chunk, where the video and audio data are held. 

There are a few things to note here.

  1. Firstly, each sub-chunk is listed as uncompressed video (00db). You may have spotted earlier that the listed compression in the video stream header was XVID. This is most definitely compressed.

  2. The next is that there was an audio stream listed, which would have a four-character code of 01wb, denoting the second stream and wb, meaning audio. However, there are no 01wb chunks interleaved with the video.
    Again, those sharp-eyed amongst you may have spotted earlier that the Audio stream length value was 0kb. This file has an audio header, but no audio data.

  3. Lastly, look at the size of the video sub-chunks. 
    Many of them are only 14 bytes.
    These are classed as frames, but they are empty. They allow a frame to be held in place but retain the timing. This is commonly seen when a Variable Frame Rate video is placed into the AVI container. One of the many consequences of this is that the frame count in the header will be using both real frames and empty chunks. 

Finally, we have the index (idx1). This is what a standard decoder will use to ensure correct playback and keep the video and audio in sync (when there is audio data).

The flexibility and relative ease of writing data inside the RIFF AVI container does mean that there are many different individual structures specific to the writing application.
There are also different versions of the AVI format, allowing the storage of Digital Video (DV), and then the ability to store data over 2 GB, using Super Indexes.
Analysis and comparison of the RIFF structure may assist in answering decoding questions and identifying differences from files purportedly from the same writing application.

These resources are useful for learning more.

Save to Log File

Data can now be exported into a log file from the following Advanced File Info tabs: 

  • FFMS
  • MediaInfo
  • FFprobe
  • ExifTool
  • GOP Analysis

The new button, located at the bottom of Advanced File Info, enables the saving process.

These log files can then be added to your filter chain and also your report by using the Add Log File filter.

Load from TSV

The Advanced File Info Frame Analysis can take some time to process. It is beneficial to save this data as a .TSV file after creation, and the ability to do this has been in the application for some time.

In this latest update to Amped FIVE, we have added the capability to load this TSV data back into Advanced File Info.

The process of reloading the data, rather than recalculating, is very fast. It then enables you to dynamically move around the data using this information, rather than moving between a separate spreadsheet and Amped FIVE.

Add Text & Annotate

With the Add Text filter and the Text function within Annotate, you can now export any Macro Data to TSV.

In the example above, we have used Add Text. The Macros selected are some of those commonly used during a timing evaluation over the whole file or a selected range of frames. Annotate would allow extra flexibility in the data selected, as the data ranges can be within a larger set of frames.

Exporting to TSV then allows full control within data analysis and visualization tools, such as MS Excel.

Video Writer

Several improvements have been made to Video Writer for this latest update. When the Writer starts, there are several conformity checks. We have improved the performance of these checks to speed up the writing process.

We have also improved the handling of audio when linked with a Variable Frame Rate (VFR) Video and removed unused parameters from the report to avoid confusion. 

The biggest change, though, is a new method for controlling the timing of the written video. 

Let us go through each option within the new Timing Source dropdown menu.

Automatic

The “Automatic” Source takes the timing from your current playback mode. Your playback mode is selectable from the Settings in the Player.

Therefore, if you have PTS-Based Playback, you will output using the PTS. This is the default.

From PTS

This overrides your playback mode and will use the current PTS data when writing the file.
To give you an example, we have a file that has a variable frame rate, and each of the 798 frames’ duration is different. We then may use freeze frame on a specific moment for 5 seconds. This adds 113 frames.

113 (frames) divided by 5 (seconds) equals 22.6. This is the average frame rate of the file.

Following on from the last added frame, the original files’ frame durations are used, resulting in the retention of the original variability.

From Date/Time

This overrides your playback mode and will use the timestamp values in your filter chain. 

Here we have a common chain:

The video included a data timestamp, but this only referenced the seconds. We have used Adjust Timestamp to refine the timing data and give millisecond accuracy. This is a vital step if the timing is to be used to control the frame rate.

After writing some text over the video, we wish to write the video and use the timestamp to control the frame timing.

Selecting this option for the Timing Source allows the passthrough of the time data directly to each frame. This results in duration accuracy if the original proprietary timing source was the data timestamp.

From Average FPS

This overrides your playback mode and will use the Average FPS when writing the video. Therefore, with 1000 frames across 120 seconds. The resulting written video will be 8.333fps.

Timing is one of the most difficult things to deal with when analyzing and processing video from surveillance systems. The accuracy of durations and the speed of motion are often called into question. We are sure you will find this new option to specify the timing source, and retain as much originality in your written videos as possible, to be a powerful new functionality.

Sequence Writer

A quick and handy new function has been added to Sequence Writer.

If you need file names to all have the same number of digits when writing from different chains, you can now add additional zeros to your frame numbering.

Convert DVR

Concatenation

Stream concatenation is a very useful process. Imagine 60, 1-minute files. Concatenation is the process of simply joining the stream data together, with no change in the original encoding. Therefore, it’s not only fast, but the new 1-hour video will retain the original encoding data.

In this new update to Amped FIVE, we have made a number of small improvements.

  1. The first is that during the initial analysis stage, there is a check to ensure that all files have the same time base. They do not have to have the same frame rate. This ensures that variable frame rate videos, such as those coming from small wifi cameras, can be concatenated as they would normally have the same timebase. 

  2. The second change relates to the Output Format under the Copy Stream tab.
    If the files being concatenated are all within the MP4 format, then the resulting file will be set to the same format. This ensures that there are no formatting errors in the concatenation process.
    You may find that you are required to concatenate several AVI files. If you wish to create an MKV, output to a concatenated AVI first. Then use Convert DVR again to create the MKV. 
    This not only avoids errors but also provides you with all the files used in the process, so any validation of data processing can be completed first. Then use Convert DVR again to create the MKV.

Advanced Tab

A small wording change within the Advanced tab. 

When proprietary files contain stream data, the streams are extracted first, before being placed into a suitable container format. We have reworded the options to retain or delete to avoid any confusion in this process.

Fallbacks

As well as some simplification of the options within Fallbacks (See Other Updates and Changes), we have added two more formats to the outputs available within custom commands.

Adding H264 and H265 allows users to attempt extraction of the raw bitstreams with no formatting into a standard video container.

This process is particularly useful when dealing with damaged stream/container configurations. Extracting the stream first, then formatting, can bypass original container errors. 

Multiview

This update to Amped FIVE brings some slight changes to Multiview.

The first is that we now place Columns before Rows, in the grid order. This then ensures that if you have a 5×4 grid, the first number relates to Columns.

Next, you may notice that the maximum number of Columns and Rows has been increased to 8. This then allows for a 64-chain grid.

Due to the increased use of Tiling, where multiple parts are encoded and then stitched together to make the full frame or image, the larger grids will assist in the support of high-resolution frames.

Load Timestamp

Very often, when subtitles are used to contain timing data, the original formatting can cause problems in the identification of the timing information.

Here we have an example:

This looks relatively normal, but the Date is being read as Year, Month, Day.
However, from the acquisition, we know this was not 8th September. It was 9th August.

Within Load Timestamp, there is now a new function to inform the filter of the Input Format.

In our example here, we have placed it in the correct format by typing the structure into the Input Format box. You can then see that we have used one of the formatting options to render the full date and time. 

This then reads and displays the date correctly.

There are some CCTV systems that display the date and time within a larger text string. The same method can be used with these systems to inform the filter what parts relate to date and time.

Generate Report

Another small but powerful change is the separation of input and output files in the report. 

This is particularly helpful when you wish to add the metadata and hash value of the files used within your project, but only wish to detail the filenames of all exported files. A common scenario for this is when writing a sequence of images. Having 500 hash values may not always be required.

Remember, you can also use filters to add the file information and hash values to specific outputs if required.

Filters

You may notice in the screenshot above that the order of the Filters is different. This is the new “Workflow” Filter order.

If you wish to revert to the older, original filter order, then select “Legacy” from the new Program option dropdown menu.

Player Panel

There are two small text additions here to assist you in identifying important information.

At the bottom, you have a permanent notification of what Video Engine is being used, how the Color Range is being decoded, and the level of Chroma Subsampling. This saves you from going back to the Video Loader.

Next, on the right side, is a Vertical Scaling notification. 
When vertical scaling is on, allowing better visualization of any low values, this will be presented in red text.

You can turn off Vertical Scaling by unchecking the right-click option.

Other Updates and Changes

  • We have improved the audio/video muxing capabilities of the conversion engine with many formats. This allows for the retention of AV synchronisation. 
  • We have improved stream copy conversion of MP4/MKV files to an AVI container by managing the restructuring of the data before the reformat process.  
  • Improved handling of custom MJPEG metadata in Advanced File Info Frame Analysis.
  • Improved support of HEIC-encoded JPEG images.
  • We now automatically update the output file name when copying and pasting a writer filter. 
  • Macroblocks: The filter can now be appended after a Video Writer (if the output codec is supported).
  • A log file is now created after duplicate files have been removed during a Copy and Verify process. 
  • If subtitles can be extracted from the container after loading, users will have the option of where the created files should be saved. 
  • Added ability to scroll within the Tools panel. 
  • A user warning message will be displayed for all Writing filters if the output has to be recreated after a filter is enabled. 
  • Add Timestamp: Timing recalculated when also adjusting framerate.
  • Changed the order of the dialog when loading multiple images. 
  • Added the appropriate file name to the “File requires analysis” prompt. 
  • Updated the PortAudio library to v19.7.0.
  • Generate Report: Updated the output format from “DOC” to “DOCX”. 
  • Removed “Technique” parameter from Convert DVR Fallbacks Procedures. No separate stream extraction techniques are required due to new capabilities in Amped Engine. 
  • Removed Export Video from the Utilities menu. To avoid undocumented exports, it is recommended to use Video Writer instead. This then ensures a full forensic workflow within your filter chains. Technical challenges within the Microsoft Media Foundation Framework also limited the codec options available in recent years.

Bug Fixes

Thanks to all the users who have reported bugs. As always, if you come across something that is not expected, please reach out to us in Support so we can fix it.

  • Fixed a bug that prevented Uncompressed RGB, FFV1, and RawVideo codecs from being used in Video Input
  • Add Audio Stream: fixed playback when applying the Reverse filter.
  • Waveform: fixed a performance issue of reloading unnecessarily. 
  • Hash Code: fixed the bug of showing a single image hash value for the Sequence Loader
  • Annotate: fixed an object becoming misaligned when snapping to horizontal or vertical rotation state. 
  • Annotate: fixed text misalignment inside a rotated Text object. 
  • Annotate: fixed, extended canvas not considered when initializing Resize filters. 
  • Fixed a bug that caused data to persist across projects in the left footer of the report. 
  • Hash Code: fixed the bug of showing the first image hash value for Sequence Loader when revisiting the filter. 
  • Writer filters: modified not to write automatically when the filter is copied and pasted. 
  • Change Frame Rate: fixed an issue that caused the filter not to be applied if the selected frame rate was identical to the current one (this prevented conversion to CFR).

Don’t Delay – Update Today

If you have an active support plan, you can update straight away by going into the menu About > Check for Updates within Amped FIVE. If you need to renew your SMS plan, please contact us or one of our authorized partners. And remember that you can always manage your license and requests from the Amped Support Portal.

Table of Contents

Share on

Subscribe to our Blog

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Subscribe to our Blog

Related posts