Skip to content

Latest commit

 

History

History
92 lines (77 loc) · 2.02 KB

README.md

File metadata and controls

92 lines (77 loc) · 2.02 KB

Go Ffmpeg

Go build Go Test workflow

Install

go get github.com/Paxx-RnD/go-ffmpeg

Simple Example

func main(){
   headers := []string{
		"-y",
		"-hide_banner",
		"-loglevel", "info",
	}
    
    configuration := configuration.NewConfiguration(
		"usr/bin/ffmpeg",
		"usr/bin/ffprobe",
		false)
        
    f := ffmpeg.NewFfmpeg(configuration, headers)
    
    args := f.
        Input("/path/to/video.mp4").
        Output("/path/to/output.mp4").
        Build()

    f.Run(args)
}

Example with bitrate and codecs

func main(){
    headers := []string{
		"-y",
		"-hide_banner",
		"-loglevel", "info",
	}
    
    configuration := configuration.NewConfiguration(
		"usr/bin/ffmpeg",
		"usr/bin/ffprobe",
		false)
        
    f := ffmpeg.NewFfmpeg(configuration, headers)

    args := f.
        Input("/path/to/video.mp4").
        BitrateVideo(common_bitrates.VideoBitrate100K).
        BitrateAudio(common_bitrates.AudioBitrate128K).
        CodecVideo(codec_video.LIBX264).
        CodecAudio(codec_audio.AAC).
        Output("/path/to/output.mp4").
        Build()

    f.Run(args)
}

Example with Filter Complex

func main(){
    headers := []string{
		"-y",
		"-hide_banner",
		"-loglevel", "info",
	}
    
    configuration := configuration.NewConfiguration(
		"usr/bin/ffmpeg",
		"usr/bin/ffprobe",
		false)
        
    f := ffmpeg.NewFfmpeg(configuration, headers)

    args := f.
        Input("/path/to/video.mp4").
        CodecVideo(codec_video.LIBX264).
        CodecAudio(codec_audio.AAC).
        FilterGraph().
        Fps("0:v", 15, "fps1").
        Scale("fps1", 100, 100, "scale").
        Map("scale").
        Output("/path/to/output.mp4").
        Build()
        
    f.Run(args)
}