Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/floostack/transcoder

Transcoding library implementation in Golang
https://github.com/floostack/transcoder

ffmpeg golang golang-library transcoding

Last synced: 2 months ago
JSON representation

Transcoding library implementation in Golang

Awesome Lists containing this project

README

        

# Golang Transcoding Library

> This repository is no longer maintained. Please use [Goffmpeg](https://github.com/xfrr/goffmpeg).

## Features


Ease use

Implement your own business logic around easy interfaces

Transcoding progress

Obtain progress events generated by transcoding application process

## Download from Github

```shell
go get github.com/floostack/transcoder
```

## Example

```go
package main

import (
"log"

ffmpeg "github.com/floostack/transcoder/ffmpeg"
)

func main() {

hwaccel := "cuvid"
videoCodec := "h264_cuvid"

inputOpts := ffmpeg.Options{
Hwaccel: &hwaccel,
VideoCodec: &videoCodec,
}

format := "mp4"
overwrite := true

outputOpts := ffmpeg.Options{
OutputFormat: &format,
Overwrite: &overwrite,
}

ffmpegConf := &ffmpeg.Config{
FfmpegBinPath: "/usr/local/bin/ffmpeg",
FfprobeBinPath: "/usr/local/bin/ffprobe",
ProgressEnabled: true,
}

progress, err := ffmpeg.
New(ffmpegConf).
Input("/tmp/avi").
Output("/tmp/mp4").
WithInputOptions(inputOpts).
WithOutputOptions(outputOpts).
Start()

if err != nil {
log.Fatal(err)
}

for msg := range progress {
log.Printf("%+v", msg)
}
}
```