https://github.com/golift/ffmpeg
Go FFMPEG Library for RTSP streams (IP cameras)
https://github.com/golift/ffmpeg
ffmpeg ffmpeg-library ffmpeg-wrapper golang golang-library golang-package ip-cameras rtsp
Last synced: 3 months ago
JSON representation
Go FFMPEG Library for RTSP streams (IP cameras)
- Host: GitHub
- URL: https://github.com/golift/ffmpeg
- Owner: golift
- License: mit
- Created: 2019-02-10T02:16:29.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-31T15:04:27.000Z (3 months ago)
- Last Synced: 2025-04-02T22:31:33.987Z (3 months ago)
- Topics: ffmpeg, ffmpeg-library, ffmpeg-wrapper, golang, golang-library, golang-package, ip-cameras, rtsp
- Language: Go
- Homepage: https://golift.io/discord
- Size: 38.1 KB
- Stars: 60
- Watchers: 6
- Forks: 20
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Go FFMPEG Library for RTSP streams (IP cameras)
Capture video footage from RTSP IP cameras.
Provides a simple interface to set FFMPEG options and capture video from an RTSP source.
Lots of other libraries out there do ffmpeg and rtsp things, but I couldn't find
any that fit this simple task of "get a video snippet from a camera."- [GODOC](https://pkg.go.dev/golift.io/ffmpeg)
## Example
```golang
package mainimport (
"log""golift.io/ffmpeg"
)func main() {
/*
* Example non-transcode direct-save from securityspy.
*/securitypsy := "rtsp://user:[email protected]:8000/++stream?cameraNum=1"
output := "/tmp/securitypsy_captured_file.mov"c := &ffmpeg.Config{
FFMPEG: "/usr/local/bin/ffmpeg",
Copy: true, // do not transcode
Audio: true, // retain audio stream
Time: 10, // 10 seconds
}encode := ffmpeg.Get(c)
cmd, out, err := encode.SaveVideo(securitypsy, output, "SecuritySpyVideoTitle")log.Println("Command Used:", cmd)
log.Println("Command Output:", out)if err != nil {
log.Fatalln(err)
}log.Println("Saved file from", securitypsy, "to", output)
/*
* Example transcode from a Dahua IP camera.
*/dahua := "rtsp://admin:[email protected]/live"
output = "/tmp/dahua_captured_file.m4v"f := ffmpeg.Get(&ffmpeg.Config{
Audio: true, // retain audio stream
Time: 10, // 10 seconds
Width: 1920,
Height: 1080,
CRF: 23,
Level: "4.0",
Rate: 5,
Prof: "baseline",
})cmd, out, err = f.SaveVideo(dahua, output, "DahuaVideoTitle")
log.Println("Command Used:", cmd)
log.Println("Command Output:", out)if err != nil {
log.Fatalln(err)
}log.Println("Saved file from", dahua, "to", output)
}
```