videoanalysis/motion: implement video rate control

This commit is contained in:
Koushik Dutta
2023-05-03 15:57:37 -07:00
parent 9ed850e327
commit 9d8345e901
6 changed files with 14 additions and 7 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.47",
"version": "0.1.48",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/python-codecs",
"version": "0.1.47",
"version": "0.1.48",
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/python-codecs",
"version": "0.1.47",
"version": "0.1.48",
"description": "Python Codecs for Scrypted",
"keywords": [
"scrypted",

View File

@@ -78,7 +78,13 @@ async def generateVideoFramesGstreamer(mediaObject: scrypted_sdk.MediaObject, op
# so use a known software decoder for h264 and decodebin for anything else.
decoder = 'decodebin'
videosrc += ' ! {decoder} ! queue leaky=downstream max-size-buffers=0 ! videoconvert ! {videocaps}'.format(decoder=decoder, videocaps=videocaps)
fps = options and options.get('fps', None)
videorate = ''
if fps:
videorate = 'videorate !'
videocaps += ',framerate={fps}/1'.format(fps=fps)
videosrc += ' ! {decoder} ! queue leaky=downstream max-size-buffers=0 ! videoconvert ! {videorate} {videocaps}'.format(decoder=decoder, videocaps=videocaps, videorate=videorate)
gst, gen = await createPipelineIterator(videosrc)
async for gstsample in gen():