{"id":13367383,"url":"https://github.com/giorgisio/Goav","last_synced_at":"2025-03-12T18:32:37.619Z","repository":{"id":32415940,"uuid":"35992974","full_name":"giorgisio/goav","owner":"giorgisio","description":"Golang bindings for FFmpeg (This repository is no longer maintained)","archived":false,"fork":false,"pushed_at":"2022-05-19T23:28:55.000Z","size":1208,"stargazers_count":2106,"open_issues_count":48,"forks_count":364,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-03-09T20:52:06.986Z","etag":null,"topics":["ffmpeg-libraries","golang-bindings","video"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giorgisio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-21T05:31:14.000Z","updated_at":"2025-03-05T07:16:28.000Z","dependencies_parsed_at":"2022-08-07T17:16:05.619Z","dependency_job_id":null,"html_url":"https://github.com/giorgisio/goav","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giorgisio%2Fgoav","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giorgisio%2Fgoav/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giorgisio%2Fgoav/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giorgisio%2Fgoav/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giorgisio","download_url":"https://codeload.github.com/giorgisio/goav/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243271638,"owners_count":20264497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ffmpeg-libraries","golang-bindings","video"],"created_at":"2024-07-30T00:01:46.355Z","updated_at":"2025-03-12T18:32:37.255Z","avatar_url":"https://github.com/giorgisio.png","language":"Go","funding_links":[],"categories":["视频","視頻"],"sub_categories":["高级控制台界面","高級控制台界面"],"readme":"# Deprecation Notice\n\nThis repository is no longer maintained.\n\n# goav\nGolang binding for FFmpeg\n\nA comprehensive binding to the ffmpeg video/audio manipulation library.\n\n[![GoDoc](https://godoc.org/github.com/giorgisio/goav?status.svg)](https://godoc.org/github.com/giorgisio/goav)\n\n## Usage\n\n`````go\n\nimport \"github.com/giorgisio/goav/avformat\"\n\nfunc main() {\n\n\tfilename := \"sample.mp4\"\n\n\t// Register all formats and codecs\n\tavformat.AvRegisterAll()\n\n\tctx := avformat.AvformatAllocContext()\n\n\t// Open video file\n\tif avformat.AvformatOpenInput(\u0026ctx, filename, nil, nil) != 0 {\n\t\tlog.Println(\"Error: Couldn't open file.\")\n\t\treturn\n\t}\n\n\t// Retrieve stream information\n\tif ctx.AvformatFindStreamInfo(nil) \u003c 0 {\n\t\tlog.Println(\"Error: Couldn't find stream information.\")\n\n\t\t// Close input file and free context\n\t\tctx.AvformatCloseInput()\n\t\treturn\n\t}\n\n\t//...\n\n}\n`````\n\n## Libraries\n\n* `avcodec` corresponds to the ffmpeg library: libavcodec [provides implementation of a wider range of codecs]\n* `avformat` corresponds to the ffmpeg library: libavformat [implements streaming protocols, container formats and basic I/O access]\n* `avutil` corresponds to the ffmpeg library: libavutil [includes hashers, decompressors and miscellaneous utility functions]\n* `avfilter` corresponds to the ffmpeg library: libavfilter [provides a mean to alter decoded Audio and Video through chain of filters]\n* `avdevice` corresponds to the ffmpeg library: libavdevice [provides an abstraction to access capture and playback devices]\n* `swresample` corresponds to the ffmpeg library: libswresample [implements audio mixing and resampling routines]\n* `swscale` corresponds to the ffmpeg library: libswscale [implements color conversion and scaling routines]\n\n\n## Installation\n\n[FFMPEG INSTALL INSTRUCTIONS](https://github.com/FFmpeg/FFmpeg/blob/master/INSTALL.md)\n\n``` sh\nsudo 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-dev\n\nsudo apt install -y libavdevice-dev libavfilter-dev libswscale-dev libavcodec-dev libavformat-dev libswresample-dev libavutil-dev\n\nsudo apt-get install yasm\n\nexport FFMPEG_ROOT=$HOME/ffmpeg\nexport CGO_LDFLAGS=\"-L$FFMPEG_ROOT/lib/ -lavcodec -lavformat -lavutil -lswscale -lswresample -lavdevice -lavfilter\"\nexport CGO_CFLAGS=\"-I$FFMPEG_ROOT/include\"\nexport LD_LIBRARY_PATH=$HOME/ffmpeg/lib\n``` \n\n``` \ngo get github.com/giorgisio/goav\n\n``` \n\n## More Examples\n\nCoding examples are available in the examples/ directory.\n\n## Note\n- Function names in Go are consistent with that of the libraries to help with easy search\n- [cgo: Extending Go with C](http://blog.giorgis.io/cgo-examples)\n- goav comes with absolutely no warranty.\n\n## Contribute\n- Fork this repo and create your own feature branch.\n- Follow standard Go conventions\n- Test your code.\n- Create pull request\n\n## TODO\n\n- [ ] Returning Errors\n- [ ] Garbage Collection\n- [X] Review included/excluded functions from each library\n- [ ] Go Tests\n- [ ] Possible restructuring packages\n- [x] Tutorial01.c\n- [ ] More Tutorial\n\n## License\nThis library is under the [MIT License](http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiorgisio%2FGoav","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiorgisio%2FGoav","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiorgisio%2FGoav/lists"}