createVideoCompositionFiles creates files with variable frame rates and the frame rate does not match the input files’ frame rate.
A few 30 fps videos gets combined, but the result fps on the combined video is 30.066 fps. The audio ends up playing after what happens in the video.
Some 60 fps videos gets combined. The resulting video has 59.94 fps. The audio in the resulting video plays before what happens in the video.
You can check the video file details using a third party program, like MediaInfo.
When playing a video with variable frame rate back in our app (or any web browser by adding a video tag to a single html file and opening it in Firefox or Chrome) the audio and video ends up out of sync after a few minutes.
If I take the same video and use Handbrake to re-encode it as a constant frame rate video, then I don’t get this desync issue in Insights Capture or my test html file.
Can you reproduce it (exact steps to reproduce):
- use Insights Capture
- record a video
- open video in Insights Capture
- add 20 clips to the clipping panel
- click save button > check merge clips > save
- watch new clip video for 3 - 5 mins and you can see that the audio and video are not in sync anymore. It’s noticeable for gun fire in fps games. Seeking in the video will resync the video, so you must watch the video continuously.
This seems to affect lower end hardware more. I have this happening on a laptop with a AMD Ryzen 7 3700U and 8gb RAM.
Impact for my app:
Blocks a new feature because users will end up seeing this issue if they use the new feature.
Do you currently have a workaround?
createVideoCompositionFIlescreate a constant frame rate video
- provide some options to the
createVideoCompositionFilesAPI to let us configure how the video is created.