The problem of the time interval of taking snapshots through HTTP video streaming

I tested according to this document “Generate thumbnail images of live streams using the Wowza Streaming Engine Java API”. Actually, you can take a snapshot of the video stream through the HTTP request method, but you can only take it every 6 seconds. This Can the interval time be adjusted to 1 second? How to adjust, please explain, thank you very much!

Check out this article @Tong Liu https://www.wowza.com/docs/how-to-take-timed-thumbnail-snapshots-of-a-wowza-transcoder-stream-moduletranscodertimedsnapshot

Enable the module and adjust the transcoderTimedSnapshotInterval property, which looks like the default is 1 second.

First of all, thank you very much for your reply. I have tested the method you said. This method will generate snapshot pictures. These pictures will be stored in the “conent” directory, and the “Transfer Code” function needs to be enabled. We hope to get a module that directly sends an HTTP link request, which will return the current video stream snapshot picture, and the time interval can be adjusted to 1 second. thank you very much!

NB! This alternative requires Wowza Transcoder to be enabled; and the thumbnail image will be generated from a transcoded video. First of all, the transcoder requires considerable CPU (or GPU) resources and secondly; the quality of the thumbnail may be decreased compared to the original.

Why can you only take a snapshot once per 6 seconds?

I used Chrome for testing. I typed the address “http: // IP: 8086 / thumbnail? Application = live & streamname = AI.stream & size = 1920x1080 & fitmode = match-source” into the address bar, then I clicked refresh, and my video stream With a time watermark, I find that no matter how fast I refresh, a snapshot image is generated every 6 seconds. Is it because of access through a browser? If you use wget or write your own program to call it, can you take a snapshot of 1-2 seconds? Thank you.

You could do that by taking the source code of this module from https://github.com/WowzaMediaSystems/wse-plugin-transcodertimedsnapshot and combine it with a HTTP provider.

My guess this is because you have a keyframe interval of 6 seconds in your original stream, as the code on https://www.wowza.com/docs/how-to-generate-thumbnail-images-of-live-streams uses “stream.getLastKeyFrame()”. Try to increase the keyframe interval (aka. GOP size) to 2 seconds or less.

First of all, thank you very much for your professional reply. It really is caused by the key frame setting problem. We have passed the actual test. I also want to ask you a question. We also want to save the current picture in the Http URL locally by using the http method every two seconds. How can we achieve this function? thank you very much!

You should probably write a script or function that runs on a scheduler every two seconds, makes the required HTTP call and stores the picture to local disk. How this can be implemented is totally dependent on your situation; this could literally be anything from the Windows Task Scheduler to a Python Script to a Node.JS application.

Do you mean that when I make a http request, this module will return the byte stream of the snapshot in HTTP protocol? I just need to receive this byte stream?