2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。

爱谁谁
发布: 2025-06-24 08:00:21
原创
232人浏览过

2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。

答案2023-02-18:

github.com/moonfdd/ffmpeg-go 这个库。

这是我自己写的golang绑定ffmpeg库,只依赖动态链接库,不依赖头文件,接口全部是按照头文件改过来的。

这个库目前只能用在windows上,原因是go的回调函数在c中调用,用syscall.NewCallBack函数转换成uintptr,而这个函数只支持windows操作系统。请各位高手提供下跨平台的callback转换函数,拜托了。

立即学习go语言免费学习笔记(深入)”;

代码参考ffmpeg5入门教程的第三个例子输出版本号,用golang改写的。

用如下命令便可查看运行结果。

代码语言:shell复制
go run ./examples/a03get_lib_version/main.go
登录后复制

代码用golang编写。代码如下:

代码语言:go复制
package mainimport ("fmt""os""os/exec""github.com/moonfdd/ffmpeg-go/ffcommon""github.com/moonfdd/ffmpeg-go/libavcodec""github.com/moonfdd/ffmpeg-go/libavutil")func main() {os.Setenv("Path", os.Getenv("Path")+";./lib")ffcommon.SetAvutilPath("./lib/avutil-56.dll")ffcommon.SetAvcodecPath("./lib/avcodec-58.dll")codecVer := libavcodec.AvcodecVersion()ver_major := (codecVer >> 16) & 0xffver_minor := (codecVer >> 8) & 0xffver_micro := (codecVer) & 0xfffmt.Printf("FFmpeg version is: %s .\navcodec version is: %d=%d.%d.%d.\n", libavutil.FFMPEG_VERSION, codecVer, ver_major, ver_minor, ver_micro)fmt.Println("---------------------------------")data, err := exec.Command("./lib/ffmpeg", "-version").Output()if err != nil {fmt.Println("ffmpeg err = ", err)}fmt.Println(string(data))}
登录后复制
2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。在这里插入图片描述

以上就是2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号