Go Package built around spinning up streaming processes
Stream exposes a struct called Stream which starts an underlying ffmpeg process to
transcode incoming raw RTSP stream to HLS based on parameters.
It provides a handy interface to handle streams
import "github.com/riltech/streamer" func main() { stream, id := streamer.NewStream( "rtsp://admin:[email protected]:447/Streaming/Channel/2", // URI of raw RTSP stream "./videos", // Directory where to store video chunks and indexes. Should exist already true, // Indicates if stream should be keeping files after it is stopped or clean the directory true, // Indicates if Audio should be enabled or not streamer.ProcessLoggingOpts{ Enabled: true, // Indicates if process logging is enabled Compress: true, // Indicates if logs should be compressed Directory: "/tmp/logs/stream", // Directory to store logs MaxAge: 0, // Max age for a log. 0 is infinite MaxBackups: 2, // Maximum backups to keep MaxSize: 500, // Maximum size of a log in megabytes }, 25*time.Second, // Time to wait before declaring a stream start failed ) // Returns a waitGroup where the stream checking the underlying process for a successful start stream.Start().Wait() }