Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/giorgisio/goav
Golang bindings for FFmpeg (This repository is no longer maintained)
https://github.com/giorgisio/goav
ffmpeg-libraries golang-bindings video
Last synced: 23 days ago
JSON representation
Golang bindings for FFmpeg (This repository is no longer maintained)
- Host: GitHub
- URL: https://github.com/giorgisio/goav
- Owner: giorgisio
- License: mit
- Created: 2015-05-21T05:31:14.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-19T23:28:55.000Z (about 2 years ago)
- Last Synced: 2024-01-08T16:24:34.156Z (5 months ago)
- Topics: ffmpeg-libraries, golang-bindings, video
- Language: Go
- Homepage:
- Size: 1.15 MB
- Stars: 2,054
- Watchers: 50
- Forks: 414
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-video - goav - Comphrensive Go bindings for FFmpeg. (Language and platform specific libraries / Go)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go-extra - goav - 05-21T05:31:14Z|2022-05-19T23:28:55Z| (Video / Fail injection)
- awesome-go-cn - goav
- awesome-go-zh - goav
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-from-stars - giorgisio/goav
- go-awesome - goav - FFmpeg 视频处理 (开源类库 / 视频)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. Stars:`2.1K`. (Video / Utility/Miscellaneous)
- awesome - giorgisio/goav - Golang bindings for FFmpeg (This repository is no longer maintained) (Go)
- fucking-awesome-go - :octocat: goav - Comphrensive Go bindings for FFmpeg. :star: 148 :fork_and_knife: 37 (Video / Advanced Console UIs)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go-projects - goav - Comprehensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go - goav - | - | - | (Video / HTTP Clients)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go-with-framework - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go-stars - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go-cn - goav
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go. - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / <span id="高级控制台用户界面-advanced-console-uis">高级控制台用户界面 Advanced Console UIs</span>)
- awesome-star - giorgisio/goav
- awesome-go-with-stars - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / HTTP Clients)
- repo-1316-awesome-go-cn - goav
- repo-1211-awesome-go-cn - goav
- awesome-Char - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-reader - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- Go-awesome - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go-cn - goav
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- go-awesome-cn-star - goav
- awesome-go-cn - goav
- awesome-go-handwritten - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- my-stars - giorgisio/goav - Golang bindings for FFmpeg (This repository is no longer maintained) (Go)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. - :arrow_down:0 - :star:205 (Video / HTTP Clients)
- go-awesome - goav - FFmpeg video processing (Open source library / Video)
- awesome-go2 - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go - goav - Comphrensive Go bindings for FFmpeg. (Video / Advanced Console UIs)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / HTTP Clients)
- awesome-go-zh - goav
- awesome-go-cn - goav
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- awesome-go - goav - Comprehensive Go bindings for FFmpeg. (Video / Utility/Miscellaneous)
- go-awesome - goav - FFmpeg 视频处理 (开源类库 / 视频)
- awesome-go - goav - Golang bindings for FFmpeg - ★ 541 (Video)
README
# Deprecation Notice
This repository is no longer maintained.
# goav
Golang binding for FFmpegA comprehensive binding to the ffmpeg video/audio manipulation library.
[![GoDoc](https://godoc.org/github.com/giorgisio/goav?status.svg)](https://godoc.org/github.com/giorgisio/goav)
## Usage
`````go
import "github.com/giorgisio/goav/avformat"
func main() {
filename := "sample.mp4"
// Register all formats and codecs
avformat.AvRegisterAll()ctx := avformat.AvformatAllocContext()
// Open video file
if avformat.AvformatOpenInput(&ctx, filename, nil, nil) != 0 {
log.Println("Error: Couldn't open file.")
return
}// Retrieve stream information
if ctx.AvformatFindStreamInfo(nil) < 0 {
log.Println("Error: Couldn't find stream information.")// Close input file and free context
ctx.AvformatCloseInput()
return
}//...
}
`````## Libraries
* `avcodec` corresponds to the ffmpeg library: libavcodec [provides implementation of a wider range of codecs]
* `avformat` corresponds to the ffmpeg library: libavformat [implements streaming protocols, container formats and basic I/O access]
* `avutil` corresponds to the ffmpeg library: libavutil [includes hashers, decompressors and miscellaneous utility functions]
* `avfilter` corresponds to the ffmpeg library: libavfilter [provides a mean to alter decoded Audio and Video through chain of filters]
* `avdevice` corresponds to the ffmpeg library: libavdevice [provides an abstraction to access capture and playback devices]
* `swresample` corresponds to the ffmpeg library: libswresample [implements audio mixing and resampling routines]
* `swscale` corresponds to the ffmpeg library: libswscale [implements color conversion and scaling routines]## Installation
[FFMPEG INSTALL INSTRUCTIONS](https://github.com/FFmpeg/FFmpeg/blob/master/INSTALL.md)
``` sh
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-devsudo apt install -y libavdevice-dev libavfilter-dev libswscale-dev libavcodec-dev libavformat-dev libswresample-dev libavutil-dev
sudo apt-get install yasm
export FFMPEG_ROOT=$HOME/ffmpeg
export CGO_LDFLAGS="-L$FFMPEG_ROOT/lib/ -lavcodec -lavformat -lavutil -lswscale -lswresample -lavdevice -lavfilter"
export CGO_CFLAGS="-I$FFMPEG_ROOT/include"
export LD_LIBRARY_PATH=$HOME/ffmpeg/lib
``````
go get github.com/giorgisio/goav```
## More Examples
Coding examples are available in the examples/ directory.
## Note
- Function names in Go are consistent with that of the libraries to help with easy search
- [cgo: Extending Go with C](http://blog.giorgis.io/cgo-examples)
- goav comes with absolutely no warranty.## Contribute
- Fork this repo and create your own feature branch.
- Follow standard Go conventions
- Test your code.
- Create pull request## TODO
- [ ] Returning Errors
- [ ] Garbage Collection
- [X] Review included/excluded functions from each library
- [ ] Go Tests
- [ ] Possible restructuring packages
- [x] Tutorial01.c
- [ ] More Tutorial## License
This library is under the [MIT License](http://opensource.org/licenses/MIT)