之前参考了https://blog.csdn.net/yang8023tao/article/details/53338023这篇文章,虽然行得通,但是觉得把文件都copy到mingw的目录下这种方法比较简单粗暴,故建议用如下的方法。
我是在windows10 64位的环境下配置的。
首先安装MinGW64
我是按照到C:\mingw-w64目录下面。具体安装mingw的方法参考其他文章。
FFmpeg预编译库下载
1.下载Dev版本,里面包含了ffmpeg的xxx.h头文件以及xxx.lib库文件。
2.下载Shared版本,里面包含了ffmpeg的dll文件。
3.解压之后,
【64位放置位置,全部放到C:\ffmpeg目录下】
* 把dev版本文件夹中的lib目录整个儿复制合并到C:\ffmpeg\lib目录下。
* 把dev版本文件夹中的include目录整个儿复制合并到C:\ffmpeg\include目录下。
* 将share版本文件夹中bin目录整个复制合并到C:\ffmpeg\bin目录下
Golang程序调用ffmpeg测试程序
package main
/*
#cgo CFLAGS: -IC:/ffmpeg/include
#cgo LDFLAGS: -LC:/ffmpeg/lib/ -llibavformat -llibavcodec -llibavutil -llibavdevice -llibavfilter -llibswresample -llibswscale
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
#include <libavutil/opt.h>
#include <libavdevice/avdevice.h>
static const AVStream *go_av_streams_get(const AVStream **streams,unsigned int n)
{
return streams[n];
}
*/
import "C"
import (
"fmt"
)
func main() {
fmt.Println(C.avdevice_version())
}
注意上面这两句语句:
cgo CFLAGS: -IC:/ffmpeg/include
cgo LDFLAGS: -LC:/ffmpeg/lib/
指定了include和lib的目录,这样编译的时候就不会报找不到了。