Skip to content

Switching input stream from low quality to high quality after iframe (simulcast?) #1824

@smhc

Description

@smhc

The "smart" style h265 encoding saves lots of bandwidth, but it has very low i-frame rates. This makes it difficult to use for on-demand live streaming which this project is aimed at.

Is it possible to define a stream that takes two inputs, a "fast, low quality stream" and a "high latency, low i-frame, HD stream" and migrates to the higher quality stream as soon as an i-frame is received?

It theoretically may be possible using 'exec', multiple processes, pipes and probes for i-frames. Perhaps may need to use the 'overlay' filter as well. But I am not sure about the 'switch-over' of streams. I don't mind how much CPU it uses as I expect it to only be running temporarily on-demand.

The use case for this is to "live-view" a camera using its 'detect' stream and move over to the higher quality 'h265/record/hd' stream once it can be successfully decoded for viewing, which could take 20 seconds or more.

Is this something that is already possible? Or a potential feature to implement? I can imagine it would have plenty of application for users of this project and may be a better solution to some of the other proposals like "pre-loading" etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions